Waf分类:
WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型指的是硬WAF、云WAF、虚拟机WAF之类的;嵌入型指的是web容器模块类型WAF、代码层WAF。
Waf工作模式:
关闭模式:对某个站点使用关闭模式,到这个站点的流量就感受不到WAF的存在。一般的做法,是解绑域名,再到web服务上绑定该域名。
监听模式:既过规则,也会直接传递给web服务。
防护模式:直接过规则,不会直接传递给web服务
WAF规则引擎原理
WAF无非就是拦截有害请求和伪装响应,出于性能考虑,拦截有害请求又分为两个层面,由网络层拦截和由应用层拦截,且任何请求应该先在网络层过滤再到应用层过滤。也就是说,规则引擎分为两块,对请求过滤和对响应过滤,而对请求过滤分为两大步,网络层过滤和应用层过滤。
原理图大致如下:
详情参考:
https://www.cnblogs.com/realjimmy/p/12937247.html#:~:text=WAF%E5%85%A8%E7%A7%B0%E5%8F%ABWeb,Application%20Firewall%EF%BC%8C%E5%92%8C%E4%BC%A0%E7%BB%9F%E9%98%B2%E7%81%AB%E5%A2%99%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%EF%BC%8C%E5%AE%83%E6%98%AF%E5%B7%A5%E4%BD%9C%E5%9C%A8%E5%BA%94%E7%94%A8%E5%B1%82%E7%9A%84%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%8C%E4%B8%BB%E8%A6%81%E5%AF%B9web%E8%AF%B7%E6%B1%82%2F%E5%93%8D%E5%BA%94%E8%BF%9B%E8%A1%8C%E9%98%B2%E6%8A%A4%E3%80%82
Waf工作原理:
WAF工作方式是对接收到的数据包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。
Waf工作过程:
解析HTTP请求
对接收到数据请求流量时会先判断是否为HTTP/HTTPS请求,之后会查看此URL请求是否在白名单之内,如果该URL请求在白名单列表里,直接交给后端Web服务器进行响应处理,对于不在白名单之内的对数据包解析后进入到规则检测部分。
匹配规则
解析后的数据包会进入到检测体系中进行规则匹配,检查该数据请求是否符合规则,识别出恶意攻击行为。
防御动作
如果符合规则则交给后端Web服务器进行响应处理,对于不符合规则的请求会执行相关的阻断、记录、告警处理。
不同的WAF产品会自定义不同的拦截警告页面,在日常渗透中我们也可以根据不同的拦截页面来辨别出网站使用了哪款WAF产品,从而有目的性的进行WAF绕过。
记录日志
Waf绕过
Waf拦截会出现在安全测试的各个层面,掌握各个层面的分析和绕过技术最为关键。
信息搜集
绕过分析:抓包技术、waf说明、FUZZ测试
绕过手法:
数据包特征:请求方式、模拟用户、爬虫引擎、白名单机制
请求速度:延时(阿里3秒)、代理池、爬虫引擎、白名单机制
漏洞发现
工具:
综合:awvs、xray、appscan
单点:tpscan、wpscan、st2can
触发:
扫描速度:延时、代理池、白名单
工具指纹:特征修改、模拟用户
漏洞payload:数据变异、冷门扫描
漏洞利用
Sql注入、文件上传、xss跨站、文件包含、RCE执行
Sql注入:
如需sgImap注入 修改us头及加入代理防cc拦截自写tamper模块
安全狗:参考之前payload
Aliyun:基本修改指纹即可
宝塔:匹配关键字外加/*等
aglmap --proxy="http://127.0.0.1:8080" --tamper="waf.py" --.random-agent
#文件上传
php截断参考前面上传waf绕过payload
#xss跨站
利用xsstrike绕过 加上--timeout或--proxy绕过cc
https://www.freebuf.com/sectool/142044.html
其他集合
RCE:
加密加码绕过?算法可逆?关键词绕过?提交方法?各种测试!
ex=sy=ser_replace ('', ,, 'pahpxinxfo() '); assert (sy) ; asubmit
32648F90E49BAA4
文件包含:没什么好说的就这几种
.\ .../ ..等
权限控制:
脚本:asp、php、jsp、aspx、py、war等
工具:菜刀、蚁见、冰蝎
代码:加密混淆、变量覆盖、异或生成
行为:指纹变异、自写轮子
检测:常规安全脚本工具使用
异或免杀生成工具:webshell-venmon-master