网络安全 (七 WAF)

本文介绍了绕过WAF的方法,包括绕过网站和服务器上的WAF。阐述了WAF触发原理,即扫描速度超阈值会触发。还给出多种绕过手段,如目录扫描绕过(修改IP、减慢速度、使用代理)、手工注入(大小写变种、用SQL注释等)、利用注释,以及sqlmap设置延缓函数和多种tamper脚本的使用方法。

waf要层层绕过,1.网站层次的waf 2. 服务器上的waf

waf触发原理:针对扫描速度,超过某种阈值,触发waf

1.目录扫描绕过waf
修改客户端ip------> 扫描工具:御剑后台扫描 DirBuster
减慢扫描的速度 //网站扫描阈值的限制,减慢速度的话,不易被发现
通过代理欺骗waf //使用代理,被封的话也是代理的Ip

2.手工注入
大小写变种 and 1=2 —> AND 1=3
使用SQL注释 //union//select (/**/代替空格)
/d/and/c/1=1 破环安全狗的正则匹配规则

使用URL编码   '--->%27  
使用空字节    %01 %00  an%00d 1=1
使用嵌套过分离   anandd
使用非标准入口点    //非主站,防守相对较弱的副站
避开自定义过滤器   //人家网站定义的不允许上传的参数列表 eg:and or union select
空格 /**/
将get改成post或者是cookie提交   牛逼

3.利用注释
/!and/ 1=1
/!4001and/ 1=1

4.sqlmap 设置延缓函数,以免被安全狗查到
–delay 1


使用方法–tamper xxx.py

apostrophemask.py用UTF-8全角字符替换单引号字符
apostrophenullencode.py 用非法双字节unicode字符替换单引号字符
appendnullbyte.py在payload末尾添加空字符编码
base64encode.py 对给定的payload全部字符使用Base64编码
between.py分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=”
bluecoat.py 在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等于号“=”
chardoubleencode.py 对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)
charencode.py 对给定的payload全部字符使用URL编码(不处理已经编码的字符)
charunicodeencode.py 对给定的payload的非编码字符使用Unicode URL编码(不处理已经编码的字符)
concat2concatws.py 用“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例
equaltolike.py 用“LIKE”运算符替换全部等于号“=”
greatest.py 用“GREATEST”函数替换大于号“>”
halfversionedmorekeywords.py 在每个关键字之前添加MySQL注释
ifnull2ifisnull.py 用“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例
lowercase.py 用小写值替换每个关键字字符
modsecurityversioned.py 用注释包围完整的查询
modsecurityzeroversioned.py 用当中带有数字零的注释包围完整的查询
multiplespaces.py 在SQL关键字周围添加多个空格
nonrecursivereplacement.py 用representations替换预定义SQL关键字,适用于过滤器
overlongutf8.py 转换给定的payload当中的所有字符
percentage.py 在每个字符之前添加一个百分号
randomcase.py 随机转换每个关键字字符的大小写
randomcomments.py 向SQL关键字中插入随机注释
securesphere.py 添加经过特殊构造的字符串
sp_password.py 向payload末尾添加“sp_password” for automatic obfuscation from DBMS logs
space2comment.py 用“/**/”替换空格符
space2dash.py 用破折号注释符“–”其次是一个随机字符串和一个换行符替换空格符
space2hash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
space2morehash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
space2mssqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
space2mssqlhash.py 用磅注释符“#”其次是一个换行符替换空格符
space2mysqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
space2mysqldash.py 用破折号注释符“–”其次是一个换行符替换空格符
space2plus.py 用加号“+”替换空格符
space2randomblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
unionalltounion.py 用“UNION SELECT”替换“UNION ALL SELECT”
unmagicquotes.py 用一个多字节组合%bf%27和末尾通用注释一起替换空格符
varnish.py 添加一个HTTP头“X-originating-IP”来绕过WAF
versionedkeywords.py 用MySQL注释包围每个非函数关键字
versionedmorekeywords.py 用MySQL注释包围每个关键字
xforwardedfor.py 添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF

### 关于WAF (Web应用防火墙) 的配置方法 #### OpenResty WAF 配置指南 为了增强Web应用的安全性,可以通过OpenResty实现高效的WAF功能。以下是具体的配置流程: 1. **安装依赖环境** 安装必要的工具和库来支持OpenResty及其扩展模块。例如,在Linux环境下可以使用以下命令完成基本的依赖包安装: ```bash sudo apt-get update && sudo apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev git curl wget ``` 2. **下载并编译OpenResty** 下载最新的OpenResty版本,并按照官方文档说明进行编译和安装[^1]。 ```bash wget https://openresty.org/download/openresty-1.21.4.1.tar.gz tar zxvf openresty-*.tar.gz cd openresty-* ./configure --with-http_ssl_module --with-luajit make && sudo make install ``` 3. **集成WAF模块** 使用第三方Lua脚本或插件(如`lua-resty-waf`),将其嵌入到OpenResty中以实现更强大的防护能力。 修改Nginx配置文件,加载相应的Lua模块并定义规则集路径: ```nginx http { init_by_lua_block { require("resty.waf").init({ rules_path = "/path/to/waf-rules", debug = true, }) } access_by_lua_block { local waf = require("resty.waf") waf.execute() } server { listen 80; location / { proxy_pass http://backend_server; } } } ``` 4. **设置规则集** 创建自定义规则目录 `/path/to/waf-rules` 并编写具体匹配条件用于拦截恶意流量。这些规则通常基于正则表达式或者预设模板生成。 --- #### 基础理论与工作原理概述 WAF的核心机制在于通过对HTTP(S)协议层的数据流分析实施细粒度控制。它能够识别潜在危险操作比如SQL注入尝试、跨站脚本(XSS),以及伪造请求等行为,并及时阻止它们到达目标服务端之前被处理[^2]。 对于希望进一步提升保护力度的企业来说,则可能考虑引入更加成熟的解决方案——像ModSecurity这样的开源项目提供了丰富的特性选项可供调优定制化需求[^3]。 如果决定采用ModSecurity作为主要防线之一的话,请注意初始阶段建议先开启审计日志记录而非立即切换至完全阻挡状态;这样有助于观察实际运行状况进而调整参数直至达到理想效果为止。 --- ### 实际案例分享 – ModSecurity+Nginx组合方案简介 下面给出一段简单的例子展示如何快速搭建起具备初步防御力的框架结构: 1. 克隆仓库克隆最新版源码: ```bash git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity.git modsecurity ``` 2. 编辑 `modsecurity.conf-recommended`, 启用必要部分并将此文件复制成最终生效形式命名为 `modsecurity.conf`. 3. 将OWASP CRS压缩包解压放置合适位置, 更新链接指向新地址. 最后记得重启webserver使更改即时生效即可享受全方位保驾护航啦! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值