早上看到这个漏洞的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就可以了