黑客自述——Discuz!挂马新招
网络安全
博弈主题:攻击Discuz!论坛
技术难度:★★★★
重点知识:如何利用新的Discuz!漏洞来入侵
你是PHP版本Discuz!的管理员?你经常登录这种类型的论坛?现在你可要注意了,黑客找到了该类型论坛的漏洞,研究了一种新的SQL注入攻击,一旦注入成功即可获得用户或者管理员的账号和密码,也就可以顺利进入论坛后台,进行挂马或者盗取注册用户的个人资料,对网站和用户带来巨大的安全威胁。
黑夜给了我黑色的眼睛,我却用它来当黑客。大家好,我是墨斗鱼,算是一名黑客吧(谁敢比我黑)!这里我给大家讲一种新的SQL注入攻击,利用的是Discuz!的漏洞。先“八卦”一下,这个漏洞并非本周曝光的,它在我们圈子里面流传快一个月了。
最早发现该漏洞的老兄将漏洞的细节写在自己的博客上,并将日志设置成了隐藏,不过圈子内的人都是可以看的。没过多久,另外一个黑客入侵了这个日志,将里面的漏洞资料公布出来,这才导致最近针对Discuz!的SQL注入攻击增多。
这个漏洞的出现,意味着所有在PHP版本Discuz!论坛中注册的用户都将面对账号和密码被窃的危险,而论坛管理员也面临着同样的问题,一旦黑客利用管理员账号进入后台,就可能挂马、放毒,攻击网站的用户,伺机盗取他们的各种账号和密码。
WAP模块功能是罪魁祸首
目前Discuz!论坛曝出漏洞的是PHP版本,它采用PHP+MySQL的数据库结构方式运行。漏洞出现的原因是因为程序中的WAP模块的字符转码程序存在编码转换问题,导致黑客能够在该WAP模块中提交畸形的searchid参数,致使论坛允许黑客执行SQL注入攻击。在Discuz!论坛中,WAP模块功能是默认开启的,因此很容易被攻击者利用,而且这个问题存在于Discuz!论坛6.1之前的所有版本中。
要利用该漏洞进行SQL注入攻击,难度不算小,现阶段大多都是真正的黑客在“玩”这个,极少有菜鸟黑客涉足。不过攻击代码被公布出来后,相应的攻击应该会增多,想知道黑客是怎么利用代码入侵的吗?下面我们来搭建一个模拟环境给大家一步一步揭秘入侵的过程。
Discuz!论坛注入挂马揭秘
第一步:设置MySQL
首先在网上下载MySQL的Windows版本并安装。在进入安装界面后,选择“Custom”选项自定义安装,然后点击“Change”按钮选择指定的MySQL安装目录,安装完成后进入MySQL设置界面,单击“Finish”按钮。
选择“Detailed Configuration”选项进行详细配置,进入配置页面之后,选择MySQL运行模式为“Server Machine”(图1)。然后选择MySQL数据库默认存储方式为“Non-Trans Only(MYISAM)”。接下来设定MySQL最大连接数,一般情况下设置为“128~512”之间的整数,然后再设定MySQL默认字符集,一般以用户站点语言为准。

小知识:设定MySQL网络参数,注意不要启用 Strict Mode。此外修改设定Root用户密码也要注意,不要启动远程连接模式。
在完成MySQL安装设置之后,启动MySQL,打开系统CMD命令提示符窗口,输入命令“MySQL –u root –p”,在提示输入密码后,如果能够正常进入MySQL控制台则说明MySQL安装成功了。
第二步:安装PHP的环境
首先解压下载的PHP安装包,将“php.ini-dist”重命名为“php.ini”,然后打开php.ini文件找到extension_dir = "./",将它改为extension_dir = "X:\Server_Core\PHP\ext",然后找到Windows Extensions,在Windows Extensions下方的动态模块配置中,打开以下模块支持:
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_MySQL.dll
再找到"disable_functions =",将它修改为:
disable_functions =
phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
最后保存为php.ini文件,并将文件复制到C:\Windows目录中。
第三步:IIS与PHP的整合配置
首先打开Windows控制面板,启动IIS管理器,并右键点击左边目录树中的网站项目,选择新建中的“网站”,新建一个虚拟主机。接下来输入网站名称,名称可任意输入。然后在网站分区中建立wwwroot以及下级站点文件夹BBS。对于PHP应用,需要给予该站点“读取”和“运行脚本”的权限。
接下来打开刚刚建立的网站属性,在站点属性窗口中,单击“主目录”标签,单击“配置“按钮,在新弹出的“应用程序配置”对话框中,单击“添加”按钮,加入PHP的ISAPI支持,选择“可执行文件”为X:\Server_Core\PHP\php5isapi.dll,“扩展名”为.php,“限制动作”为GET,POST(图2)。

在“应用程序配置”窗口中查看“.php”扩展是否加载成功。若成功,则单击“确定”关闭配置窗口,回到站点属性主窗口。在窗口中单击“文档”标签,在默认内容文档中添加 index.htm、index.html、index.php 三个文件。
最后回到IIS管理器主界面,右键单击“Web 服务扩展”,添加PHP扩展支持。在“新建Web服务扩展”对话框中,“扩展名”填写PHP,“文件”选择 X:\Server_Core\PHP\php5isapi.dll,并设置该PHP扩展默认为允许。最后根据Discuz!论坛的安装说明安装即可。
第四步:利用攻击代码入侵Discuz!论坛
首先要下载攻击代码(下载地址:http://www.shudoo.com/bzsoft),然后新建一个记事本并打开,将下载的攻击代码输入其中并另存为“TEST.VBS”。再点击“开始→运行”,输入CMD调出命令提示符,再输入命令cscript test.vbs http://www.攻击的论坛地址.com//forum/1>result.txt,即可在result.txt文件中寻找截获的用户名和密码(图3)。攻击前需要先登录要攻击的Discuz!论坛。用截获的管理员用户名和密码登录论坛后台,就可以进行挂马等一系列操作了。

升级Discuz!版本防入侵
目前最优的防范策略是升级Discuz!论坛的程序,你可以登录http://www.shudoo.com/bzsoft下载最新6.1版本的Discuz!程序,重新安装后就可以修复漏洞,避免黑客利用漏洞入侵了。