Wybrane podatności w aplikacjach webowych Michał Sajdak, CISSP, CEH, T2S sekurak.pl/secure14.pdf www.sekurak.pl
O Prelegencie Realizuję testy penetracyjne / szkolenia http://securitum.pl/ Założyciel http://sekurak.pl/ CISSP, CEH, T2S 2
Agenda OS Command EXEC 1. Cisco SRP 2. Jak omijać filtry w uploadzie? 3. Biblioteka JBoss Seam 4. XPATH a SQL injection (jak wystarczy czasu) 5. XXE (XML external Entities) Info tylko w celach edukacyjnych! 3
OS Command EXEC Cisco SRP CVE-2012-0363, CVSS Score: 9.0 4
5
Upload / Apache omijanie filtrów Formularze zazwyczaj blokują upload plików wykonywalnych (np. php) Edytory wizualne Uploady CV Etc. Ale często stosują blacklisting Czyli uniemożliwiają upload plików z rozszerzeniem.php /.aspx / itd 6
Upload / Apache omijanie filtrów Zagadka W jaki sposób Apache HTTP server zinterpretuje plik: siekiera.jpg.php.wnk2j3.secure14.sekurak Jako txt? Jako PHP? Jako jpg? 7
8
OS Command Exec JBoss Seam Dość stara podatność Ale będąca przykładem ogólniejszego trendu: Używamy biblioteki X, która w momencie uruchomienia systemu jest bezpieczna Mija Y czasu i w bibliotece znane są krytyczne podatności Info: Meder Kydyraliev, Seam Vulnerability, http://blog.o0o.nu/ 9
OS Command Exec JBoss Seam Dość stara podatność Można w sposób nieuwierzytelniony wywołać instancje klas i dalej wołać metody W szczególności Runtime.exec( calc.exe ) 10
OS Command Exec JBoss Seam Na docelowych systemach możemy mieć różne wersje javy Więc należy w danym przypadku zlokalizować indeksy zadeklarowanych metod: public static java.lang.runtime java.lang.runtime.getruntime() Process java.lang.runtime.exec(java.lang.string) 11
OS Command Exec JBoss Seam Jeśli znajdziemy starego JBossa prawie gwarancja że mamy nieuwierzytelniony OS Command Exec Na systemach Windows często Administrator Podatne też inne javowe app servery De facto jest to błąd w bibliotece nie w app serverze.. 12
Zobaczmy OS Command Exec JBoss Seam 13
XPATH a SQLi Do czego służy XPATH? Pobiera fragmenty z XML 14
Jak działa XPATH? 15
XPATH a SQLi Jak to można wykorzystać w SQL? Np. tak: A wygenerować błąd tak: 16
XPATH a SQLi Jak to można wykorzystać w SQL? Przydatność do SQL injection? Sytuacja: nie ma możliwości wykonania wstrzyknięcia non-blind Wstrzyknięcie blind jest utrudnione 17
XPATH a SQLi Zobaczmy http://sekurak.pl/xpath-a-sql-injection/ PS + ćwiczenie praktyczne on-line http://sekurak.pl/czym-jest-xpath-injection/ + ćwiczenie praktyczne on-line 18
XXE (XML external Entities) Mało znany problem ale dość istotny W 2013 roku Reginaldo Silva otrzymał w ramach bugbounty z Facebooka $33 500 RCE z wykorzystaniem XXE FB wypuścił patcha w 3.5h od zgłoszenia (!) 19
XXE (XML external Entities) Encje znany z HTML-a: < lub < < " ' & µ Ogólnie: &nazwa_encji; &#numer_encji; 20
Renderowanie encji w HTML W XML-u: działa to podobnie 21
XXE (XML external Entities) możemy definiować własne encje <!ENTITY name "value"> 22
23
24
XXE (XML external Entities) Zobaczmy http://sekurak.pl/tag/xxe/ dwa artykuły jeden podstawowy, drugi bardziej zaawansowany. 25
Dziękuję za uwagę Pytania? Kontakt: michal.sajdak@securitum.pl http://sekurak.pl/secure14.pdf http://securitum.pl/ 26