Ataki SQL Injection
Dla każdego programisty największą porażką jest moment, kiedy wychodzi na jaw, że jego skrypt okazał się podatny na atak. Atak który spowodował różnego rodzaju. Od podmiany strony głównej, przez przekierowaniu na porno i kończąc na kradzieży danych wrażliwych (klientów, użytkowników, etc.). Wszystko dlatego, że przez podmianę jednej wartości zmiennej przesyłanej metodą GET, skrypt się wyłożył i pojawił się komunikat z błędem.
W najnowszym numerze czasopisma hackin9 (1/2009) jest artykuł poświęcony tym zagadnieniom. Począwszy od dokładnemu opisaniu podstawowych błędów, po bardziej zaawansowane próby wstrzyknięcia złośliwego kodu SQL.
Te najprostsze przykłady można znaleźć nawet na wikipedii, gdzie są opisane przykłady źle napisanych aplikacji z wykorzystaniem bazy danych SQL. Teraz na szczęście takich błędów się nie popełnia, chyba że przez baaardzo początkujących.
Pisząc zaawansowane, nie mam na myśli podmiany cyferek w zmiennej lecz coś w tym rodzaju:
http://strona.pl/?id=xx&zmienna=cos;DACLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(.....)...
Gdyby ktoś chciał się pobawić wstrzykiwaniem magicznych zaklęć SQL to polecam stronę znanej aktorki – Joanny Brodzik ;). Przykład jednego zapytania, które się wykonuje:
http://www.joannabrodzik.pl/index.php?go=aktu&id=11 or 12&page=1
Nie ma tutaj żadnej walidacji parametru id.
Gdyby autor tej strony zapoznał się z tym artykułem, dowiedziałby się, że najprostszym sposobem jest rzutowanie zmiennej – w tym przypadku $_GET['id']
na int
. Dzięki czemu takie zapytanie nie przejdzie.
Fajną sprawą w tym artykule jest to, że zostały pokazane również próby ataków na aplikacje pisane w ASP oraz różnice w językach podczas zabezpieczenia aplikacji.
Lekturę tego artykułu polecam każdemu – nawet tym PRO.
Komentarze 5
A czy autor jest PRO? Czy znowu używa mysql_* zamiast PDO i pokazuje te same triki znane od lat, omówione już wielokrotnie w artykułach prasowych i umieszczonych w internecie? ;)
Autorem tekstu jest jakiś makaroniarz - Antonio Fanelli ;). Tak, opisuje przykłady SQL jak dla początkujących - to samo jest na wikipedii ;)
Teraz się pojawił nowy wirus, tzn jakiś czas temu, który z kolei do ftp dorzuca kod, trudno to wykryć bo mało kto zagląda do kodów bezpośrednio na serwerze, tylko potem Google odznacza takie strony zaraz jako niebezpieczne. Co do Mysql to podstawa to systematyczny backup.
a może ktoś poleci jak ławo się zabezpieczyć przed tego typu atakiem;?
ostatnio na mojej stronie pojawia się okienko z komunikatem błędu, nie rozumiem tego zbytnio, czy ktoś zmienił mój kod? jak mogę to naprawić, jestem przekonany że sprawa dotyczy injection.
u mnie na stronie jest bezpiecznie www.forum-wszystko.pl.tl