
1. 项目概述为什么要在防火墙下模拟攻击很多刚入行安全或者运维的朋友一听到“防火墙”就觉得它是个黑盒子配置复杂效果神秘。而“SQL注入”、“XSS攻击”这些名词又常常出现在各种安全报告和新闻里感觉离实际操作很远。这个项目就是想打破这种隔阂。我们不用去碰任何真实业务系统就在自己的实验环境里用一台企业级防火墙——深信服AF来亲手搭建一个靶场并模拟攻击者发起SQL注入和XSS攻击亲眼看看防火墙是如何识别、拦截这些流量的。你可能会问网上不是有很多现成的DVWA、Pikachu靶场吗直接装一个不就行了没错那些是学习攻击手法非常好的工具。但这个项目的核心价值在于“防御视角”。我们不仅要学会攻击更要理解防御设备的工作原理。通过深信服AF的配置和日志分析你能清晰地看到一条恶意的SQL语句长什么样防火墙的WAFWeb应用防火墙模块是如何通过规则库匹配到它的拦截后攻击者的IP是被加入了黑名单还是仅仅丢弃了当前数据包这些动态的、可视化的防御过程是单纯运行一个漏洞靶场所无法提供的。本次实验我们会使用一个轻量级的渗透测试工具集——Xhack。它集成了SQLMap、XSSer等工具的命令行简化版本非常适合在实验环境中快速发起测试请求。整个流程就是搭建靶场如DVWA - 配置AF防火墙策略尤其是WAF策略 - 使用Xhack工具模拟攻击 - 分析AF拦截日志和报表。通过这个闭环你将对“攻击-检测-防御”这个链条有直观且深刻的理解这对于从事安全运维、安全评估甚至应用开发都大有裨益。2. 实验环境搭建与核心组件解析2.1 实验拓扑设计与设备选型理由一个可靠的实验环境是成功的第一步。这里我推荐一个最简洁有效的拓扑结构只需要三台虚拟机即可完成。拓扑结构攻击机 (Kali Linux) — 深信服AF防火墙 (桥接/透明模式) — 靶机 (Windows/Linux Web靶场)。攻击机 (Kali Linux)选择Kali是因为它预装了海量安全工具但我们本次主要只用它来运行Xhack。你也可以用任何安装了Python和必要库的Linux系统。靶机为了方便强烈推荐使用Windows系统 PHPStudy来搭建DVWA靶场。PHPStudy一键集成Apache、PHP、MySQL部署DVWA只需几分钟。DVWADamn Vulnerable Web Application是一个故意设计存在漏洞的Web应用包含SQL注入、XSS、文件上传等各类漏洞且安全等级可调非常适合教学。深信服AF防火墙这是本次实验的核心。你需要获取AF的虚拟机镜像通常为.ova或.qcow2格式。在VMware或KVM中导入后需要配置管理口IP以便通过浏览器登录Web控制台。实验时将AF以透明模式部署在攻击机和靶机之间是最佳选择。透明模式意味着AF像一根网线一样串联在网络中不需要修改攻击机和靶机的IP地址和网关对现有网络零改动最适合模拟真实拦截场景。为什么选择透明模式相比路由模式透明模式配置更简单更专注于流量检测本身而不用处理复杂的路由和NAT问题。你只需要给AF的管理口配一个IP用于登录然后将攻击机和靶机连接到AF的另外两个物理或虚拟网口上AF就会像“网桥”一样转发并检测所有流经它的流量。2.2 靶场部署与Xhack工具准备2.2.1 DVWA靶场快速部署在靶机假设IP为192.168.1.100上操作安装PHPStudy启动Apache和MySQL服务。下载DVWA压缩包解压到PHPStudy的WWW目录下例如D:\phpstudy_pro\WWW\dvwa。复制config/config.inc.php.dist文件为config/config.inc.php。编辑该文件根据PHPStudy的数据库设置修改数据库密码默认常为root。浏览器访问http://192.168.1.100/dvwa/setup.php点击页面底部的“Create / Reset Database”按钮。成功后使用默认账号admin/password登录。登录后在左侧“DVWA Security”页面将安全级别设置为“Low”。这是为了方便我们触发漏洞让AF能够检测到明显的攻击特征。2.2.2 Xhack工具配置与初探Xhack并非一个官方大型工具而是一个将常用工具调用封装得更友好的Python脚本集合。你需要从GitHub等平台获取它。在攻击机假设IP为192.168.1.50上操作# 1. 克隆或下载Xhack工具包 git clone Xhack仓库地址 # 请替换为实际地址 cd Xhack # 2. 安装依赖通常需要requests, beautifulsoup4等 pip install -r requirements.txt # 3. 查看工具帮助 python xhack.py --helpXhack通常会提供类似-u指定URL--sql执行SQL注入测试--xss执行XSS测试这样的参数。它的原理是构造包含典型攻击载荷的HTTP请求并发送给目标URL。例如一个最简单的SQL注入测试命令可能类似于python xhack.py -u http://192.168.1.100/dvwa/vulnerabilities/sqli/?id1SubmitSubmit# --sql这条命令会向DVWA的SQL注入漏洞页面发送带有各种SQL注入探测参数的请求。注意在使用任何安全工具前请务必确保你拥有目标的测试授权。在本实验中靶机是你自己搭建的所以完全合法合规。3. 深信服AF防火墙核心策略配置实战现在我们让流量流经AF。假设AF的两个数据口比如port2和port3以透明模式桥接。port2连接攻击机网络port3连接靶机网络。AF的管理口IP为192.168.1.254。3.1 基础网络与安全策略配置登录AF的Web控制台https://192.168.1.254首先完成基础配置确保流量能通。区域定义进入“网络配置”-“区域”。创建两个区域例如“Untrust”不信任区域对应攻击机侧和“Trust”信任区域对应靶机侧。将port2划入Untrustport3划入Trust。这符合典型的安全模型。安全策略放行进入“策略”-“安全策略”。创建一条策略允许从“Untrust”区域到“Trust”区域的流量。这是为了让攻击机的数据包能够到达靶机。在真实生产环境策略会非常严格但实验初期我们可以先放行所有协议和服务源/目的地址均为any专注于WAF检测。验证连通性在攻击机上ping靶机IP192.168.1.100。如果能通说明AF的透明桥接和基础策略生效了。如果不同请检查AF的接口配置、区域绑定以及安全策略是否启用。3.2 Web应用防火墙WAF策略深度配置这是拦截SQL注入和XSS的关键。AF的WAF模块通过规则库来匹配恶意流量。启用WAF功能在刚才创建的安全策略中点击“编辑”找到“安全防护”或“内容安全”选项卡。勾选“启用Web应用防护”。防护配置模板AF通常提供预定义的防护模板如“宽松”、“中等”、“严格”。对于实验建议先选择“中等”或“严格”模板。这些模板已经内置了对SQL注入、XSS、命令注入、路径遍历等常见Web攻击的检测规则。自定义规则高级进入“对象”-“安全防护模板”-“Web应用防护”可以查看和编辑具体的防护规则。这里你能看到规则ID、描述、攻击类型如sql-injectioncross-site-scripting和匹配的正则表达式模式。例如一条SQL注入规则可能会匹配union selectsleep(benchmark(等关键字和函数。规则动作通常有“告警”、“阻断”、“继续”等。为了看到效果建议将SQL注入和XSS相关规则的动作设置为“阻断”。学习模式初次配置可以先将策略动作设置为“告警”而非“阻断”并开启“学习模式”。让攻击机正常访问几次DVWA页面AF会学习到正常的访问模式有助于减少后续的误报。学习一段时间后再切换为“阻断”模式。日志与报表确保“日志记录”功能是开启的。所有被WAF模块检测到的行为无论告警还是阻断都会生成日志。这是我们后续分析攻击和防御效果的依据。4. 攻击模拟与防御效果深度验证环境就绪策略配好好戏开场。我们将分步骤模拟攻击并实时观察AF的控制台和日志。4.1 SQL注入攻击模拟与拦截分析在攻击机上使用Xhack工具针对DVWA的SQL注入点发起测试。python xhack.py -u http://192.168.1.100/dvwa/vulnerabilities/sqli/?id1SubmitSubmit# --sql --level 3--level 3表示使用更深入的测试等级会发送更多、更复杂的Payload。同时立即切换到AF的Web控制台实时日志进入“监控”-“日志”-“威胁日志”或“Web应用防护日志”。你应该能看到几乎实时的日志条目刷出来。点击一条日志查看详情你会看到攻击源/目的攻击机IP (192.168.1.50) 和靶机IP (192.168.1.100)。攻击类型sql-injection。匹配规则显示触发的具体规则ID和名称如“检测SQL注入攻击UNION查询”。攻击内容这里是最关键的部分AF会展示被拦截的HTTP请求片段例如在URL参数或POST数据中捕获到的恶意字符串1 UNION SELECT user, password FROM users#。这直观地展示了攻击载荷。动作阻断。策略显示是哪条安全策略执行的拦截。靶机验证此时在攻击机的浏览器或Xhack的命令行输出中通常会看到连接被重置、超时或者返回一个错误页面如果AF配置了阻断页面而不会看到正常的DVWA响应内容。这说明攻击流量在AF层面就被截断了根本没有到达后端的Web服务器DVWA。报表分析实验一段时间后进入“报表”-“安全报表”。可以查看针对SQL注入攻击的统计包括攻击次数、来源TOP N、被攻击URL TOP N等。这能帮你从宏观上了解攻击态势。4.2 XSS攻击模拟与拦截分析接下来测试XSS。DVWA的XSS漏洞页面在vulnerabilities/xss_r/或vulnerabilities/xss_s/。python xhack.py -u http://192.168.1.100/dvwa/vulnerabilities/xss_r/?nametest --xssXhack会尝试注入类似scriptalert(xss)/script或img srcx onerroralert(1)的Payload。同样观察AF的威胁日志新的日志条目会出现攻击类型变为cross-site-scripting。查看攻击内容你会看到被过滤掉的恶意脚本标签或HTML事件属性。AF的WAF规则不仅匹配简单的script标签还会对大小写变形、编码混淆如scrscriptipt%3Cscript%3E进行归一化处理后再匹配具备一定的绕过防护能力。4.3 策略调优从“阻断一切”到“精准防护”初始实验我们采用了“严格”模板并直接阻断。但在真实运维中这可能会误杀一些正常的、但写法特殊的业务请求例如一个论坛帖子内容里恰好包含了union select这个词组。如何进行调优例外策略如果某个特定的URL或参数比如一个公开的搜索接口经常因为正常业务被误拦可以在WAF策略中配置“例外规则”。将这条URL或参数排除在特定规则的检测范围之外。但必须极其谨慎确认该路径确实不会处理用户输入或不存在风险。规则阈值有些AF支持对某些攻击类型设置阈值例如在10秒内触发同一条SQL注入规则5次才进行阻断前4次仅告警。这可以应对一些慢速扫描或误报。自定义规则如果你非常了解自身业务可以编写更精确的正则表达式来检测攻击减少泛化规则带来的误报。例如你的用户名字段只允许字母数字那么可以自定义一条规则匹配任何包含单引号、分号等特殊字符的用户名输入。5. 常见问题排查与实战心得在实际操作中你肯定会遇到各种“坑”。下面是我总结的几个典型问题及解决方法。5.1 攻击模拟了但AF没有日志检查网络路径确认攻击机的流量确实流经了AF。在攻击机上执行traceroute 192.168.1.100看路径是否经过AF的接口IP。如果没有检查网络拓扑和AF的桥接接口是否已启用并加入安全区域。检查安全策略确认从源区域到目的区域的安全策略已启用并且没有在更前面被其他策略拒绝。策略是有顺序的AF会从上到下匹配。检查WAF功能开关确认在对应的安全策略上已经勾选了“启用Web应用防护”并且应用了正确的防护模板。检查日志级别确认AF的日志设置中威胁日志级别包含了“通知”或更高并且日志开关是打开的。5.2 AF有告警日志但攻击似乎成功了页面显示了数据库错误或弹窗策略动作是“告警”而非“阻断”这是最常见的原因。去WAF策略里检查一下触发的规则动作是否只是“记录”或“告警”。如果是AF只会记录日志而不会拦截数据包。需要改为“阻断”。攻击载荷成功绕过WAF规则不是万能的。一些经过高级混淆、编码或利用冷门特性的攻击载荷可能暂时不在规则库中。这时日志里可能没有对应记录或者匹配了其他近似规则但没阻断。解决方案更新AF的特征库到最新版本分析攻击载荷尝试在WAF中自定义更严格的规则。HTTPS流量解密如果靶场是HTTPS的AF需要配置SSL解密策略才能看到明文内容并进行WAF检测。否则它只能看到加密的流量WAF无法生效。实验环境建议先用HTTP。5.3 如何区分AF拦截和服务器自身错误有时访问失败可能是靶场服务Apache/PHP挂了或者数据库连接失败。看AF日志最直接的证据。如果AF的威胁日志里有对应时刻、对应源IP的阻断记录那基本就是AF拦截的。看攻击机报文如果被AF阻断攻击机收到的往往是TCP连接重置RST或直接超时。如果是服务器错误通常会返回一个HTTP 500或200状态码但内容是错误信息。临时绕过测试在AF上针对攻击机IP做一个短时间的策略豁免如设置一个地址例外或临时关闭WAF再发起同样攻击。如果此时攻击成功出现数据库错误或弹窗那就反向证明了之前是AF拦截的。5.4 实操心得让实验价值最大化对比实验在AF拦截的同时尝试直接访问靶机IP不经过AF用同样的Payload测试观察结果。这能让你深刻体会到防火墙的价值。修改Payload不要只依赖工具。手动在浏览器地址栏或Burp Suite里修改ID参数尝试一些简单的注入如1 and 11和1 and 12观察页面返回差异布尔盲注原理同时看AF是否会拦截。这能帮你理解规则匹配的粒度。查看规则详情多花时间研究AF的WAF规则库。了解它针对order by注入、时间盲注、报错注入等不同类型SQL注入的检测规则是什么这对你编写更安全的代码有直接帮助。性能观察在持续进行攻击测试时观察AF控制台的系统状态CPU、内存。虽然实验流量小但你可以了解在高强度攻击下开启深度检测对设备性能的影响这对未来规划硬件选型有参考意义。这个实验就像一次“攻防演习”你是红方攻击也是蓝方防御配置与监控。通过亲手操作那些书本上关于WAF原理、正则表达式特征、安全策略的概念都会变得无比具体和生动。防火墙不再是配置手册里冰冷的命令行和复选框而是一个你可以与之互动、验证其能力的智能伙伴。