← Natrag

Web Sigurnost - 2. dio

Umetanje naredbi OS-a

system("grep -r" . $_GET["arg"]);

napadač može postaviti arg na ; rm -rf /var/www/html i zbog vulnerabilnosti u sustavu, pokreće se grep -r ; rm -rf /var/www/html

Vježbanje zadataka na hackultet platformi

Resursi za vježbanje ubacivanja argumenata

Directory traversal

Neke aplikacije dohvaćaju datoteke ovisno o korisničkom unosu

file_get_contents("/var/www/html/files/".$_GET["filename"]);

Directory traversal - primjer

CISA - directory traversal – directory traversal ranjivosti u softveru za koje se zna da su ih iskoristili/pokušali iskoristiti stvarni napadači protiv stvarnih meta

File upload

File upload - primjeri

Server-side template injection

Predlošci (engl. templates) – tehnologija za dinamičko generiranje HTML-a koja se koristi s nekim web frameworcima (npr. Jinja2 uz Flask)

Problem je ako kontroliraju sadržaj predloška

Predlošci – češći problem u stvarnom svijetu

foo onmouseover=alert(1)

generirat će se HTML:

<p id=foo onmouseover=alert(1)>abc</p>

imamo XSS sa onmouseover=alert(1)

XXE injekcija

Zadatak – shopping košarica - http://chal.platforma.hacknite.hr:12002/

Nesigurna deserijalizacija

Serijalizacija je proces pretvaranja složenijih tipova podataka u jednostavniji oblik. Svrha je pohraniti podatke u obliku u kojem se oni mogu zapisati u datoteku, slati mrežom ili pohraniti u bazu podataka. - Deserijalizacija je obrnuti proces

Nesigurna deserijalizacija - primjeri

“Autentifikacija bez lozinke” - http://chal.platforma.hacknite.hr:10014/index.php

Sastavljanje PHP gadget chaina

Magične metode

Cilj je sastaviti objekt čijom se deserijalizacijom poziva niz metoda (bilo magičnih bilo običnih) koji nam daje mogućnost izvršavanja koda (ili čitanje proizvoljnih datoteka ili štogod nam je cilj)

Gotovi gadget chainovi

CORS miskonfiguracije

Same Origin Policy – javascript skripta na free-bitcoin.com.ru.xyz.biz ne može čitati moje mailove s mail.google.com čak ako ih imam otvorene u isto vrijeme

api.fer.hr je mogao odgovoriti i s Access-Control-Allow-Origin: * što dopušta svaki origin, ali onda skripta ne može slati i autentifikacijske kolačiće

Miskonfiguracije apache

Zadatak – web “virtual host” - http://chal.platforma.hacknite.hr:12008/

Host header – password reset abuse

Zanimljivi web zadatci