对某CMS的一次简单渗透测试

栏目: 编程工具 · 发布时间: 6年前

内容简介:对某CMS的一次简单渗透测试

好久没有更新博客了,这几天在研究 mysql 注入,想弄个luanmap玩玩。

对某CMS的一次简单渗透测试

写了下mysql的报错注入和union注入,顺便拿公司内网的一个系统测试了下,唯一欠缺的地方就是没有用substr截取结果,有时候报错注入的结果显示长度是有限制的,这东西以后再想吧。

准备开始写下mysql的盲注的,想先互联网上找找案例弄。偶然看别人博客,说XXCMS存在若干 SQL 注入但文章需要密码访问,于是心里痒痒,想去搞那个CMS的源码审计看看。

那个CMS是不开源的。于是目标就是渗透这种CMS的网站,然后打包下他的网站文件。

此文纯属YY,懂我的意思吧

对某CMS的一次简单渗透测试

原文地址: http://lu4n.com/a-simple-pentest-2017-04-27/

目标站:

对某CMS的一次简单渗透测试

先对网站进行敏感目录/文件扫描,结果很失望,封IP了。

换个IP继续,速度慢一点,扫了很久就出来个admin.php

其他页面都是静态的。。。

打开admin.php,自然是后台了。

对某CMS的一次简单渗透测试

输入admin,admin测试弱口令。

结果还没点登录就提示,请输入正确的密码。

这应该是用js检测密码的长度,换成123456,可以了。

点登录,提示密码错误。然后出来了个验证码。

对某CMS的一次简单渗透测试

然后在用户名加个单引号,输入验证码,再提交。

心里想,要是直接给我个报错注入就爽了。

结果提示用户名不存在。

对某CMS的一次简单渗透测试

然后验证码居然还不变,,不用想了,能爆破。

但是我的爆破字典比较弱鸡,爆破成功率令人发指。

继续测试了下,admin’or’a’=’a

对某CMS的一次简单渗透测试

然后居然提示我密码错误,看来是有盲注了。

盲注比较慢,我优先选择更好的方法。

继续收集信息搞了半天,***的,全是静态页面,还是先去跑盲注吧。

对某CMS的一次简单渗透测试

跑注入大家都会。这里用的sqlmap(等我luanmap写完了回头试试)。

有个小技巧就是确定注入类型了,这里可以直接指定–tech B –dbms mysql

表示是MySQL数据库的布尔盲注,比时间延迟注入还是快很多的。

休息了一会儿结果就出来了。

有两个管理员账号,拿去cmd5.com解密还要收费,试试吐司的MD5解密成功得到密码:mima_lu4n.com

拿去登录后台: 对某CMS的一次简单渗透测试

功能挺多的,怎么说也是商业CMS吧。如果就一个简单的发布新闻,傻子才买。

继续做测试。先去找上传点。

编辑文章,发现了两个上传点,一个是Kind Editor编辑器的,另一个是这个CMS自己弄的上传缩约图:

对某CMS的一次简单渗透测试

在系统设置模块里看到有两个编辑器可选择:

对某CMS的一次简单渗透测试

经过测试这两个编辑器都是不能利用的。(开源的就是比不开源的安全点)

使用CMS自己写的上传功能,抓包得到如下URL:

http://lu4n.com/admin.php?m=fupload&a=commonUpload&opener_id=bannerimg1&height=250&width=500&upload_allowext=png|jpg|gif|bmp

老司机们都能直接看出来,这里居然把允许上传的文件后缀放在GET参数里面,明显可以利用嘛。

构造:

http://lu4n.com/admin.php?m=fupload&a=commonUpload&opener_id=bannerimg1&height=250&width=500&upload_allowext=png|jpg|gif|php

对某CMS的一次简单渗透测试

可惜,没有那么简单。上传成功后提示成功。可以没回显出路径来..这怎么可能..一定是我打开方式不对吧

然后仔细看了下burp,发现确实没有回显,可是没有回显他是怎么上传缩约图的呢?

跑去上传个缩约图看看。

对某CMS的一次简单渗透测试

额。看来是我的burp抓不到flash上传的数据包吧。。

然后点了下站内选择,看看能不能找到我的php shell.

对某CMS的一次简单渗透测试

