読者の皆さん、こんにちは!
この記事では、XSSとは何か、またXSSがどのように使用されるかについては説明しません。 私たちはすべて大きなおじです(おばさん)。 この記事は、任意のコードの実装が常にどこにでもあるという事実についてです。 ロシアとCISの最も人気のあるソーシャルネットワーク、およびロシア連邦大統領のサイトは、これらのタイプの攻撃に対して脆弱であることを示します。
脆弱性は閉じられており、開始できます。
まだブラウザからフラッシュドライブを実行していますか? それから私たちはあなたに行きます。
VKontakte
ある夜、別のコーヒーを飲んだ後、XSSの脆弱性の検索を開始することにしました。 Googleに似たものをドライブしました:filetype:php inurl: "*。Php?Search = *"そして応答で〜1,500,000,000ページを受け取りました。 3分の1が脆弱でした...悲しいことに。
それについてではなく、私のリクエストを「Great and Mighty」に変更すると、サイトのルートにGETリクエストを送信するswfが見つかりました。
考え直すことなく、リクエストを変更し、次の形式のデータを送信しました:* .swf?[変数] = http://127.0.0.1/。 クロスドメインで404エラーが表示されると私は誓いましたが、GET要求はローカルホストに送信されました。 すぐにクロスドメインを偽造して、私はそのかわいいアラートを見ました()。 そしてもう少し。
crossdomain.xml最も一般的なものを書きました:
<cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/> <allow-access-from domain="*"/> </cross-domain-policy>
クロスドメインの問題を解決した後、次の図を見ました。

次に、本文、スクリプトタグを実装しようとしましたが、これは気分の低下以外の何も引き起こさなかったため、リンクがクリック可能であることがわかりました!
その結果、a、imgタグをページに埋め込むことができます。
HREF、あなたの時間!
リンクはクリック可能であるため、href =“ javascript:”またはhref =“ data:、”を使用する必要があります。
ただし、データは役に立たないため、vk.comを制御する必要があります(ただし、window.openerを使用してアクセスすることもできました)。
攻撃を実証するために、偽のVKontakteを作成することにしました。
コンソールに手を伸ばすと、wgetがindex.htmlをアップロードしました。私の中で何かが動きました。
結局、リンクは次のようになります。
<a href="javascript: (html )">click-click</a>
そして今、最悪の事態:jsでは、2種類の引用符が使用されます(誰もがどの引用符を使用するかを知っています)。
しかし、テキストデータを変数に入れる方法は?
これがマルウェアだとします:
var a="<html><h1>Site.com</h1>\n"+ "<!— -- -->\n"+ "<div id='lga' style='height:231px;margin-top:-22px'>\n"+ "<!— - -->\n"+ "</html>";
jsの観点からは、すべては問題ありませんが、htmlは誓います。
<a href=" javascript: var a="<html><h1>Site.com</h1> <!— -- --> <div id="lga" style='height:231px;margin-top:-22px'> <!— - --> </html>"; ">FAIL</a>
ただし、ここではASCIIを覚えておく必要があります。
文字をASCIIでエンコードすると、コードの外観がまったく異なります。ブラウザーは構文を誓わず、コードは機能します(ミニハックなど)。

crossdomain.xmlと偽物をサイトのルートに配置するだけです。
ユーザーをリンクにリダイレクトします。

そして、ユーザー名とパスワードを取得します。

この脆弱性は修正されたようです。.htaccessに2、3行追加することで、脆弱性はまだ残っており、Flashは修正されていませんが、Flashを逆コンパイルしてflaファイルを送信しました。
パベルは私たちを見下している、何かが間違っている...そして、HTMLページを作成し、そこにswfファイルを埋め込みます。

Kremlinin.ru
Vkontakteと同様、クレムリンは脆弱でした。 しかし、ここでのイベントの展開は少し異なります。
XMLでたらめ
したがって、私たちの場所には、すでに2つの脆弱なフラッシュドライブがありました。
作業のスキームは、VKontakteスキームに似ていました。
SWF-> GET /crossdomain.xml-> GET / file
入り口で、彼らはxmlファイルへのパスを要求し、それを処理し、写真内のxmlでデータをマークしました。

偽のxmlは次のようになりました。

クリックする1秒前...

そして、ここに彼は夢の警戒心があります:

2番目のアラート、フラッシュドライブ番号2:

XML:

クリックの結果を推測できます。
悪性腫瘍
脆弱性は常にどこにでもありましたが、たまに最も予期しない場所に存在することもありました。
この記事がおもしろくて役立つことを願っています。
追伸:曲率のため、今だけビデオを追加しています。
VKontakte: