web-dev-qa-db-ja.com

Python DjangoおよびWAFのバイパスに関して、 `&==;`はどういう意味ですか?

WAFのバイパスに関する誰かのスライドを読んでいます。

  • &==;:Python Djangoパラメーター間;
  • FooBar==POST verb:PHPを使用したApache;
  • <%I%M%U011e>==<IMG>:IIS ASPクラシック;
  • ;/path1 ;foo/path2;bar/;==/path1/path2/:Apache Tomcat;

あるページで、彼は文字列&==;-について言及しています。 「パラメータ間」の意味を知っている人はいますか?

2
daisy

次のように読んでください:& == ;

この箇条書きは、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が混乱する可能性があります。これが、スライドにリストされている理由である可能性があります。

8
Arminius