整套程序过滤的还是比较全面的 不过所有版本都是GBK编码是他的硬伤 但是基本上字符串入库的时候作者都使用了iconv来把提交过来的数据编码转换成utf8
所以利用宽字符注入就没办法了 但是过滤完善仅限3.2版本之前 最新的3.2版本plus目录多了几个文件 不知道是不是换了程序员了... 先上两个白痴注入吧~
注射1:
\plus\ajax_officebuilding.php (16行)
if($act == 'alphabet')
{
$alphabet=trim($_GET['x']); //笑嘻嘻 肯定是换程序员了 不解释
if (!empty($alphabet))
{
$result = $db->query("select * from ".table('category')." where c_alias='QS_officebuilding' AND c_index='{$alphabet}' "); //笑嘻嘻
while($row = $db->fetch_array($result))
{
if ($listtype=="li")
{
$htm.="<li title=\"{$row['c_name']}\" id=\"{$row['c_id']}\">{$row['c_name']}</li>";
}
else
{
$htm.="<li><a href=\"?officebuildingid={$row['c_id']}\" title=\"{$row['c_note']}\" class=\"vtip\">{$row['c_name']}</a><span>{$row['stat_jobs']}</span></li>";
}
}
if (empty($htm))
{
$htm="<span class=\"noinfo\">没有找到首字母为:<span>{$alphabet}</span> 的写字楼!</span>";
}
$htm.="<script type=\"text/javascript\"> vtip();</script>";
exit($htm);
}
}
注射2: \plus\ajax_street.php (16行)
if($act == 'alphabet')
{
$alphabet=trim($_GET['x']); //几乎和上面一个注入一模一样的 不多说了
if (!empty($alphabet))
{
$result = $db->query("select * from ".table('category')." where c_alias='QS_street' AND c_index='{$alphabet}' ");//笑嘻嘻
while($row = $db->fetch_array($result))
{
if ($listtype=="li")
{
$htm.="<li title=\"{$row['c_name']}\" id=\"{$row['c_id']}\">{$row['c_name']}</li>";
}
else
{
$htm.="<li><a href=\"?streetid={$row['c_id']}\" title=\"{$row['c_note']}\" class=\"vtip\">{$row['c_name']}</a><span>{$row['stat_jobs']}</span></li>";
}
}
if (empty($htm))
{
$htm="<span class=\"noinfo\">没有找到首字母为:<span>{$alphabet}</span> 的道路!</span>";
}
exit($htm);
}
}
Exp: