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