成功找到一个sql注入 手工测试,发现有waf 此刻我们过一波waf 首先burp抓包 改成post型 ? ? 此刻是post型 复制出来 ? 到这里就差不多了 修复方式: 对get,post,cookie传递过来的值过滤对一些sql语句关键字过滤or and && select if () union from等再加个云waf
环境:apache+php+mysql(使用的phpstudy的集成环境) 最新版安全狗:刚从官网下载来的 注入点: 常规的and 1=1判断测试: 被拦截,用/**/代替空格:成功绕过 http:/
对于只看宏观文章,没有实战的演练,无疑是很好的案例。 三、具体实现 本次测试是以如下站点为例:http://www.ecgi.org/wp/wp_id.php? id=213 ’ Order%A0By 100 出现报错,说明waf没有过滤,已经可以bypass。 ? id=123’ UnIoN SeLeCt 发现被waf拦截。下面再次尝试bypass。 ? 如图所示:oh shit….依然被waf拦截。 ? 接着分析绕过吧,通过手工测试,waf过滤的是小数点(.)。 本人也在学习和搜集关于oracle的一些绕过waf技巧,有感兴趣的可以互相学习,探讨。
软件WAF: 主要通过访问速度、指纹识别等特征进行拦截,软件WAF侧重拦截WEB漏洞。 主要有安全狗、云锁等 硬件WAF: 主流防御流量和部分WEB攻击,常见硬件WAF如天融信、启明星辰、深信服、安恒等。 云WAF: 如阿里云等。 WAF部署在哪里 在测试的过程中我们要知道WAF一般主要是部署在那个节点,这对我们绕过WAF时有很大帮助。 通过下图我们可以大概了解: 绕WAF的理解 在我自己看来,所谓的BYPASS WAF实际上是去寻找位于WAF设备之后处理应用层数据包的硬件/软件的特性。 实战常遇技巧 当你发现这些姿势都不好使的时候,你就该去发现一些新的特性了,毕竟设计WAF的选手都是基于目前的认知下去设计的,当新的特性出现的时候,势必又是一波bypass。
从回包的状态码403和Server值可以判断是被Waf拦截了。 那么这时如果我们想要绕Waf的话,就要去思考它对应的正则匹配的规则可能存在的情况了: 1.匹配script 2.匹配alert 3.匹配<.*? 那就再简单猜测一下对应的Waf规则吧: 1.匹配onerror= 2.匹配alert(.*?) 3.匹配on.*?=alert(.*?) 4.匹配on.*?=.*?alert(.*?) 也无需测试都会被Waf拦截。
可以看到被 WAF 拦截。 0x02 WAF 绕过 在这个点上测试了一天都没能绕过,在以为专注 WAF 绕过研究的大神帮助下,发现一个可用的 Payload,长下面的样子: []["\146\151\154\164\145\162 看了一些 waf 绕过的资料后,发现以下 payload 可用: a=”al”;b=”ert”;self[a+b](); 尝试是否可以绕过: 响应: 发现 waf 并没有拦截,尝试用浏览器打开页面, 总结 以上是这次针对存在 waf 的 xss 漏洞接口的绕过测试过程,通过一些 JavaScript 的特性,通过字符串变化、编码等方式组合 payload 从而实现 waf 的绕过,waf 通常是通过正则来进行检测和拦截 ,如果你找到了目标 waf 规则之外的方式,那么,恭喜你,waf 对你无用。
id=26-p id --tamper=space2comment,equaltolike,between --current-db --random-agent 检测显示存在 WAF: 不管它,让它继续检测
91.png 【问题分析和排查思路】 分析问题之前,先上官网的压测链路: 压测机(运行Jmeter脚本)--> WAF --> CLB --> Node集群(Web) 通过链路排查,定位是WAF的问题。 从CLB压过去没有任何问题,但是经过WAF之后,出现掉坑现象,所以一开始就怀疑是WAF限频问题,询问了WAF的同学是不是触发了什么策略。 92.png WAF的同学查看告警模块,发现触发了ipset封堵策略。 19:30:20开始出现掉坑 ,然后出现WAF ipset封堵策略告警,时间是刚好对应的上。 93.png 让WAF的同学对其加白,问题得以解决。 95.png 【总结】 首先要确定压测链路是什么。 一步一步缩小压测环节,快速定位问题。 然后根据波形图进行合理猜测。
WAF全称叫Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对web请求/响应进行防护。那么WAF有什么功能呢? 防火墙都是防御性的产品,有防就有攻,要了解WAF有什么功能,就要从攻击者的角度去思考。 攻击的目的要么是为了利益,要么是为了炫技。目前攻击者大多都是闷声发大财,很少会为了炫技而惹上麻烦。
摘要 本文深入解析SQL注入攻击的原理与危害,结合腾讯云Web应用防火墙(WAF)的核心能力,提供从基础防护到高级防御的完整解决方案。 腾讯云WAF凭借AI+规则双引擎、全量日志分析和30线BGP防护等特性,成为拦截SQL注入的标杆方案。 攻击类型 案例描述 损失规模 数据泄露 电商平台用户信息遭窃取 2.3亿美元赔偿 系统破坏 金融系统数据库被清空 业务停摆72小时 后门植入 政府网站植入WebShell 持续3个月数据篡改 二、腾讯云WAF XSS等25种攻击类型检测 拦截90%基础攻击 CC策略 设置管理后台路径QPS阈值≤10次/分钟 阻断自动化扫描 2.高级防御策略 场景化规则配置示例: # 阻断含危险函数的SQL注入(参考腾讯云WAF 规则库) if "UNION SELECT" in request.GET and "information_schema" in request.GET: trigger_waf_block(
超大数据包绕过 绕过原理 资源限制:WAF长度资源限制 假如HTTP请求POST BODY太大,检测所有内容,WAF集群消耗太多的CPU、内存资源。因此许多WAF只检测前面的2M或4M的内容。 对于攻击者而言,只需要在POST BODY前面添加许多无用的数据,把攻击的payload放在最后即可绕过WAF检测。 ,我们猜测安全工程师写WAF规则时,可能不知道函数名与左括号之间可以存在特殊字符,或者遗漏可以存在特殊字符。 所以,当 waf 没有规则匹配该协议传输的数据时可被绕过。 [User]/**/where id=1 那么意味着在注释符中可以添加大量的无效字符来打破WAF的规则匹配。
38.png 39.png 【问题分析和排查思路】 分析问题之前,先上官网的压测链路: 压测机(运行Jmeter脚本)--> WAF --> CLB --> Node集群(Web) 通过链路排查,排除了 40.png 找了运维同学查看WAF设置,发现QPS被限制在10万左右,需要升级套餐。 41.png 把QPS套餐升级到23.5万,问题得以解决。
过WAF(针对云WAF) 寻找真实IP(源站)绕过 如果流量都没有经过WAF,WAF当然无法拦截攻击请求。 当前多数云WAF架构,例如百度云加速、阿里云盾等,通过更改DNS解析,把流量引入WAF集群,流量经过检测后转发请求到源站。 如图,dict.com接入接入WAF后,dict.com的DNS解析结果指向WAF集群,用户的请求将发送给WAF集群,WAF集群经过检测认为非攻击请求再转发给源站。 如果子站访问目标站不经过WAF集群,可以利用SSRF漏洞来绕过WAF。 资源限制角度绕过WAF 超大数据包绕过 这是众所周知、而又难以解决的问题。 协议层面绕过WAF 即使流量都确保经过WAF,如果WAF的防御策略根本就没有检测payload,那么也就能绕过WAF。
渗透测试过程中,WAF 是必定会遇到的,如何绕过 WAF 就是一个问题。 WAF 绕过的手段千变万化,分为 3 类 白盒绕过 黑核绕过 Fuzz绕过 以下以 SQL 注入过程 绕 WAF 为例列举需要的知识点。 黑盒绕过 架构层绕过 WAF 寻找源站(针对云 WAF) 利用同网段(绕过防护区域:例如WAF部署在同一网段的出口,使用网段的主机进行攻击,流量不经过WAF 。) MYSQL1nigth Oselect{x table_name}from{x information_schema.tables}; Fuzz绕过 上面的例子我相信你看到这篇文章时基本都失效了,那么如何在实战中找到突破 WAF是如何防护的?“ WAF基于对http请求的分析,识别恶意行为,执行相关的阻断、记录、放行等”。 WAF如何分析http请求?
WAF也是防火墙,那么它应该是部署在哪里呢?在部署上,它和传统防火墙有什么区别呢? 传统防火墙处理的消息格式大多是格式化,基本上内容都是固定或者索引方式。 而WAF处理的消息是文本,是非格式化消息,都是可变的。在处理这两种不同的消息格式,在性能上的消耗相差非常大。
图片来源于网络 通过标题,您可能会知道这是有关使用UNICODE进行 XSS WAF绕过的文章。因此,让我们给你一个关于我正在测试的应用程序的小想法。 因此,存在WAF。 为了绕开它,我开始模糊测试,结果是: xss \" onclick= \" alert(1) ==> WAF xss \" xss = \" alert(1) ==> WAF xss 因此,我们唯一的方法是绕过WAF 在标记中使用事件属性。我尝试通过fuzzdb使用html-event-attributes.txt 进行暴力破解。 以看看是否有事件没有被WAF阻止然而并没有什么有值得关注的。 然后我考虑了一下进行unicode编码,输入了一个随机的unicode看看它在响应中是否解码。
nice 有WAF, 赶紧去访问网站看看IP有没有被封 还好, 没有被封 ? 显示payload, 看看是哪句被拦截了 sqlmap -u "http://www.xxx.com? 将被拦截的payload的放到浏览器中去访问, 果然被WAF拦截了 ? 手工模糊测试, 发现被拦截的为关键字: FROM ? 这里说下个人思路: 在已经确定是什么WAF的前提下, 网上去查询过相关WAF的思路, 这里我找到了几个, 尝试后还是没有绕过去 sqlmap自带有过WAF脚本, 我去查询了下有没有能代替<FROM>的其他关键字
nice 有WAF, 赶紧去访问网站看看IP有没有被封 还好, 没有被封 ? 显示payload, 看看是哪句被拦截了 sqlmap -u "http://www.xxx.com? 将被拦截的payload的放到浏览器中去访问, 果然被WAF拦截了 ? 手工模糊测试, 发现被拦截的为关键字: FROM ? 这里说下个人思路: 在已经确定是什么WAF的前提下, 网上去查询过相关WAF的思路, 这里我找到了几个, 尝试后还是没有绕过去 sqlmap自带有过WAF脚本, 我去查询了下有没有能代替<FROM>的其他关键字
在这篇文章中,我们将深入探讨WAF的工作原理、分类、特点和实现方式,以及如何选择和部署WAF,以帮助读者更好地理解WAF的功能和应用。 一、WAF的工作原理 WAF可以通过对Web应用程序的流量进行过滤和监控,识别并阻止潜在的安全威胁。 二、WAF的分类 WAF可以在多个层次对Web应用程序进行保护。 常见的WAF包括以下几种: 硬件WAF:硬件WAF通常是一种独立设备,它可以与网络交换机、路由器等设备集成,拦截来自外部网络的流量,并对Web应用程序进行保护。 云WAF:云WAF通常是一种基于云的服务,可以将Web应用程序的流量转发到云端进行处理。云WAF可以提供全球分布的节点,从而提高Web应用程序的可用性和性能。
由于WAF一般和业务系统是串联的,并且还是部署在业务系统前面。如果采用反向代理部署模式,假设WAF出现故障,那么会导致单个或者多个站点不可用。这意味着WAF的功能必须是随时可以关闭的。 一个WAF往往需要同时防护多个站点,如果把整个WAF关闭,是会导致整体业务群都失去保护。所以,WAF的工作模式必须有对站点有随时关闭的模式。