PHPCMS后台CSRF加管理两种方法POC

漏洞概要

缺陷编号:WooYun-2015-0124878

漏洞标题:PHPCMS后台CSRF加管理两种方法POC

相关厂商:PHPCMS

漏洞作者:phith0n

提交时间:2015-07-06 16:14

公开时间:2015-10-09 04:28

漏洞类型:CSRF

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2015-07-06: 细节已通知厂商并且等待厂商处理中
2015-07-11: 厂商已经确认,细节仅向厂商公开
2015-07-14: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-09-04: 细节向核心白帽子及相关领域专家公开
2015-09-14: 细节向普通白帽子公开
2015-09-24: 细节向实习白帽子公开
2015-10-09: 细节向公众公开

简要描述:

TSRC西安沙龙议题之PHPCMS。(非重复漏洞,这个洞两种方式均不利用referer)

详细说明:

之前多个漏洞,其实都是利用了Referer,如最新这个:http://**.**.**.**/bugs/wooyun-2015-098434其实我们可以不利用Referer,能更简单获取pc_hash,并进行CSRF攻击。法一先管理员登录后台,来到随意一个功能页面,右键查看框架的源代码,其中有这么一段javascript:

查找页面中所有超链接(a),如果不是“javascript:”开头的话,就添加pc_hash在url最后。并没有判断这个链接是否是站内链接!所以,如果我提交一个友情链接地址,也会被加上pc_hash,等于说pc_hash被加在我的url后面,我的服务器可以获取之!来测试。首先前台提交一个友情链接:

地址是我的POC(http://mhz.pw/game/tx/phpcms.php),内容如下:

然后管理员在后台审核友情链接处即可看到:

如上图,phpcms直接将pc_hash加入了我的链接后面。所以管理员点击链接后我即可接收到pc_hash,进而进行CSRF攻击。上述POC,在管理员点击后,会给目标站创建一个用户名为test_+时间戳,密码是123123的管理员:

法二与discuz类似,phpcms在默认安装完成后也没有修改crossdomain.xml,典型例子就是其官网http://**.**.**.**/crossdomain.xml ,和官方演示站:http://**.**.**.**/crossdomain.xml

那么我就可以通过flash直接获取其pc_hash。蚁逅平台做演示:

构造POC,自动添加管理员:http://mhz.pw/game/tx/phpcms1.php?domain=**.**.**.**domain是目标域名。

**.**.**.**的管理员访问以上POC即可添加一个管理。不多解释了。两种方法,均可CSRF加管理。

漏洞证明:

见上面

修复方案:

不好说。。。

漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2015-07-1104:28

厂商回复:

感谢

最新状态:

暂无

评价

  1. 2010-01-01 00:00 从容 白帽子 | Rank:153 漏洞数:21)

    关注!

  2. 2010-01-01 00:00 抚琴听海 白帽子 | Rank:0 漏洞数:0)

    关注|

  3. 2010-01-01 00:00 if、so 白帽子 | Rank:1007 漏洞数:87)

    文人

  4. 2010-01-01 00:00 Soulmk 白帽子 | Rank:20 漏洞数:1)

    关注啊~~~

  5. 2010-01-01 00:00 Annabelle 白帽子 | Rank:28 漏洞数:3)

    前排关注。