PHPWIND & DISCUZ! CSRF漏洞利用测试分析

早上看到这个漏洞的exp,和netkey牛讨论了下,ring牛利用 Discuz.net 域名服务商的漏洞,劫持了Custom.discuz.net这个域名,将这个域名解析到自己构造的一个假站点上。而在这个假站点上存放了exp攻击代 码,主要文件为news.php。这里说明一下,discuz后台有一个通知功能用来通知站长修补漏洞等,该方式应该是在论坛后台script包含了 [url]http://custom.discuz.net/news.php[/url]。 域名劫持之后就在后台包含了ring构造的这个news.php,分析news.php里包含了两个js文件,其中dz.js用于使用ajax模拟站长提 交修改seo设置的表单。dz.stats.js则iframe了dz_stats.php文件用于记录中招了的论坛地址,只要站长登陆后台就会中招.

修改后的seo设置里包含了一段js代码<script>function init() { document.write('Hacked by ring04h, just for fun!');}window.onload = init;</script>,而在论坛前台页面里会直接调用seo的设置。所以直接将这段js在前台的页面中执行了.
测试环境:centos5.1 apache2.2 php5.2 mysql5.0 discuz6.0
首先伪造customer.discuz.net
在apache里面配置虚拟主机如下:
NameVirtualHost 192.168.25.100:80
<VirtualHost 192.168.25.100>
ServerName customer.discuz.net
DocumentRoot /usr/local/apache/htdocs/worm
</VirtualHost>
<VirtualHost 192.168.25.100>
ServerName [url]www.test.com[/url]
DocumentRoot /usr/local/apache/htdocs/discuz/upload
</VirtualHost>
/usr/local/apache/htdocs/discuz/upload为discuz程序地址。
/usr/local/apache/htdocs/worm 为exp存放地址

本地host里面customer.discuz.net和[url]www.test.com[/url]改为192.168.25.100
访问 [url]www.test.com[/url] 登陆后台,成功被改
虽然不好利用,但是思路非常好,杀伤力和攻击范围很大,顶ring牛!
小菜乱写的,大牛飘过
解决方法如下:DISCUZ删除templates/default/header.htm 里面的 $seohead就可以了

你可能感兴趣的:(漏洞,安全,CSRF,discuz!,phpwind)