1 / 17

OWASP Meeting Blind SQL Injections

Jacek Włodarczyk jacekwlo@gmail.com. OWASP Meeting Blind SQL Injections. 12.02.2009. Forma prezentacji. Forma dzisiejszej prezentacji będzie składać się z omówienia ataków typu Blind SQL Injection na przykładach praktycznych

auryon
Download Presentation

OWASP Meeting Blind SQL Injections

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jacek Włodarczyk jacekwlo@gmail.com OWASP MeetingBlind SQL Injections 12.02.2009

  2. Forma prezentacji Forma dzisiejszej prezentacji będzie składać się z omówienia ataków typu Blind SQL Injection na przykładach praktycznych Wykorzystane środowisko to BT3 wraz z tym co oferuje ta wersja standardowo Wykorzystane przykłady dotyczą środowiska MySQL oraz aplikacji PHP

  3. Cel dzisiejszej prezentacji Przegląd przydatnych informacji Poznanie nazwy/wersji bazy danych/DBMS Poznanie nazwy tabeli Poznanie liczby kolumn w tabeli Poznanie liczby wierszy w tabeli Poznanie nazw pól tabeli Poznanie zawartości pól tabeli Posłużenie się automatem (skrypt)‏ Krótka analiza IDS evasion

  4. Wstęp Ataki typu Blind SQL Injection, są to ataki, które dostarczaja informacji o atakowanym systemie DBMS na podstawie odpowiedzi 'True'/'False' Odpowiedzi 'True'/'False' są wynikiem odpowiednio spreparowanych żądań do serwera WWW Odpowiedzi 'True'/'False' mogą być przekazywane w różnych formach, w zależności od reakcji aplikacji na atak

  5. Ważne fakty Unie działają od wersji MySQL >= 4.0 Podzapytania (zapytania zagnieżdżone) od wersji MySQL >= 4.1 Baza information_schema od wersji MySQL >= 5.0

  6. 'true'='true' dla różnych konstrukcji zapytań admin'-- ' or 0=0 -- " or 0=0 -- or 0=0 -- ' or 0=0 # " or 0=0 # or 0=0 # ' or 'x'='x " or "x"="x ') or ('x'='x

  7. 'true'='true' dla różnych konstrukcji zapytań - C.D. ' or ''=' ' or a=a-- ') or ('a'='a ") or ("a"="a abc" or "a"="a abc" or 1=1 -- abc' or 1=1 -- abc' or 'a'='a abc') or ('a'='a abc")or("a"="a ... itd.

  8. ' OR 1=1 - zamienniki ' OR 2=2 ' OR 1 ' OR TRUE ' OR 'tekst' = concat('tek','st')‏ ' OR 'tekst' = 'tekst' ' OR 'tekst' IN ('tekst')‏ ' OR 'tekst' like 'teks%' ' OR 2 > 1

  9. OR 1=1 – zamienniki C.D. ' OR 2 BETWEEN 1 AND 3 ' OR 'tekst' > 't' Z kolei znak większości lub mniejszości można zastąpić predykatem BETWEEN:OR id>1 może być wyrażone przez:OR id between 2 and 1e100

  10. Nazwa bazy danych/wersja DBMS Funkcja database()‏ Nazwa bazy danych nie jest konieczna do wykonania skutecznego ataku Funkcja version()‏ /*! ... */ DEMO:

  11. Nazwa tabel(i)‏ Select from – wiele wariantów information_schema.tables DUAL DEMO:

  12. Ilość kolumn i wierszy Group by Order by Union select Limit asc/desc DEMO:

  13. Nazwy pól Group by Order by Information_schema.columns DEMO:

  14. Zawartość tabeli – wiele możliwości Select if And if Ascii Ord Mid Substring Podzapytania Length benchmark

  15. Zawartość tabeli - C.D. Concat Char load_file Like Bit operators Compress DEMO:

  16. Automatyzacja Blind SQL Injection (brute force search) vs Blind SQL Injection (binary search)‏ Różna ilość odpytań serwera Różnica w szybkości Wygoda w przypadku niestandardowych reakcji aplikacji (np. 302)‏ DEMO:

  17. Koniec Pytania?

More Related