前言
要说万能密码登录,首先说一下万能密码登录适用的后端场景
对于程序设计不够严谨的代码来说,登录功能的验证逻辑可能是这样的:
$sql = "SELECT * FROM user WHERE username = '{$username}' AND password = '{$password}'";
$res = $dbConnect->query($sql);
后端对前端输入的用户名和密码没有进行可行性的校验,直接进行SQL构造查询
也就是这样:
$sql = "SELECT * FROM user WHERE username = ' 'or 1=1 # ' AND password = ' 'or1=1 # ' ";
这时,可以利用SQL语句上的逻辑漏洞,欺骗后端程序,从而成功登录
解题过程
打开靶场看一下:
既然题目就是万能密码,那就直接试一下吧:
密码输入:'or 1=1 #
这里第一个单引号是与原SQL语句的引号配对,然后后面的#号,是为了注释掉原SQL语句的的引号,然后密码随意填写,登录试一下:
成功,这篇文章主要还是学习万能密码登录的原理
版权属于:JsOnGmAX-本站所分享的文章技术仅供技术交流 请勿用于非法使用 产生的损失与本人无关
本文链接:http://jsongx.com/archives/655.html
博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议 如有侵权 请联系本人删除
3 条评论
老哥你输入这个'不会被转义?OωO
没事了,是我下的这个靶机里面有一个waf,晕了
自带waf的靶机吗∠( ᐛ 」∠)_