Wpis z mikrobloga

SQL Injection pozwala na wykonanie zapytania do bazy danych - ale jest ono inne niż to, które napisał programista. #od0dopentestera
Zamiast wyświetlać faktury tylko dla swojego konta - możemy zobaczyć dane innych klientów.
Popatrzmy na przykład:

SELECT * FROM faktury WHERE id = 123
Przy pomocy takiego zapytania pobierasz fakturę o identyfikatorze 123.
123 to dane podane przez użytkownika - na przykład poprzez formularz.
Jeżeli programista wkleja te dane bezpośrednio do wcześniej przygotowanego zapytania - mamy problem.
Wystarczy, że w formularzu jako ID faktury podasz: 0 OR id > 0
Wtedy całość wygląda tak:

SELECT * FROM faktury WHERE id = 0 OR id > 0
Czyli pobierasz fakturę o identyfikatorze równym 0 ORAZ faktury, których identyfikator jest większy od zera.
Zazwyczaj kolumna ID zawiera liczby w kolejności rosnącej.
Czyli pierwszy rekord ma ID=1, drugi ID=2 i tak dalej.
Każdy z tych identyfikatorów jest większy od zera - czyli wyświetlimy wszystkie dane.

Temat Cię zainteresował? Więcej o SQL Injection opowiadam tutaj.

* Tłumaczę tam podstawową składnię SQLite
* Wyjaśniam operatory logiczne
* Pokazuję jak łączyć dane z różnych tabel przy pomocy UNION
* Jak można odgadnąć liczbę kolumn w tabeli przy pomocy ORDER BY
* Co to jest specjalna tabela sqlite_schema
* Na czym polega Boolean-based SQL Injection
* Pokazuję przykład Blind SQL Injection

Subskrybuj kanał na YouTube
Chcesz otrzymywać takie materiały na swój email? Dołącz do newslettera.
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Korzystasz z Discorda? Zapraszam do rozmów na naszym kanale.

Jeżeli chcesz być wołany - zaplusuj pierwszy komentarz.

#gruparatowaniapoziomu #ciekawostki #informatyka #nauka #swiat #technologia #zainteresowania #bezpieczenstwo #komputery #programowanie #programista15k
KacperSzurek - SQL Injection pozwala na wykonanie zapytania do bazy danych - ale jest...
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach