请选择 进入手机版 | 继续访问电脑版

ylsunyuan技术论坛中心

 找回密码
 注册(请使用中文注册)
搜索
热搜: 活动 交友 discuz
查看: 1031|回复: 1

mysql注入篇:后台登陆漏洞案例 之 任意用户名+空密码

[复制链接]

124

主题

127

帖子

619

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
619
发表于 2015-11-4 11:36:39 | 显示全部楼层 |阅读模式
  1. $name = $_POST['username']; // 接收用户名
  2.         $pwd = $_POST['pwd']; // 接收用户密码
  3.         //var_dump(trim($pwd) ); die();

  4.         //漏洞一---以下注释代码都不起作用
  5.         //代码方案1
  6.         //$name!='' or $pwd!='' or header('Location: ../../index.php');
  7.         //代码方案2
  8.         // if( (trim($name)=="" && trim($pwd)=="") || trim($name)=="" || trim($pwd)=="" )
  9.         // {
  10.         //         header('Location: ../../index.php');
  11.         // }

  12.         $user = new User(); //实例化User模型
  13.         $res = $user -> getUserInfoByName($name);  // 返回的是数据库中的pwd

  14.         //漏洞二---以下代码引起 任意用户名+空密码漏洞
  15.         //if($res[0]['pwd'] == $pwd)

  16.         //修正后的代码
  17.         if($res[0]['pwd'] == $pwd  && $pwd!='')   //不用用sizeof($pwd)!=0 因为sizeof('')=1 必须要加 $pwd!=''  验证 否则会引 任意账号和空组合漏洞
  18.         {
  19.                 $_SESSION['w_user'] = $name; // 存入用户名
  20.                 //var_dump($_SESSION);
  21.                 header('Location: ../../ctl/home/micblog.ctl.php?a=showindex'); // 跳转到首页
  22.         }else{
  23.                 header('Location: ../../index.php'); //跳转回登陆页
  24.         }
复制代码
回复

使用道具 举报

124

主题

127

帖子

619

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
619
 楼主| 发表于 2015-11-4 11:54:05 | 显示全部楼层
众多情况下会出现,sizeof('')=1,不能用sizeof去验证用户名和密码
编译器在编译时sizeof('')会安插的char,就引起了sizeof('')=1的情况出现
资料参考:http://bbs.csdn.net/topics/390483677
回复 支持 反对

使用道具 举报

本版积分规则

QQ|Archiver|手机版|小黑屋|ylsunyuan技术论坛 ( 桂ICP备14005218号-1

GMT+8, 2024-3-29 22:26 , Processed in 0.058956 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表