Nietypowe podatności w aplikacjach webowych



Podobne dokumenty
Wybrane podatności w aplikacjach webowych

Wybrane problemy bezpieczeństwa w urządzeniach sieciowych SEConference Michał Sajdak, Securitum sekurak.pl

Wybrane ataki na urządzenia sieciowe Secure Michał Sajdak, Securitum sekurak.pl

INFORMATOR TECHNICZNY WONDERWARE

E-faktura PKP Energetyka

SpedCust 5 instrukcja instalacji


OptiMore Importer Rejestru VAT. Instrukcja obsługi programu

UWAGA! PRZECZYTAJ NAJPIERW:

Strona główna góra

Opis instalacji systemu Intranet Komunikator

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Microsoft Management Console

Co zrobić, jeśli uważasz, że decyzja w sprawie zasiłku mieszkaniowego lub zasiłku na podatek lokalny jest niewłaściwa

Praca na wielu bazach danych część 2. (Wersja 8.1)

SZABLONY KOMUNIKATÓW SPIS TREŚCI

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Pokonać Ransomware. Grzegorz Ciołek Systems Engineer

Projekt z dnia 2 listopada 2015 r. z dnia r.

Logowanie do systemu Faktura elektroniczna

Szkolenie Szybki Start

Metody opracowywania dokumentów wielostronicowych. Technologia Informacyjna Lekcja 28

Wymagania sprzętowe. Amadeus Selling Platform v.7.2p120

SIECI KOMPUTEROWE I BAZY DANYCH

Linux LAMP, czyli Apache, Php i MySQL

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl

Platforma do obsługi zdalnej edukacji

W wyświetlonym okienku New Web Server Application wybierz opcję Web App Debugger Executable, a w polu Class Name wpisz: P1.

Konfiguracja historii plików

Aktualizacja CSP do wersji v7.2. Sierpień 2014

Stan prac w zakresie wdrożenia systemów operacyjnych: NCTS2, AIS/INTRASTAT, AES, AIS/ICS i AIS/IMPORT. Departament Ceł, Ministerstwo Finansów

Karta sieciowa WiFi Micro USB N300 (N300MA)

Stypendia USOS Stan na semestr zimowy 2013/14

INFORMATOR TECHNICZNY WONDERWARE

Spring MVC Andrzej Klusiewicz 1/18

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

JMMS Instrukcja użytkowania kont Autor oraz Recenzent

Wynagrodzenia informatyków w 2015 roku - zaproszenie do badania

INSTRUKCJA WebPTB 1.0

Bezpieczeństwo bankowości mobilnej

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Instrukcja użytkownika Akademickiego Systemu Archiwizacji Prac dla nauczyciela akademickiego

INSTALACJA OPROGRAMOWANIA...3 PRZYGOTOWANIE OPROGRAMOWANIA DO PRACY...3 DEFINICJA ZAPYTAŃ DO BAZ DANYCH...11 EKRAN GŁÓWNY...15

Parowanie urządzeń Bluetooth. Instrukcja obsługi

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Kopia zapasowa i odzyskiwanie Podręcznik użytkownika

BCS Manager Instrukcja Obsługi

Instrukcja Obsługi STRONA PODMIOTOWA BIP

CitiDirect EB - Mobile

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

EGZAMIN POTWIERDZAJ CY KWALIFIKACJE W ZAWODZIE Rok 2014 CZ PRAKTYCZNA

Instrukcja logowania do aplikacji ING Agent

mprofi.pl nowa generacja usług mobilnych TWOJA APLIKACJA MOBILNA: Komunikator na smartfony

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Architektura komunikacji

Formularze i ramki w HTML

Zdalne odnawianie certyfikatów do SWI

Wtedy wystarczy wybrać właściwego Taga z listy.

ZAKRES ZADAŃ WYKONAWCY

Ewidencja abonentów. Kalkulacja opłat

Sekcja I: Instytucja zamawiająca/podmiot zamawiający

SIECIOWY SYSTEM MONITORINGU DLA INSTALACJI PRZEMYSŁOWYCH I OCHRONY ŚRODOWISKA. zaprojektowany przez: HYDRO ECO SYSTEM

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Projektowanie bazy danych

Ładowanie i reorganizacja

UCHWAŁ A SENATU RZECZYPOSPOLITEJ POLSKIEJ. z dnia 18 października 2012 r. w sprawie ustawy o zmianie ustawy o podatku dochodowym od osób fizycznych

Automatyzacja procesu publikowania w bibliotece cyfrowej

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

Dokumentacja motoryzacyjnego sklepu internetowego

Formularz rzeczowo-cenowy PAKIET 2

UCHWAŁA NR VI/43/15 RADY MIASTA HAJNÓWKA. z dnia 29 kwietnia 2015 r.

Skrócony podręcznik obsługi dla programu Wizualna poczta głosowa w wersji 8.5 lub nowszej

