xss sqli sigurnost

18
Predrag Cujanović Kontakt • mail: [email protected] • blog: http://www.cujanovic.com • tw: http://www.twitter.com/cujanovic • fb: http://www.facebook.com/predrag.cujanovic

Post on 18-Oct-2014

566 views

Category:

Documents


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: XSS SQLi sigurnost

Predrag Cujanović

Kontakt• mail: [email protected] • blog: http://www.cujanovic.com• tw: http://www.twitter.com/cujanovic • fb: http://www.facebook.com/predrag.cujanovic

Page 2: XSS SQLi sigurnost

Sadržaj:

•Cross side scripting (XSS) napad• SQL injection (SQLi) napad• Insecure cryptographic storage•Primeri

Page 3: XSS SQLi sigurnost

Cross side scripting (XSS) napad

• Šta je XSS napad?• Tipovi XSS napada•Opasnost XSS napada• Kako sprečiti XSS napad?

Page 4: XSS SQLi sigurnost

Šta je XSS napad?

Page 5: XSS SQLi sigurnost

Tipovi XSS napada

• Non-Persistent (Reflected)• Persistent (Stored)• DOM Based

Page 6: XSS SQLi sigurnost

Opasnost XSS napada

XSS Shell

Page 7: XSS SQLi sigurnost
Page 8: XSS SQLi sigurnost

Opasnost XSS napada

Cookie stealing

Phishing

Page 9: XSS SQLi sigurnost

Kako sprečiti XSS napad?

• Filtriranjem podataka preko već predefinisanih php funkcija:

strip_tags, htmlspecialchars, htmlentities

• Izbegavati pisanje sopstvenih funkcija samo za ovu namenu

Page 10: XSS SQLi sigurnost

SQL injection (SQLi) napad

Šta je SQLi napad? Tipovi SQLi napada Opasnost SQLi napada Kako sprečiti SQLi napad?

Page 11: XSS SQLi sigurnost

Šta je SQLi napad?

Page 12: XSS SQLi sigurnost

Tipovi SQLi napada

Incorrectly filtered escape characters(SELECT * FROM users WHERE name = '' OR '1'='1' -- ';)

Incorrect type handling(SELECT * FROM userinfo WHERE id=1;DROP TABLE users;)

Blind SQL injection(SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND '1'='1';)

Time Based SQL injection (download_key=1' AND 6424=BENCHMARK(5000000,MD5(CHAR(102,100,78,99))) AND 'uzOQ'='uzOQ)

Page 13: XSS SQLi sigurnost

Opasnost SQLi napada

Pristup podacima u bazi (UNION SELECT 1,2,3,4--)

Izmena, brisanje podataka u bazi – DROP users;

Čitanje fajlova - load_file('/etc/passwd') ili load_file(0x2f6574632f706173737764) funkcija

Pravnjenje novih fajlova - INTO OUTFILE '/var/www/victim.com/shell.php'

Page 14: XSS SQLi sigurnost

Kako sprečiti SQLi napad?

mysql_real_escape_string funkcija

is_numeric funkcija

cast to int – (int)

Page 15: XSS SQLi sigurnost

Insecure cryptographic storage

Page 16: XSS SQLi sigurnost

Insecure cryptographic storage

0. koristiti neki hash algoritam

1. ne korisiti zastrarele hash algoritme (md5 je zvanično mrtav)

2. korisiti salt, najbolje ih ne čuvati u bazi (primer Wordpress)

3. korisiti dva različita hash algoritma (sha1($salt.(des($salt.$pass.$salt))))

Page 17: XSS SQLi sigurnost

Insecure cryptographic storage oclHashcat-plus

Page 18: XSS SQLi sigurnost

Hvala na pažnji :)

Pitanja?