web-dev-qa-db-ja.com

クッキーを盗むためのXSS…もうない?

先日、ウェブサイトにXSSの脆弱性が見つかりました。友人からPentestに言われました。これは彼が管理している学校のページだったので、ここで重要なのはログイン資格情報== COOKIESです。

このテストでは、CookieがHTTPのみであることがわかりました。そのため、alert(document.cookie)でテストしました=アラートは空白でした。

CookieがuserSessionで値が019845547であることは知っていましたが、XSSまたはJavaScriptインジェクションでは取得できませんでした。この情報は、Google Chromeのデベロッパーツールで知っていました。

セキュリティ上の理由から、JavaScriptからHTTPのみのCookieにアクセスできないことを読みました。

しかし、それは、XSSがCookieを盗むためのものではなくなったことを意味します

それとも、新しいセキュリティ機能が古すぎるのでしょうか?または、HTTPのみのCookieを盗む別のテクニックはありますか?

6
NathanWay

サーバー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

お役に立てれば。

3
racec0ndition

しかし、それは、XSSがCookieを盗むためのものではなくなったことを意味します。

つまり、このフラグが設定されている場合、Cookieを盗むためにXSSは使用されません。

より長い答えは、最近のブラウザはCookieのHttpOnlyフラグをサポートしているということです。このフラグは、サーバーがSet-Cookieヘッダーをブラウザーに送信してdocument.cookieがCookieのコンテンツを取得しないようにするときに設定できます。これは、XSSのより大きな問題を緩和する手法です。私の知る限り、最新のブラウザと現在のバージョンのFlash、Java、およびその他のプラグインでは、このフラグをバイパスする方法はありません。

ただし、XSSがあるため、Cookieにアクセスせずに資格情報にアクセスする方法は他にもあります。

3
user79537

正しく実装されている場合、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は攻撃者にとって事態を困難にしますが、経験豊富なハッカー/ペンテスターを阻止するものではありません。

2
Michal Koczwara