WAFs protection Bypassed to Execute XSS Payloads Using JS Injection with Parameter Pollution
2025/08/05 CyberSecurityNews — Web Application Firewall (WAF) 保護を回避するために、HTTP パラメータ汚染と JavaScript インジェクションを組み合わせるという、巧妙な手法が発見された。その仕組は、WAF エンジンと Web アプリケーション・フレームワークの間に存在する解析動作の相違を悪用し、特に ASP.NET におけるパラメータ処理の挙動に着目することで、従来のセキュリティ検出を回避するクロスサイト・スクリプティング (XSS) 攻撃を成立させるものだ。

この研究は Bruno Mendes により実施されたものであり、AWS/Google Cloud/Azure/Cloudflare などの主要クラウド・ベンダーが提供する、17 種類の WAF コンフィグに対して評価が行われた。その結果として、現在の Web セキュリティ基盤に深刻な脆弱性が存在することが明らかとなった。
主なポイント
- この手法は、XSS ペイロードを複数の HTTP パラメータに分割することで、WAF による検出を回避するものだ。
- 調査によると、17 種類の WAF コンフィグのうち、これらの巧妙なパラメータ汚染攻撃を阻止できたのは、わずか3種類に留まった。
- さらに、AI により駆動される自動化ツール (hackbot) は、すべてのコンフィグにおいて 100% のバイパス成功率を達成し、数秒で簡易なエクスプロイトを発見する能力を有していた。
ASP.NET パラメータ連結の悪用
ASP.NET のパラメータ連結挙動を悪用する点が、この手法のコアである。ASP.NET は、HttpUtility.ParseQueryString() を用いる際に、同名の複数パラメータを検出すると、それらの値をカンマで結合する。この動作と、JavaScript におけるカンマ演算子構文を組み合わせることで、悪意のコード挿入の可能性が生じる。
Ethiack の研究チームが実証したのは、たとえば「/?q=1’&q=alert(1)&q=’2」といったクエリ文字列が、ASP.NETにより “1′,alert(1),’2” に連結されることだ。この形式がJavaScriptの文脈 (例:userInput = 'USER_CONTROLLED_DATA';) に挿入されると、構文的に正当な “userInput = '1',alert(1),'2';” というコードになり、alert(1) の実行が可能となる。
従来の WAF は、Webフレームワークが複数パラメータを解析/結合する方法を、正確に模倣することができないため、この種の攻撃に対する検出能力には限界がある。一般的に WAF は、個別のパラメータ単位でスキャンを行うため、全体構文の組み合わせによる攻撃には対応しきれない。
Bruno Mendes は、シンプルな注入 (例:q=';alert(1)) から始まり、改行や変数定義を用いた高度な汚染手法 (例:q=1’%0aasd=window&q=def=”al”+”ert”&q=asd +’) に至るなでの、3種のペイロードで評価を行った。
発見された WAF の脆弱性とは?
一連の調査の結果として判明したのは、17 のコンフィグのうち、すべての手動ペイロードに対応できたのは、以下の3種類のみだった。
- Google Cloud Armor における ModSecurity ルール
- Microsoft Azure WAF における Default Rule Set 2.1
- すべての open-appsec コンフィグ
その一方で、AWS のマネージド・ルール/CyberSecurity Cloud ルール・セット/F5 ルール・セットなどの大半の WAF ルールは、すべてのテストしたペイロードに対して、完全なバイパスを許していた。
このバイパス成功率は、ペイロードの高度化に伴い大幅に増加し、単純なケースでは 17.6% であったが、高度なパラメータ汚染手法では 70.6% にまで上昇した。
特筆すべきは、AI による自動化エージェント (hackbot) が 100% の検出回避を達成し、従来はバイパスが困難とされていたコンフィグすら突破できたことだ。たとえば、エスケープ文字の処理に関する解析の不一致を突く “test\\';alert(1);//“、という単純なペイロードで、Azure WAF の防御を突破した事例が確認されている。
この研究により、WAF における根本的な限界が露呈した。すなわち、WAF はアプリケーション固有の解析挙動を完全には模倣できず、その点が、巧妙な攻撃者による差異的なバイパスの温床となっている。結果として、高額な WAF ソリューションを導入している組織であっても、複雑なパラメータ汚染攻撃および単純なインジェクション手法に対処しきれないリスクが存在する。
シグネチャ・ベースの WAF は、この種の攻撃に対して特に脆弱であり、機械学習ベースのソリューションにおいても、残存する脆弱性が悪用される余地があることが、本調査により明らかとなった。
WAF をすり抜ける、新たな攻撃手法が紹介されています。ASP.NET の仕様を悪用し、複数のパラメータを連結して XSS 攻撃が成立するとのことです。WAF は個別パラメータしか見ていないため、結合後のコード全体による突破が可能になると、この記事は指摘しています。よろしければ、WAF で検索も、ご参照ください。

You must be logged in to post a comment.