###0x01漏洞简介
Mallbuilder文件help.php对type参数过滤不严,导致出现SQL注入漏洞。
###0x02漏洞详情
首先来看看全局文件
```
function magic()
{
if(!get_magic_quotes_gpc()&&isset($_POST))
{
foreach($_POST as $key=>$v)
{
if(!is_array($v))
$_POST[$key]=addslashes($v);
else
{
foreach($v as $skey=>$sv)
{
if(!is_array($sv))
$_POST[$key][$skey]=addslashes($sv);
else
{
if($sssv)
{
foreach($sv as $sskey=>$ssv)
{
if(!is_array($ssv))
$_POST[$key][$skey][$sskey]=addslashes($ssv);
else
{
if($sssv)
{
foreach($ssv as $ssskey=>$sssv)
{
if(!is_array($sssv))
$_POST[$key][$skey][$sskey][$ssskey]=addslashes($sssv);
else
{
if($sssv)
{
foreach($sssv as $sssskey=>$ssssv)
{
$_POST[$key][$skey][$sskey][$ssskey][$sssskey]=addslashes($ssssv);
}
}
}
}
```
只对post进行了addslashes 没有对GET 等其他的进行addslashes,但是对GET有一个小过滤。
```
if(inject_check(implode('',$_GET)))
{
die('Invalid URL !');
}
function inject_check($sql)
{
return preg_match("/^select|insert|delete|\.\.\/|\.\/|union|into|load_file|outfile/", $sql);// 进行过滤
}
```
这里匹配到了就退出 但是他这里没有开启/i 修正符
所以大小写就可以绕过了。
绕过了这里 GET的注入点就是一大堆了。
```
http://**.**.**.**/mallbuilder/help.php?type=asd'
```
###0x03修复方案
过滤,转义。
暂无评论