先日、ウェブサイトにXSSの脆弱性が見つかりました。友人からPentestに言われました。これは彼が管理している学校のページだったので、ここで重要なのはログイン資格情報== COOKIESです。
このテストでは、CookieがHTTPのみであることがわかりました。そのため、alert(document.cookie)
でテストしました=アラートは空白でした。
CookieがuserSession
で値が019845547
であることは知っていましたが、XSSまたはJavaScriptインジェクションでは取得できませんでした。この情報は、Google Chromeのデベロッパーツールで知っていました。
セキュリティ上の理由から、JavaScriptからHTTPのみのCookieにアクセスできないことを読みました。
しかし、それは、XSSがCookieを盗むためのものではなくなったことを意味します
それとも、新しいセキュリティ機能が古すぎるのでしょうか?または、HTTPのみのCookieを盗む別のテクニックはありますか?
サーバーHASがこのフラグをCookieに設定します。そうでない場合、XSSスタイルの攻撃でのJavaScriptスニペットなどのクライアント側スクリプトは、 Cookieの内容にアクセスします。また、XST(Cross-Site Tracing)を確認すると、このフラグをバイパスして、一部のシナリオでCookieを盗むことができると思います。そのためのwikiページから:
CookieをHttpOnlyとしてタグ付けすると、JavaScriptによるアクセスが禁止され、第三者への送信から保護されます。ただし、このシナリオでも、TRACEメソッドを使用してこの保護をバイパスし、Cookieにアクセスできます。最近のブラウザーでは、JavaScriptを介して行われるTRACE要求が禁止されていますが、Javaを使用するなど、ブラウザーでTRACE要求を送信する他の方法が発見されています。
これについての詳細: https://www.owasp.org/index.php/Cross_Site_Tracing
お役に立てれば。
しかし、それは、XSSがCookieを盗むためのものではなくなったことを意味します。
つまり、このフラグが設定されている場合、Cookieを盗むためにXSSは使用されません。
より長い答えは、最近のブラウザはCookieのHttpOnly
フラグをサポートしているということです。このフラグは、サーバーがSet-Cookie
ヘッダーをブラウザーに送信してdocument.cookie
がCookieのコンテンツを取得しないようにするときに設定できます。これは、XSSのより大きな問題を緩和する手法です。私の知る限り、最新のブラウザと現在のバージョンのFlash、Java、およびその他のプラグインでは、このフラグをバイパスする方法はありません。
ただし、XSSがあるため、Cookieにアクセスせずに資格情報にアクセスする方法は他にもあります。
正しく実装されている場合、HttpOnlyは攻撃者がCookieを盗むのを防ぎます。
ただし、一部のブラウザーおよびWebサーバーの特定のバージョンでは、HttpOnly機能をバイパスできます。
見てください:
https://lwn.net/Articles/646891/
https://www.youtube.com/watch?v=jrKOdWPZtAg
https://bugzilla.redhat.com/show_bug.cgi?id=122292
したがって、要約すると、HttpOnlyは攻撃者にとって事態を困難にしますが、経験豊富なハッカー/ペンテスターを阻止するものではありません。