WAFのバイパスに関する誰かのスライドを読んでいます。
&==;
:Python Djangoパラメーター間;FooBar==POST verb
:PHPを使用したApache;<%I%M%U011e>==<IMG>
:IIS ASPクラシック;;/path1 ;foo/path2;bar/;==/path1/path2/
:Apache Tomcat;
あるページで、彼は文字列&==;-
について言及しています。 「パラメータ間」の意味を知っている人はいますか?
次のように読んでください:&
== ;
この箇条書きは、Django Framework for Pythonがアンパサンド(&
)とセミコロン(;
)の両方を解析することを意味します特定のURLのクエリパラメータの有効な区切り文字と同じように。
したがって、次のURLは同じように扱われます。
https://example.com/foo/bar?x=y&name=peter&debug=1
https://example.com/foo/bar?x=y;name=peter;debug=1
他のフレームワークはセミコロンを区切り文字として認識せず、2番目のクエリ文字列を値y;name=peter;debug=1
の単一パラメータx
として読み取る可能性があるため、これは注目に値します。この動作により、WAFが混乱する可能性があります。これが、スライドにリストされている理由である可能性があります。