成功找到一个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=123’ UnIoN SeLeCt 发现被waf拦截。下面再次尝试bypass。 ? FrOm Information_schema— - 这里被waf拦截。 如图所示: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: 不管它,让它继续检测 id=extractvalue(1,concat(0x7e,database(),0x7e)) 尝试后发现数据库名已经出现: 到此达成所愿,从一个无法直接 sqlmap 检测出的漏洞,通过 AI 之力,
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 +规则双引擎: 语义分析引擎:深度解析请求参数,识别变异注入语句(如十六进制编码绕过) 规则动态更新:每周同步全球威胁情报,覆盖OWASP Top10最新变种 0day漏洞应急响应: 7× 规则库) if "UNION SELECT" in request.GET and "information_schema" in request.GET: trigger_waf_block(
系统说明 系统: centos7 ip: 192.168.1.4 实现WAF 两种方式 1.使用nginx+lua来实现WAF,须在编译nginx的时候配置上lua。 http{}中增加,注意路径,同时WAF日志默认存放在/tmp/日期_waf.log #WAF lua_shared_dict limit 50m; lua_package_path " /local/openresty/nginx/conf/waf/access.lua"; waf目录:/usr/local/openresty/nginx/conf/waf/ lua配置文件:/usr /local/openresty/nginx/conf/waf/config.lua Waf的ip黑名单:/usr/local/openresty/nginx/conf/waf/rule-config/ openresty/nginx/conf/waf/config.lua config_waf_enable = "on" --是否启用waf模块,值为 on 或 off config_log_dir
使用tke的接入层组件时候,很多时候会用到nginx-ingress,并且为了网站安全,很多时候会需要将域名接入到waf,但是waf只支持clb的7层监听接入https://cloud.tencent.com ,这样就clb就无法接入waf了,其实要想nginx-ingress接入waf,还是有很多方法,下面我们说说如何将nginx-ingress来接入waf。 其实nginx-ingress接入waf,只需要将入口clb改成7层监听就行。下面我们说说如何来将入口clb改成7层监听。1. 图片图片绑定成功后,nginx-ingress的接入clb就变成7层监听了,然后就可以将clb接入waf了。 waf即可
超大数据包绕过 绕过原理 资源限制:WAF长度资源限制 假如HTTP请求POST BODY太大,检测所有内容,WAF集群消耗太多的CPU、内存资源。因此许多WAF只检测前面的2M或4M的内容。 所以,当 waf 没有规则匹配该协议传输的数据时可被绕过。 Accept-Encoding: gzip, deflate Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA =low; ECS[visit_times]=1; PHPSESSID=90a4331de18bcd32ee2d780254f44589 ------WebKitFormBoundaryrGKCBY7qhFd3TrwA select null,concat_ws (char(32,58,32),user,password) from users # ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
过WAF(针对云WAF) 寻找真实IP(源站)绕过 如果流量都没有经过WAF,WAF当然无法拦截攻击请求。 image-20211101163158685 绕过云WAF寻找真实IP与绕过CDN寻找真实IP的方法类似,可以查看这篇文章: https://plumeria.ltd/post/efd52af7.html #CDN%E7%9A%84%E7%BB%95%E8%BF%87 利用同网段绕过 一些在云服务商的站点,同时使用云服务商提供的WAF服务。 IBM424, IBM-Thai, IBM871, cp1025 参数名按原始格式(可以像往常一样使用url编码)Body不论是否经过url编码均可等号和&符号不应该以任何方式编码 Apache-TOMCAT7- %uff09 %c0%29 %c0%a9 %e0%80%a9 Emoji表情字符绕过 emoji是一串unicode字集组成,一个emoji图标可以占2、4、7个字节。
38.png 39.png 【问题分析和排查思路】 分析问题之前,先上官网的压测链路: 压测机(运行Jmeter脚本)--> WAF --> CLB --> Node集群(Web) 通过链路排查,排除了 40.png 找了运维同学查看WAF设置,发现QPS被限制在10万左右,需要升级套餐。 41.png 把QPS套餐升级到23.5万,问题得以解决。
黑盒绕过 架构层绕过 WAF 寻找源站(针对云 WAF) 利用同网段(绕过防护区域:例如WAF部署在同一网段的出口,使用网段的主机进行攻击,流量不经过WAF 。) concat/**/() concat%250c() concat%250() 浮点数词法解析 select * from users where id=8E0union select 1,2,3,4,5,6,7,8,9,0 select * from users where id=8.0union select 1,2,3,4,5,6,7,8,9,0 select * from users where id=\Nunion select 1,2,3,4,5,6,7,8,9.0 利用 error-bases进行 SQL 注入(err0r-bases SQL 注入函数容易被忽略) extractvalue(1, concat MYSQL1nigth Oselect{x table_name}from{x information_schema.tables}; Fuzz绕过 上面的例子我相信你看到这篇文章时基本都失效了,那么如何在实战中找到突破
WAF也是防火墙,那么它应该是部署在哪里呢?在部署上,它和传统防火墙有什么区别呢? 传统防火墙处理的消息格式大多是格式化,基本上内容都是固定或者索引方式。 而WAF处理的消息是文本,是非格式化消息,都是可变的。在处理这两种不同的消息格式,在性能上的消耗相差非常大。
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应用程序的可用性和性能。