王叹之@星盟
晚上逛cnvd的时候看到了一个漏洞:稻草人企业站1.1.5存在getshell漏洞,拿来审计了一下。
审计对象:稻草人企业站1.1.5
下载地址:http://www.dcrcms.com/news.php?id=2
安装时使用D盾来做文件监控,bp重新发包抓包。我们先看安装之后的:
这里看到txt文件,访问一下
可以看到有敏感信息泄露
而且通过D盾文件监控我们发现有配置文件的写入
根据经验,我们测试一下内容可不可控,如果可控我们可以想办法写木马进去。
经过测试,(这里正常回显不报错),
tablepre=dcr_qy_';?><?php phpinfo()?>
成功写入--
我们去看一下源码:
可以看到这里就是我们的写入点
这里虽然引入了配置文件起到了过滤作用,但是并没有对我们写入做任何限制--
include "../include/common.func.php";
include "../include/app.info.php";
首先进去后台,我们黑盒测试一下上传点,这里很多图片上传点
我们随便找一个上传php文件
这个好像是只对Content-Type: 做了判断,我们来验证一下
这里回显正常
而且前端直接暴露了我们上传的地址,直接上蚁剑连接:
成功getshell。
事实上后台所有能上传图片的地方都是通过这种方式验证,导致我们可以在多处getshell。
我们看一下代码
include/class/class.upload.php
这里仅仅对文件类型通过allow_files 这个数组中的白名单检测,导致我们可以轻松绕过--
关于后台功能点任意文件删除这个严格来讲我认为不算漏洞,后台管理员赋予你的高权限使得你这里可以达到任意文件删除。。网上有的师傅认为后台文件任意文件删除是漏洞,这里拿出来写一下吧233
先创建一个文件测试
我们将当前目录下的robots.php修改成test.php试试
删除文件成功。
我们来看代码
这里cpath变量可控,当?action=del_file时导致我们达成任意文件删除
审计这个cms并不难,毕竟是一个演示站远古版本的cms了。分析的很浅薄,代码也很简单,不管是通读全文,熟悉架构,还是追踪数据流都挺简单的。
这个cms几个漏洞都挺经典的,安装过程的getshell,后台的getshell和任意文件删除。审计这个拿来巩固了一下代审的知识吧2333
还有就是安装好cms后黑盒测试还是挺重要的。
最后目前笔者还处于学习阶段,如有分析的不对的地方或者见识浅薄的地方还望批评指正。(大佬轻点打orz)