異常なXSSの脆弱性

読者の皆さん、こんにちは!
この記事では、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:

Source: https://habr.com/ru/post/J149081/


All Articles