首先大致看了下对get和post数据的处理,发现基本都被一个SafeRequest函数进行处理,我们跟踪一下这个函数
function SafeRequest($key,$mode,$isfilter=''){ set_magic_quotes_runtime(0); $magic= get_magic_quotes_gpc(); switch ($mode){ case 'post': $value=isset($_POST[$key]) ? $magic?trim($_POST[$key]):addslashes(trim( $_POST[$key])) : ''; break; case 'posts': $value=isset($_POST[$key]) ? $magic?trim($_POST[$key]):addslashes(trim( $_POST[$key])) : ''; $value=shtmlspecialchars($value); break; case 'get': $value=isset($_GET[$key]) ? $magic?trim($_GET[$key]):addslashes(trim( $_GET[$key])) : ''; break; case 'gets': $value=isset($_GET[$key]) ? $magic?trim($_GET[$key]):addslashes(trim( $_GET[$key])) : ''; $value=shtmlspecialchars($value); break; default: $value=isset($_POST[$key]) ? $magic?trim($_POST[$key]):addslashes(trim( $_POST[$key])) : ''; if($value==""){ $value=isset($_GET[$key]) ? $magic?trim($_GET[$key]):addslashes(trim( $_GET[$key])) : ''; } break; } if($isfilter!=''){ $value=str_encode($value); } return $value; }
其中,str_encode是XSS的过滤函数(可以猜想这个程序员想一个函数用在整个系统里了)
function str_encode($str) { $str=ReplaceStr($str, "<", "<"); $str=ReplaceStr($str, ">", ">"); $str=ReplaceStr($str, "'", "'"); $str=ReplaceStr($str, " ", " "); $str=ReplaceStr($str, "/r/n", "<br>"); $str=ReplaceStr($str, "/"", """); $str=ReplaceStr($str, "&", "&"); return $str; }
可以看到,这个系统对于被引号包裹的sql语句有着一定的抵抗能力,然而如果是数字型的,缺完全没有抵抗能力,有了这个思路,我们就可以搜索所有数字型的注入点了。
使用这个函数的共有2358处,带有**id我们就可以猜测是数字型的了。比如
isNul函数
function IsNul($str) { if(!is_string($str)) return false; if(empty($str)) return false; if($str=='') return false; return true; }
之后就直接带入sql语句了,结果想必大家都应该知道了......
但在审计的过程中,我又发现了一处cookie注入,这个就是根本没有过滤
if(($_COOKIE["cd_name"]<>"") || ($_COOKIE["cd_password"]<>"")) { $userid=$_COOKIE["cd_id"]; $username=$_COOKIE["cd_name"]; $password=$_COOKIE["cd_password"]; global $db; $cd_ids=$db->getrow("select cd_id,cd_logintime from " . tname('session') . " where cd_uid =$userid and cd_uname='$username'");
可以盲注
原文:www.wupco.cn/?p=68
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论