结果很不错。看了眼url,又是个有问题的地方。

构造下URL:

http://lu4n.com/admin.php?m=ffiles&a=images&opener_id=info_thumb&shower_id=&path=%2F2017/../../../../

对某CMS的一次简单渗透测试

可以列目录。

先去找找我的 shell 位置。翻了一会儿在files目录里找到了:

对某CMS的一次简单渗透测试

心里一阵暗喜,这垃圾cms。

访问下shell地址:

对某CMS的一次简单渗透测试

WTF!?

对某CMS的一次简单渗透测试

居然目录设置权限,不能执行 PHP 脚本,我*你**。

这咋办?

最简单的方法,去找别的站,反正是要CMS的源码,又不是非要这个站的权限,等我拿到源码审计出别的漏洞不就更容易了吗

于是我去搞了5,6个别的站测试,我的内心是崩溃的。

对某CMS的一次简单渗透测试

全部都是没有执行脚本的权限。。。唯独有一个不是因为没有执行脚本的权限而失败的

那个站都不能写文件进去…

对某CMS的一次简单渗透测试

此路不通换条走了。继续测试,发现了这个:

对某CMS的一次简单渗透测试

有些CMS,这里的配置是会写个脚本文件里面的,利用那个列目录的漏洞去列了下目录,发现确实有个配置文件。

对某CMS的一次简单渗透测试

大概可能也许这里的内容会写进去(后来读文件看了下确实如此)

把水印路径修改成:

','test'=>"${@eval($_POST['luan'])};",'lu4n.com'=>'

然后去连接config.inc.php

然后,他么失败了。。。改成phpinfo(),访问下发现代码没有被执行。

把config.php,config.cache.php.CopyOfconfig.inc.php都试了,都不行。。大概是把单引号转义了把(后来读文件确实如此)

这个方法又不行,这就他么很操蛋了。

继续测试测试功能,发现了这个:

对某CMS的一次简单渗透测试

可以新建页面并且可以插模板。

一开始的思路是,新建luan.php页面,然后写shell进去。

设置页面文件名那里是不能修改后缀的,锁定为html,通过抓包强制修改成php。

结果发现行不通,他不会生成文件,而是把页面文件名和内容写入了数据库,然后通过路由从数据库中读取对应的页面内容,即便我改成了luan.php的后缀也是不行的。

换下思路,这里可以使用模板,也许存在任意文件读取。

列目录找个php文件,填入路径,提示成功,然后去访问URL:

对某CMS的一次简单渗透测试

他会在模板文件后面添加上.html,抓包分析了下:

对某CMS的一次简单渗透测试

把这个ishtml参数改下就可以了,他就不会加.html后缀了。

然后访问我设置的luan.html:

对某CMS的一次简单渗透测试

成功读取到文件源码了。

然后我通过这两个漏洞简单读了读这个cms的源码,找到了getshell的方法:

也就是上图中的 FtagAction.class.php文件。没有过滤参数,可以修改任意文件的内容。

构造URL访问:

http://lu4n.com/admin.php?m=ftpl&a=edit&filename=/system/../../../../data/CopyOfconfig.inc.php

对某CMS的一次简单渗透测试

在这个配置文件里面插入一句话木马,然后菜刀连接,终于成功getshell。

对某CMS的一次简单渗透测试

对某CMS的一次简单渗透测试


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法Ⅰ~Ⅳ(C++实现):基础、数据结构、排序和搜索

算法Ⅰ~Ⅳ(C++实现):基础、数据结构、排序和搜索

Sedgewick / 高等教育出版社 / 2002-1 / 49.00元

本书通过C++实现方案以简洁、直接的方式对书中的算法和数据结构进行表述,并向学生提供在实际应用中验证这种方法的手段。   本书广泛地论述了与排序、搜索及相关应用有关的基本数据结构和算法。覆盖了数组、链表、串、树和其他基本数据结构,更多地强调抽象数据类型(ADT)、模块化程序设计、面向对象程序设计和C++类。本书包括排序、选择、优先队列ADT实现和符号表ADT(搜索)实现,配有帮助学生学习计算......一起来看看 《算法Ⅰ~Ⅳ(C++实现):基础、数据结构、排序和搜索》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换