サイトに対する別のタイプのXSS攻撃

こんにちは、Habr! 昨夜、妻は子供服のウェブサイトに行くことができなかったと不満を言いました。彼女はそこから完全に無関係なリソースに移されたからです。 私はそれを自分で確認します-実際、メインページの読み込み中(または、読み込みページからリンクをたどる時間があれば他のページ)、突然別のドメインにリダイレクトします。



9月は路上で寒くなってきたので、私は問題をあきらめず、何が起こっているかを整理して、子供にデミシーズンのスーツを選ぶことにしました!



頭に浮かぶ最初の明白なことは、ページ上で明示的なリダイレクトを探すことです。 次のようなものを見つけようとして、ページのソースコードを開きます。



<meta http-equiv="refresh" content="3;url=http://---/">
      
      





さらに、無駄に、それはあまりにも簡単です。 標準のリダイレクトがないため、JSツールを使用して実装されます。 ブラウザでJSを無効にすることで仮説をテストします-ページがロードされ、どこにもスローされません。 同時に、window.locationはページのどこでも使用されず、代替URLもありません。 ブラウザがダウンロードするリソースを見てみましょう。



疑わしいリンク








疑わしいURLがすぐに目を引き 、リクエストに応じてHTTPコード301が返されます: is.gd/J87Pzs



このURLを使用して、ページソース内の行をすばやく見つけます。



ページソースコード








この行は、私が見たすべてのページにあることに注意してください。



うーん、このリンクで何が起こるかを理解する必要があります: is.gd/J87Pzs



is.gdは典型的なリファレンス短縮サービスです。 このURLの背後には、 home-income-business.com / sfi / i / qweがあります。



GETリクエストは、次のコンテンツを返します。



 function process(){ window.location = "http://---/"; } window.onerror = process; process()
      
      





その時点で別のインターネットアクセスポイントに切り替えると、ケースは既に閉じられている可能性があり、問題は(突然)消えます:チェーンの最後のURLでのHTTP要求が空のコンテンツを返し始めます! なんだこれ? 再び別のアクセスポイントに切り替えます-悪意のあるコードが再び提供されます。 そして、これはもっと面白いです! IPアドレスに応じて、異なるコンテンツが提供されることがわかります。 これはどのようにできますか? たとえば、nginxには、この動作を構成するために使用できる特別なgeoモジュールがあります。 HTTP応答のコンテンツは、上記を間接的に確認します。



nginx






別のサイトにリダイレクト攻撃を行うのはなぜですか? 不公平な競争を行ったり、サイトにトラフィックを集めたりするなど、商業的な理由など、多くの理由が考えられます。



同時に、被害者のサイトの所有者は、自分のIPアドレスからサイトが開いて正常に動作するため、 攻撃を受けているものを知ることさえできないかもしれませんが、他のユーザーからは...



混乱しました。 そして、連絡先で指定された電子メールに書き込みました。 そして翌日、つまり今日、サイト管理者から連絡があり、問題の詳細を説明しました。 そして、この投稿を書いて写真を準備している間、サイトのページから悪意のあるスクリプトを削除することで問題はすでに修正されていました!



おそらく、悪意のあるコードがサイトにどのように表示されるかを学習することに興味があるでしょう。



結論:






PS彼は、攻撃を受けているサイトを示すことは不適切であると考えました。



All Articles