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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-01-25 08:52:17

  Odin - Użytkownik

Odin
Użytkownik
Zarejestrowany: 2012-10-25

Próba hacku przez proc/self/environ

Witam,

Wiem, że ostatnio często pytam ale od tego jest forum.

Dziś w logwatchu dostałem coś takiego:

Kod:

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

 

#2  2013-01-25 12:12:25

  torrentow - Członek Sejmowej Komisji Śledczej

torrentow
Członek Sejmowej Komisji Śledczej
Skąd: z GNU
Zarejestrowany: 2009-11-23

Re: Próba hacku przez proc/self/environ

Witam,
Obejrzyj ten filmik: https://www.youtube.com/watch?v=OjUH5nsxm-w
Pozdrawiam,
Towarzysz Torrentow


Każdy sam sobie szkodzi :)
http://img715.imageshack.us/img715/7104/apt.png

Offline

 

#3  2013-01-25 12:46:39

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Próba hacku przez proc/self/environ

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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2013-01-25 15:33:33

  Odin - Użytkownik

Odin
Użytkownik
Zarejestrowany: 2012-10-25

Re: Próba hacku przez proc/self/environ

Dzięki za wyczerpujące wskazówki.

Czy na chwilę obecną taka formułka wystarczy:

Kod:

SecRule REQUEST_URI "(proc|environ|ls|chmod|cd|sql|chown|chdir|mv|cp|ln|rm|touch)" "deny,log,status:406"

Offline

 

#5  2013-01-25 15:39:36

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Próba hacku przez proc/self/environ

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

Kod:

/../

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ź:

Kod:

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ź:

Kod:

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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)