アカウント名:
パスワード:
ASP.NETで入力されたデータを HttpRequest.Params を使って取得すると、GET, POSTの他にCookieの値も混ざっている、ということですね。この仕様はPHPの $_REQUEST と同じ。こんなWebサイトがIDSなどに頼っていた場合はいつもの被害が発生。SQLインジェクションでやり放題、もしくはXSSでセッションや秘密情報が盗まれると。
しかし、HttpRequest.Paramsで検索 [google.com]しても887件しか引っかからないところをみると、ほとんどの人はRequest.QueryString, Request.Formを使っているようです。 # そもそもHttpRequest.Paramsを知らない?
それよりも驚いたのは以下の部分。
10月2日に公開した本レポート中において、脆弱性が再現できる環境に誤った記述がありましたので訂正をいたします。 具体的には、特徴2の記載内容において、ASP.Netでは%に続く文字が16進数表記できない文字列が続いた場合、%を除去せずにそのままWebアプリケーションに引き渡します。つまり、ASP.Netでは特徴2には該当しません。 本訂正にあたり、上原和彦様にご協力をいただきました。ここに、心より感謝の意を表します。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
ASPがひどすぎる (スコア:4, 参考になる)
ASP.NETで入力されたデータを HttpRequest.Params を使って取得すると、GET, POSTの他にCookieの値も混ざっている、ということですね。この仕様はPHPの $_REQUEST と同じ。こんなWebサイトがIDSなどに頼っていた場合はいつもの被害が発生。SQLインジェクションでやり放題、もしくはXSSでセッションや秘密情報が盗まれると。
しかし、HttpRequest.Paramsで検索 [google.com]しても887件しか引っかからないところをみると、ほとんどの人はRequest.QueryString, Request.Formを使っているようです。
# そもそもHttpRequest.Paramsを知らない?
それよりも驚いたのは以下の部分。
訂正されてます (スコア:4, 参考になる)
なので、さすがに%を除くという通常の発想の範囲外な実装では無いようです。