Script alert 42
Upcoming SlideShare
Loading in...5
×
 

Script alert 42

on

  • 1,603 views

 

Statistics

Views

Total Views
1,603
Views on SlideShare
1,602
Embed Views
1

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 1

http://paper.li 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Script alert 42 Script alert 42 Presentation Transcript

  • "><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