当前位置:首页 > 网络安全培训 > 正文

巧用字符编码:绕开WAF的XSS攻击

巧用字符编码:绕开WAF的XSS攻击

巧用字符编码:绕开WAF的XSS攻击 传统的Web Application Firewall(WAF)可以有效防御XSS(跨站脚本)攻击,但如今攻击者的手法也越发狡猾...

巧用字符编码:绕开WAF的XSS攻击

巧用字符编码:绕开WAF的XSS攻击
传统的Web Application Firewall(WAF)可以有效防御XSS(跨站脚本)攻击,但如今攻击者的手法也越发狡猾,很多WAF已无法抵御高级的XSS攻击。本篇文章将介绍10种巧妙绕过WAF的XSS技巧,让你更好地了解并防御此类攻击。
1. 零宽字符
攻击者可利用零宽字符绕过WAF过滤,如‘’。这些字符可以通过转义的方式将HTML标签、JavaScript代码以及URL参数隐蔽起来,绕过WAF的检测机制,从而允许攻击者注入恶意代码。
2. SVG
SVG(Scalable Vector Graphics)是一种矢量图形格式,它可以用来创建多种艺术效果。当攻击者通过将恶意代码藏于SVG格式的文件中,借用浏览器的解析能力执行攻击。WAF往往不会检查SVG文件,所以攻击者可以通过SVG文件注入恶意脚本。
3. 原型污染
通过修改某些JavaScript对象的原型以及添加伪造的属性,攻击者可以绕过WAF的XSS过滤。当攻击者通过这种方式注入代码后,WAF仅会检查部分代码内容,无法审查对象的原型及新增属性,从而忽略导致XSS攻击的代码。
4. 获取跨站请求伪造令牌
当一个用户访问某个页面时,Web应用程序会发送一些数据到浏览器端,以便之后校验用户的请求。攻击者可以利用这个过程,在访问过程中,通过向浏览器注入恶意代码或跟踪cookie来劫持不可预测的校验数据。这种技术可有效绕过WAF的CSRF保护机制。
5. 解决JavaScript中的编码问题
当攻击者通过输入或插入变量来构建一个JavaScript语句时,有时会存在编码问题,这可能导致WAF无法检测XSS攻击。此时,可使用长整数编码,或Unicode编码将XSS攻击的代码转换为数字,从而绕过WAF。
6. 利用CSS注入攻击
CSS样式表在处理XSS攻击时被忽略,因此,攻击者可以通过在样式表中添加恶意链接从而实现XSS攻击。无论是通过注入CSS集合或字体等渲染属性,或者使用CSS分离技术,这种攻击方式均能绕过WAF的过滤机制。
7. Base64编码
Base64编码可将Content-type设置为text/plain格式的数据转换为ascii字符串,这些字符串可以在任何情况下提供数据。当攻击者使用Base64编码时,WAF将不可识别为HTML或JavaScript代码,并将其视为普通的文本,从而使其能够轻松绕过WAF检测。
8. JavaScript中的十六进制字符串
在JavaScript中,十六进制可以转换为十进制,并以ASCII码的形式表示为字符。当攻击者将十六进制编码的字符串插入到JavaScript代码块中,并在其中添加恶意代码,可以欺骗WAF,以允许恶意代码进入Web应用程序。
9. 微信支付API缺陷
部分微信支付API传输数据时没有进行安全加密处理,如果攻击者能够截取这些数据,就能注入XSS攻击,无法绕过WAF。因此,建议使用安全的数据加密技术,防止此类攻击。
10. JavaScript数组
当攻击者将恶意代码插入到JavaScript数组中时,WAF将无法解读攻击代码。例如,在一个数组中创建一个名为xss[0]的对象,然后将世界上第一条XSS攻击代码作为值放入数组。这种技术可以很容易地绕过WAF的检测机制。
结语
以上是十种绕过WAF的XSS技巧,攻击者可以通过运用这些方法,从而欺骗WAF的检测机制,进而实施恶意攻击。要阻止这些攻击,需要Web应用程序进行全面测试,并及时更新WAF软件,以保持最高的安全性。同时,需要对Web应用程序进行安全性讲解,以便不良攻击者选择放弃攻击。

最新文章