Generowanie kodów NC w środowisku Autodesk Inventor 2014

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

PILNE Informacje dotyczące bezpieczeństwa Aparat ultrasonograficzny AFFINITI 70 firmy Philips

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

Oprac. wrzesień 2015

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

elektroniczna Platforma Usług Administracji Publicznej

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Produkt finalny projektu Przedsiębiorcze szkoły jest dostępny na portalu projektu

INSTRUKCJE DLA UśYTKOWNIKÓW STREFY KLIENTA NA PORTALU INTERNETOWYM

Specyfikacja techniczna banerów Flash

Warszawa, dnia 11. września 2006 r. Szanowna Pani LUIZA GZULA-FELISZEK Agencja Obsługi Nieruchomości ZAMEK Błonie, ul. Łąki 119,

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

API transakcyjne BitMarket.pl

03-04 Październik 2012, Kraków INFORMATOR WYSTAWCY

Praca za granicą. Emerytura polska czy zagraniczna?

Zasady rejestracji i instrukcja zarządzania kontem użytkownika portalu

Użytkowanie elektronicznego dziennika UONET PLUS.

BEZPIECZEŃSTWO W INTERNECIE

jest częściowe pokrycie wydatków związanych z wychowaniem dziecka, w tym z opieką nad nim i zaspokojeniem jego potrzeb życiowych.

Transkrypt:

Nietypowe podatności w aplikacjach webowych Michał Sajdak, CISSP, CEH, CTT+ 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/ Copyright 2014 Securitum 2

Agenda Kilka błędów w Nuxeo Biblioteka JBoss Seam zdalne wykonanie kodu w OS Cisco Security Appliance: OS Exec + SQLi Omijanie filtrów upload XXE (XML external Entities) Info tylko w celach edukacyjnych! 3 Copyright 2014 Securitum

Nuxeo Content Management Platform for the Software-Defined Enterprise Copyright 2015 Securitum 4

Nuxeo The RPM (Release and Preservation Management) Department at EA uses the Nuxeo Platform to manage video game builds at all stages of the development lifecycle Using the Nuxeo Platform as a core server, Jeppesen, a Boeing company, syncs flight bag information to ipads for pilots across the world. Copyright 2015 Securitum 5

Nuxeo The Nuxeo Platform, offering strong support for SSO, along with a flexible content management platform, is the perfect addition to the US Navy s application portfolio. Orange manages communication with its mobile telecommunications and broadband internet provider clients through a secure extranet portal built on the Nuxeo Platform. Copyright 2015 Securitum 6

Nuxeo Historia Bugi załatane tego roku Zgłoszone przez: Michała Bentkowskiego i Sebastiana Gilon securitum.pl https://doc.nuxeo.com/display/admindoc/nuxeo+security+ Update+-+2015-02-27+-+Critical Bez szczegółów DEMO Copyright 2015 Securitum 7

Nuxeo historia Securitum: Hey, you got some nasty bugs in your platform. Here are the details. Nuxeo: Cool, these are definitely nice bugs! We ll prepare a patch soon! BTW: do you want something for reporting the bug? Securitum: no :-) Nuxeo: Do you drink from time to time? Securitum: Sometimes :P Nuxeo: Cool, we are sending 2 crates of vine to Poland 8

Nice bug bounty 9

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 (!) Copyright 2014 Securitum 10

XXE (XML external Entities) Encje znany z HTML-a: < lub < < " &apos; & µ Ogólnie: &nazwa_encji; &#numer_encji; Copyright 2014 Securitum 11

Renderowanie encji w HTML W XML-u: działa to podobnie Copyright 2014 Securitum 12

XXE (XML external Entities) możemy definiować własne encje <!ENTITY name "value"> Copyright 2014 Securitum 13

Copyright 2014 Securitum 14

15

XXE (XML external Entities) Zobaczmy http://sekurak.pl/tag/xxe/ dwa artykuły jeden podstawowy, drugi bardziej zaawansowany. Copyright 2014 Securitum 16

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 ) Copyright 2014 Securitum 17

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) Copyright 2014 Securitum 18

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.. Copyright 2014 Securitum 19

Zobaczmy OS Command Exec JBoss Seam Copyright 2014 Securitum 20

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 Copyright 2015 Securitum 21

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 Copyright 2015 Securitum 22

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 23

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 24

SQL injection przykład na ekranie logowania SA 500 Cel chcemy pobrać wszystkie loginy i hasła (w plaintext) Copyright 2015 Securitum 25

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 26

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 27

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 28

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 29

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 30

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 Copyright 2014 Securitum 31

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? Copyright 2014 Securitum 32

Copyright 2014 Securitum 33

Dziękuję za uwagę Pytania? Kontakt: michal.sajdak@securitum.pl Szkolenia Testy bezpieczeństwa aplikacji Copyright 2014 Securitum 34

35