ylsunyuan技术论坛
标题:
mysql注入篇:后台登陆漏洞案例 之 任意用户名+空密码
[打印本页]
作者:
sun
时间:
2015-11-4 11:36
标题:
mysql注入篇:后台登陆漏洞案例 之 任意用户名+空密码
$name = $_POST['username']; // 接收用户名
$pwd = $_POST['pwd']; // 接收用户密码
//var_dump(trim($pwd) ); die();
//漏洞一---以下注释代码都不起作用
//代码方案1
//$name!='' or $pwd!='' or header('Location: ../../index.php');
//代码方案2
// if( (trim($name)=="" && trim($pwd)=="") || trim($name)=="" || trim($pwd)=="" )
// {
// header('Location: ../../index.php');
// }
$user = new User(); //实例化User模型
$res = $user -> getUserInfoByName($name); // 返回的是数据库中的pwd
//漏洞二---以下代码引起 任意用户名+空密码漏洞
//if($res[0]['pwd'] == $pwd)
//修正后的代码
if($res[0]['pwd'] == $pwd && $pwd!='') //不用用sizeof($pwd)!=0 因为sizeof('')=1 必须要加 $pwd!='' 验证 否则会引 任意账号和空组合漏洞
{
$_SESSION['w_user'] = $name; // 存入用户名
//var_dump($_SESSION);
header('Location: ../../ctl/home/micblog.ctl.php?a=showindex'); // 跳转到首页
}else{
header('Location: ../../index.php'); //跳转回登陆页
}
复制代码
作者:
sun
时间:
2015-11-4 11:54
众多情况下会出现,sizeof('')=1,不能用sizeof去验证用户名和密码
编译器在编译时sizeof('')会安插的char,就引起了sizeof('')=1的情况出现
资料参考:
http://bbs.csdn.net/topics/390483677
欢迎光临 ylsunyuan技术论坛 (http://bbs.ylsunyuan.com/)
Powered by Discuz! X3.2