1

http://anautonomouszone.com/blog/xss-cheat-sheetにある 2 番目のコードは、URL エンコーディングによって html 特殊文字フィルタリング (つまり <>) をバイパスすると主張しています。

Bypass filter when it strips <script> tags:
%253cscript%253ealert(document.cookie)%253c/script%253e

明らかにこれは URL エンコーディングであり、サーバーは元のコンテンツを認識できませんが、いつ<script>.

サーバーはこのように取得し、送り返します。HTTP コンテンツはエンコードされていないため、ユーザーはそのまま取得します。

私は何が欠けていますか?これはphp関数にも当てはまりますhtmlspecialcharsか?

編集 :

チャットでかなり誤解されたので、はっきりさせようと思います。

これは XSS チート シートから取得されます。その他の XSSes チュートリアル。つまり、 XSSに反するいくつかのメソッドをバイパスしようとするためのメソッドです。

私が理解しようとしているのは簡単です:

  • どのような方法で回避できますか (つまり、これが攻撃者にとって役立つのはどのようなシナリオでしょうか)?
  • そして、それはどのように起こりますか?デコードされ<script>て http-response に戻るのはいつですか?
  • 私のウェブサイトでそれから安全であるために私は何ができますか?

注意してください、これは多くのサイトにあるため、おそらく 100 万分の 1 の開発者の間違いを指しているわけではありませんが、ある意味で非常に可能性の高いものです。

どうもありがとう。

4

1 に答える 1

1

いくつかの方法:

  • タグを検索する単純な XSS フィルター/IDS などは、2 回デコードしないとだまされる可能性があります。
  • ソフトウェアの複雑さのために、アプリケーション サーバーが値を 2 回デコードすることがあります。
  • また、開発者がフレームワークを誤解し、サーバーによって既に行われているにもかかわらず、追加の URL デコードを追加することも起こります。

編集: これは、攻撃を説明する OWASP ページです。下部には、実際の脆弱性への 2 つのリンクがあります: https://www.owasp.org/index.php/Double_Encoding

于 2012-08-21T20:18:22.917 に答える