Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Wiem, że ostatnio często pytam ale od tego jest forum.
Dziś w logwatchu dostałem coś takiego:
z%22%20class=%22resultLink/?option=com_fabrik&controller=../../../../../../../../../../../../../../..//proc/self/environ%0000&l=en HTTP Response 200 /?option=com_fabrik&controller=../../../../../../../../../../../../../../../../../../../../../../../..//proc/self/environ%0000 HTTP Response 200 /%22%20class=%22resultLink/?option=com_fabrik&controller=../../../../../../../../../../../../../../..//proc/self/environ%0000 HTTP Response 301 /?option=com_fabrik&controller=../../../../../../../../../../../../../../../../../../../../../../../..//proc/self/environ%0000 HTTP Response 301 /?option=com_fabrik&controller=../../../../../../../../../../../../../../..//proc/self/environ%0000 HTTP Response 200
Nie wiem dlaczego response jest 200, dla testu wpisałem to samo na swojej stronie i otwiera się albo główna albo dział kontakt, nie wypluwa żadnych wrażliwych informacji, ścieżek do pliku ani nic.
Rozumiem, że response 200 ma prawo się pokazać jeśli coś się wyświetli, cos innego niż 404 czy 500, itd.
Używam mod_security jak musiałaby wyglądać formułka, żeby blokowało takie zapytania.
W tle działa rkhunter, nic nie znajduje. Czy w związku z tymi zapytaniami powinienem coś sprawdzić?
Pozdrawiam.
Ostatnio edytowany przez Odin (2014-05-19 09:43:09)
Offline
Witam,
Obejrzyj ten filmik: https://www.youtube.com/watch?v=OjUH5nsxm-w
Pozdrawiam,
Towarzysz Torrentow
Offline
Jak ktoś ma całkowicie spartolonego Apacha czy inny serwer, to może to tak działa (jak na filmiku powyżej).
Ja melduję posłusznie, że właśnie sprawdziłem na Lihgttpd i php-fpm z wł ope_basedir , i niestety nie działa wyświetlenie ani /proc/self/status ani /proc/self/enviroment.
Serwer zwraca za każdym razem 404.
Najlepiej na produkcji wywalić Apache i php do chroota, kopiując tam tylko niezbędne biblioteki, albo obciąć co trzeba systemem ACL - np Apparmor, Selinux czy Grsecurity ACL.
Natomiast w samym php lepiej użyć funkcji np open-basedir, która przerabia wszystkie ścieżki na względne, względem folderu bazowego.
Sznurek:
http://nfsec.pl/security/2706
Mod_security jest rodzajem regexa filtrującego zapytania, wszystkich permutacji i kombinacji przewidzieć się nie da, lepiej wykombinować regexa obejmującego to, co wolno, niż wyłączać to, co nie wolno.
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2013-01-25 12:47:01)
Offline
Dzięki za wyczerpujące wskazówki.
Czy na chwilę obecną taka formułka wystarczy:
SecRule REQUEST_URI "(proc|environ|ls|chmod|cd|sql|chown|chdir|mv|cp|ln|rm|touch)" "deny,log,status:406"
Offline
Spróbuj dodać taką regułkę, i potem wejść na adres, jaki masz w logu.
Nie zapomnij tylko o regułce, dzieki której mod_security dekoduje wszystkie base64 i hexy, nie pamiętam, ale to chyba było SecFilter unicode encoding czy jakoś podobnie.
W mod-security 2.1 było coś takiego, w 2.5 chyba też.
Zainteresuj się też suhosinem, który ma podobne opcje w przypadku php.
I oczywiście porządnie napisany skrypt php jest lepszy, niż wszystkie filtry i protezy w typie mod-security.
Edyta:
Ja na twoim miejscu, zamiast certolić się z nazwami plików, sprawdziłbym, czy da się w REQUEST_URI zablokować taki kawałek stringu
/../
Chociaż nie wiem, o co tyle kombinowania, u mnie próba wejścia na
Apacha:
adresy:
https://localhost:447/../../../../../../proc/self/environ
https://localhost:447/../../../../../../etc/passwd
odpowiedź:
The requested URL /proc/self/environ was not found on this server. Apache Server at localhost Port 447
Na Lighttpd:
adresy:
https://localhost/../../../../../../../proc/self/environ
https://localhost/../../../../../../etc/passwd
Odpowiedź:
404 - Not Found
W żadnym z serwerów specjalnie nie kombinowałem w tym zakresie, więc chyba Twoje obawy są nieco przesadzone, albo po prostu ktoś testował metodę z przed wielu lat.
Zainteresuj się za to bezpieczeństwem skryptów php i skryptów cgi, bo tam rzeczywiście można wywołać kawałek kodu, który otworzy taki czy inny plik, którego nie powinien.
Ponadto można wiele wytargać z serwera atakując serwer SQL, z nim też trzeba uważać, zainteresuj się np programem sqlmap.
Sznurek:
http://webhosting.pl/sqlmap.SQL.Injection.pozwala.n … .operacyjnego
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2013-01-25 16:19:05)
Offline