advertisement

Script alert 42

40 %
60 %
advertisement
Information about Script alert 42
Technology

Published on December 1, 2011

Author: athoshun

Source: slideshare.net

advertisement

"><script>alert(42);</script> Magyar Attila @athoshun ELTE, 2011. 12. 01.

"><script>alert(42);</script> Információbiztonság általában Webes biztonság  Üzemeltetés  Fejlesztés További játszanivaló

Disclaimer Nem script-kiddie képző!!!

Információbiztonság általában Confidentality Integrity Availability Authenticity Non-repudiation Tudatos kockázatvállalás Leggyengébb láncszem

WWW

P0WN3D!

A kommunikáció támadása: MITM

HTTPS HTTP over SSL/TLS

A kiszolgáló támadása

Üzemeltetés Buffer overflow, 0-day exploit  DEP, ASLR  CVE (http://cve.mitre.org/) DoS, dDoS  Router, tűzfal, IDS WAF

Demó: debug mód

Debug mód Az éles rendszer ne a kimenetben teregesse ki a fejlesztőknek szóló hibaüzeneteket!

Demó: input validáció

Input validáció Az adat a felhasználótól érkezik

Input validáció Az adat a felhasználótól AZ ÖRDÖGTŐL érkezik

Demó: file inclusion

File inclusion GET /?page=../logs/access.log HTTP/1.1 $page = pages/ . $_GET[page]; if (!is_file($page)) $page = pages/default.php; include $page; // include pages/../logs/access.log

Demó: file inclusion vs. user agent

File inclusion GET /?page=../logs/access.log HTTP/1.1 $page = pages/ . $_GET[page]; if (!is_file($page)) $page = pages/default.php; include $page; // include pages/../logs/access.log

File inclusion Front Controller, routing, keretrendszerek, stb. A kereket már feltalálták!

Demó: file feltöltés

File feltöltés Nagyon veszélyes! Validáció tartalom alapján, a HTTP kérés hamisítható!  EXIF fejlécben meglepetés? Kovertáljunk! (Ésszel!)  Bütykölt kép file 100000x100000-es mérettel a fejlécben?  Bütykölt kép file exploittal?

Demó: SQLi

SQLimysql_query( "SELECT * FROM users WHERE" . " name=$name AND password=$password;");// $name = "admin"// $password = "a OR 1=1"//// SELECT * FROM users WHERE// name=admin AND password=a OR 1=1;

SQLi Prepared statement! (SQL quote-olás/escape-elés)$stmt = $pdo->prepare( "SELECT * FROM users" . " WHERE name=:name AND password=:password;");$stmt->bindParam(:name, $name);$stmt->bindParam(:password, $password);

SQLi :-D

Demó: SQLi, UNION

SQLi, UNION http://vulnshop.localhost:8085/? page=product.php&id=42 /?page=product.php&id= UNION SELECT 111,CONCAT(name,:,password),333,444 FROM users WHERE name=admin;--

Jelszavak tárolása Ellenőrzéshez elég a jelszó egy hash-e (kriptográfiai hash, pl. SHA-1) Születésnap-paradoxon Rainbow table Saltolás!  $hash = sha1($password . $salt);  $hash = sha1($password . $name . $salt)

A felhasználó támadása

Demó: CSRF

CSRF Alice-nek van élő munkamenet cookie-ja Bob webshopjától

CSRF Alice-nek van élő munkamenet cookie-ja Bob webshopjától Alice pl. egy facebook üzenetben lévő linket követve megnyitja Mallory weboldalát

CSRF Alice-nek van élő munkamenet cookie-ja Bob webshopjától Alice pl. egy facebook üzenetben lévő linket követve megnyitja Mallory weboldalát Mallory JavaScriptjei a cookie-t same origin policy miatt nem látják :-)

CSRF Alice-nek van élő munkamenet cookie-ja Bob webshopjától Alice pl. egy facebook üzenetben lévő linket követve megnyitja Mallory weboldalát Mallory JavaScriptjei a cookie-t same origin policy miatt nem látják, AJAX sem megy :-)  De űrlapot POST-olni tudnak Bob webshopjának! :-(  A böngészőnek a cél domainhez tartozó cookie-kat is küldenie kell  Bob webshopja érvényes munkamenet cookie-val érvényes POST kérést kap Alice böngészőjétől

CSRF token Követeljünk meg egy azonosítót minden HTTP kérésben a session cookie-n kívül is, a kérés törzsében!  Pl. minden formban egy „kellőképpen” véletlenszerűen generált token, amit a szerveroldal a munkamenetben is tárol  Egy HTTP kérés feldolgozása a token ellenőrzésével kezdődik Mallory JavaScriptjei nem tudják a CSRF tokent megszerezni, a same origin policy miatt :-)

Demó: XSS

XSS A beinjektált HTML/JS kóddal a támadó (szinte) bármit megtehet, amit az oldalt betöltő felhasználó Böngészők XSS filterei nem sokat érnek A view rétegben a view rétegnek megfelelő quote-olás kell!  htmlspecialchars(), htmlentities()  urlencode()  json_encode()  ...

XSS: BeEF http://beefproject.com Ha már benn van a vállalati intranetben egy XSS, idő kérdése, míg egy kliens ugróponttá válik

Eszköztár Ami támadásra jó, az jó tesztelésre is:  netcat  tcpdump, Wireshark  nmap  JohnTheRipper  Nessus, OpenVAS  Metasploit  BeEF  BackTrack Linux

Olvasnivaló OWASP: https://www.owasp.org  OWASP Top10 BuheraBlog: http://buhera.blog.hu  BalaBit OpenAcademy 2011. májusi előadása: http://youtu.be/CoCItL3cMPU Hacktivity: https://hacktivity.com Wargame: http://www.hackthissite.org/ GIYF: Google Is Your Friend :-)

Ami kimaradt Spam (CAPTCHA) Clickjacking Apache/mod_rewrite és társai REST, egyéb API megvalósítások  Miért kezdődik a GMail minden AJAX válasza így? while(1); ###START### Social engineering Böngésző pluginek, böngésző bugok ...

Példakódok, diák Kód: https://github.com/attilammagyar Diák: http://www.slideshare.net/athoshun

 „We only have to be lucky once. You will have to be lucky always.” (IRA)

?

Köszönöm

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

JavaScript - liesong.de

alert (Variable);} Und dann jeweils bei Bedarf die Funktion mithilfe der Variable aufrufen: Read more

code ?> RAW Paste Data
Read more

dce30 # -- Rule engine initialization ----- # Enable ModSecurity, ...
Read more

Torsten Horn - JavaScript

... alert('Hallo!')"> hier klicken ...