SWPUCTF 2019 web

web1

知识点

## information_schema绕过

##无列名注入

注入点在广告申请广告名字处,申请广告名为

 

 

查看广告详细返回错误

 

 

接下来就是常规的union注入的套路,但是发现or被过滤,这样搞得不能用order by

而且空格

没事,直接union 1,2,3先尝试一下

 

 发现空格被过滤 这里用/**/可以绕过

 

 

 查看广告,发现发会列数不对

 

 接下来就逐一的增加或者是减少列数就行了,一个一个的试,最后发现列数有22列,显示位在2,3位

 

 

 

 接下来就是常规的拿表名和列名,但是会发现or被过滤,被过滤的死死的,常规办法根本无法绕过,导致information_schema无法使用,然后就是那天kk师傅分享的东西了

# information_schema绕过

https://www.anquanke.com/post/id/193512

得到表名 users,ads

注:当时线上的时候用这个办法解出来了,但是后来比赛结束在buuctf上复现去做的时候发现这个方法行不通 ,因为buuctf环境里没有这两个库,然后我去百度wp发现有个老哥说他是猜出来了 ,这里只有等官方wp出来再康,没办法

这种方法无法获取列名但是可以使用无列名注入

https://blog.csdn.net/qq_40500631/article/details/89631904

注意,在无列名注入的时候 一定要和表的列数相同 不然会报错 这里我也是1列+1列的尝试,最后发现users里有三列

 

 语句:

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

当时在线上的时候,这里有提示拿去MD5直接解密,但是比赛结束平台换成buuctf过后就直接给flag了

知识点:

1.无列名注入 

https://www.jianshu.com/p/6eba3370cfab

语句

一般都是: (select `2` from (select 1,2,3 union select * from table_name)a)  //前提是要知道表名

                   ((select c from (select 1,2,3 c union select * from users)b))    1,2,3是因为users表有三列,实际情况还需要猜测表的列的数量

2.bypass information_schema

https://www.anquanke.com/post/id/193512

sys.schema_table_statistics_with_buffer。。

但是值得注意的是 一般要超级管理员才可以访问sys

所以一般还可以用这个方法

 在buuctf环境中这个也不行 

上面图片来自:https://www.cnblogs.com/qftm/p/10317257.html 

 前提是users表存在

但是这个方法也不行 ,polygon和lingstring被过滤  

等官方wp吧,比赛六道web题只做出来这一道题,后面的题我会陆续补上,下学期开学我一定成为三个方向都可以做题的帅波!

原文地址:https://www.cnblogs.com/tlbjiayou/p/12014926.html