稻草人企业站1.1.5代码审计
2020-06-24 11:05:07 Author: xz.aliyun.com(查看原文) 阅读量:596 收藏

王叹之@星盟

0x00 前言

晚上逛cnvd的时候看到了一个漏洞:稻草人企业站1.1.5存在getshell漏洞,拿来审计了一下。

审计对象:稻草人企业站1.1.5

下载地址:http://www.dcrcms.com/news.php?id=2

0x01 安装过程信息泄露和getshell

安装时使用D盾来做文件监控,bp重新发包抓包。我们先看安装之后的:


这里看到txt文件,访问一下

可以看到有敏感信息泄露
而且通过D盾文件监控我们发现有配置文件的写入

根据经验,我们测试一下内容可不可控,如果可控我们可以想办法写木马进去。
经过测试,(这里正常回显不报错),

tablepre=dcr_qy_';?><?php phpinfo()?>



成功写入--
我们去看一下源码:

可以看到这里就是我们的写入点
这里虽然引入了配置文件起到了过滤作用,但是并没有对我们写入做任何限制--

include "../include/common.func.php";
include "../include/app.info.php";

管理员后台任意文件上传导致getshell

首先进去后台,我们黑盒测试一下上传点,这里很多图片上传点
我们随便找一个上传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)


文章来源: http://xz.aliyun.com/t/7904
如有侵权请联系:admin#unsafe.sh