SQL Injection pozwala na…

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