Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> Bezpieczeństwo w PHP (HTTP Cache Poisoning via Host Header Injection)
netmare
post 5.10.2015, 23:08:51
Post #21





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Ja tu pętli nie widzę, może efekt późnej pory. Możesz wytłumaczyć?
Go to the top of the page
+Quote Post
Damonsson
post 5.10.2015, 23:11:54
Post #22





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Może już też nie myślę, ale wg mnie postawiłeś błędne założenie, że: po przekierowaniu z www na bez www (zmiana url w pasku adresu), zmienia się także Host z nagłówka czyli $_SERVER['HTTP_HOST'].

Nie zmienia się, pozostaje taki sam jaki podmieniłeś i wchodzisz w pętle przekierowań, bo $_SERVER['HTTP_HOST'] ciągle pokazuje że jest z www.
Go to the top of the page
+Quote Post
netmare
post 5.10.2015, 23:21:01
Post #23





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Jak mi się uda usiąść jutro do kompa to zweryfikuję. Wg mojej wiedzy host w nagłówku powinien się zmienić, bo jak bez tego miałyby działać przekierowania...
Jeśli mnie ubiegniesz to podziel się wnioskami, żebym się nie fatygował wink.gif
Go to the top of the page
+Quote Post
Damonsson
post 5.10.2015, 23:27:18
Post #24





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Żeby nie być gołosłownym biggrin.gif

Go to the top of the page
+Quote Post
netmare
post 6.10.2015, 00:25:19
Post #25





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


To mi się kupy nie trzyma , ani specyfikacji HTTP wink.gif. Aż musiałem kompa odpalić, bo Live HTTP Headers od zawsze miało "niespodzianki".
Tu zrzut z jakiegoś snifera wireshark i host ewidentnie zmieniony:

Edit: ciastka tylko usunąłem
Edit2: dobrze, że nie wybrałeś strony na SSL haha.gif

GET / HTTP/1.1
Host: www.symfony.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4

HTTP/1.1 301 Moved Permanently
Age: 116
Content-Type: text/html
Date: Mon, 05 Oct 2015 23:11:00 GMT
Location: http://symfony.com/
Server: nginx/1.4.6 (Ubuntu)
Via: 1.1 varnish-v4
X-Varnish: 112821228 112330543
Content-Length: 193
Connection: keep-alive

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>

GET / HTTP/1.1
Host: symfony.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4


Pozostaje test ostateczny, ale nie chce mi się apacha w środku nocy stawiać. Jutro postaram się zweryfikować.

Ten post edytował netmare 6.10.2015, 00:28:54
Go to the top of the page
+Quote Post
Damonsson
post 6.10.2015, 01:33:24
Post #26





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Hmmm no ok, nawet gdyby Live HTTP Headers kłamało, też mu nie ufam. To podstawowa sprawa:

URL: http://symfony.com
Host: symfony.com
200 OK

URL: http://symfony.com
Host: symfony.com/
400 Bad Request

URL: http://symfony.com
Host: symfonyxxxx.com
204 No Content

URL: http://symfony.com
Host: www.symfony.com
Nie dostaję nic, po czym mogę wnioskować, że wpadłem w pętle przekierowań, a potwierdza mi to Live HTTP Headers.

Sniffer akurat Fiddler2 nie pozwala mi wysłać różnego URL i Hosta.


Daj znać jak coś ustalisz, bo też jestem ciekaw.
Go to the top of the page
+Quote Post
KsaR
post 6.10.2015, 02:38:42
Post #27





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Wybaczcie ale sie tak rozpisaliscie ze chyba godzina czytania.
To nie wiem czy nie byla juz odpowiedz.

Ale czy nie lepiej użyć modułu ModRewrite od apache?..
Wedlug mnie po hoscie bylo by bez sensu bo ten naglowek mozna dowolnie ustawiac...
Nawet mozna by ustawic np. facebook.com wchodzac tu czy gdzie indziej.


--------------------
Go to the top of the page
+Quote Post
szajens
post 6.10.2015, 06:53:30
Post #28





Grupa: Zarejestrowani
Postów: 150
Pomógł: 4
Dołączył: 3.01.2010

Ostrzeżenie: (0%)
-----


Modrewrite nie jest obslugiwane na kazdym serwerze. Postaram sie po pracy kolo 16 potestowac. Jak na cos wpadne to dam znac.

Edit: pozatym przekierowanie w modrewrite tez korzysta z http_host

edit2: panowie przetestowałem wtyczką do ff modify header i dzieje się wszystko jak mówiłem, robi się zapętlenie (ale nie jest ono w cache) na 100% stronach które mają przekierowanie.

Więc nie wiem na jakiej zasadzie miałoby to pójść poza własny komputer,

Wieczorkiem wynagrodzę wszystkie pomocne wypowiedzi chociaż przyciskiem 'pomógł'

pozdrawiam

Ten post edytował szajens 6.10.2015, 13:31:06
Go to the top of the page
+Quote Post
netmare
post 6.10.2015, 18:42:28
Post #29





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(Damonsson @ 6.10.2015, 02:33:24 ) *
Daj znać jak coś ustalisz, bo też jestem ciekaw.

Ustaliłem tyle, że Host w nagłówku się zmienia i po stronie PHP w $_SERVER jest widoczna zawsze wartość z konkretnego wywołania.
Z ciekawostek jeszcze zdziwiło mnie, że wstawienie w host slesza wali błędem, natomiast <> już nie wink.gif Może gdyby ktoś miał virtual host *, i pokusił się o jakieś logowanie tego jakie hosty mu się wysyła... Ale fantastyka piętro wyżej, bo komu by się chciało sprawdzać taką podatność. Natomiast podatności na zapętlenie dalej nie widzę.

Cytat(KsaR @ 6.10.2015, 03:38:42 ) *
Nawet mozna by ustawic np. facebook.com wchodzac tu czy gdzie indziej.

No oczywiście że można, tylko na 99% serwerów produkcyjnych zobaczysz coś jak host not found. A na pozostałych zobaczysz dokładnie to samo co byś w hosta nie wpisał. Jakieś na siłę potworzone dziury przez zaczynających przygodę z PHP pomijamy.

Cytat(szajens @ 6.10.2015, 07:53:30 ) *
edit2: panowie przetestowałem wtyczką do ff modify header i dzieje się wszystko jak mówiłem, robi się zapętlenie (ale nie jest ono w cache) na 100% stronach które mają przekierowanie.


To zaprezentuj na przykładzie powiedzmy wp.pl, jak się ta pętla tworzy, bo mi jak na razie nie udało się powtórzyć Twojego wyczynu. Może jakiś filmik, albo dokładny opis co robisz w tym ff.
Go to the top of the page
+Quote Post
Damonsson
post 6.10.2015, 19:48:16
Post #30





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Wydaje mi się, że te wszystkie rozbieżności wynikają po prostu z różnej obsługi protokołu przez różne przeglądarki/soft.

Ewidentnie wchodzę w pętle przekierowań, video: https://youtu.be/IxZKD5wHkRs

Pobawiłem się z Apache i ja po przekierowaniu, nawet dałem 2 przekierowania, mam cały czas Host równy temu co podałem w nagłówku dla pierwszego URLa.

Go to the top of the page
+Quote Post
szajens
post 6.10.2015, 20:34:19
Post #31





Grupa: Zarejestrowani
Postów: 150
Pomógł: 4
Dołączył: 3.01.2010

Ostrzeżenie: (0%)
-----


no i filmik ode mnie: podmiana http_host

edit: Damonsson co ty masz za RESTClient?

a jak wywołasz allegro.pl i ustawisz hosta wp.pl
to w cache przeglądarki zostaje przekierowanie na wp hehe

Ten post edytował szajens 6.10.2015, 21:08:59
Go to the top of the page
+Quote Post
Damonsson
post 6.10.2015, 21:19:10
Post #32





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


http://restclient.net/ - w sumie używam tego do testowania REST API. Ale do podmiany nagłówków też się nadaje.

Nie mam czasu, żeby zgłębić temat, ale coś mi się tu nie zgadza z tym wszystkim, trzeba by to dokładnie sprawdzić i wyciągnąć wtedy jakieś wnioski.
Go to the top of the page
+Quote Post
netmare
post 6.10.2015, 21:21:42
Post #33





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


No to jak dla mnie wszystko jasne i zgadza się, z tym co napisałem powyżej. Przecież to nie będzie pętla przekierowań, tylko błąd operatora.

Więc jest takie coś w tym ff network.http.redirection-limit u mnie miało wartość 20. Przestawiłem na 2000 żeby zdążyć kliknąć w to modify headers. I jak tylko wziąłem Disable. FF od razu podołał z wczytaniem www.wp.pl
Mój wniosek z tego taki, że te softy, zamiast podmienić nagłówek raz, podmieniają go na stałe (dlatego też Damonsson widzi ciągle ten sam host). W połączeniu z redirem robi się pętla. Bo idzie:

GET / HTTP/1.1
Host: wp.pl
->
Location: http://www.wp.pl/

I tu przeglądarka robi:
GET / HTTP/1.1
Host: www.wp.pl
Ale po tym jak ona to zrobi wasz soft podmienia nagłówek (swoją drogą, nie wiem czemu użyłeś tam add, a nie modify) zamienia host na wp.pl, więc wysyłacie drugi raz dokładnie taki sam nagłówek i potem kolejne razy aż do osiągnięcia limitu redirów. Więc jak dla mnie to nie pętla przekierowań, a atak powerusera na własną przeglądarkę, bo nic poza tym to działanie do tematu nie wnosi (dalej uważam, że F5 i zapałka są łatwiejsze w użyciu i nie wywalą się po określonej liczbie redirów wink.gif ). Poza tym jest tu sprzyjająca sytuacja, że redir jest z / na / bo raczej na każdym site jest domyślny index, ale gdyby adres wpisywany był mojadomena.pl/a.php, a z niego byłby redir www.mojadomena.pl/b.php to po podmianie hosta doszłoby od razu do 404 zamiast pętli.


Tak czy inaczej dzięki za gimnastykę intelektualną (już się wystraszyłem że naprawdę nie widzę czegoś oczywistego) i aż szkoda że się temat wyczerpał.
Gdybyście jeszcze mogli podrzucić nazwę jakiegoś darmowego softu, do robienia takich ładnych filmików wink.gif

Edit:
Cytat(Damonsson @ 6.10.2015, 22:19:10 ) *
Nie mam czasu, żeby zgłębić temat, ale coś mi się tu nie zgadza z tym wszystkim, trzeba by to dokładnie sprawdzić i wyciągnąć wtedy jakieś wnioski.

Dokładnie nie sprawdziłem, też mam ograniczenia czasowe. Ale wnioski nasunęły się same po obejrzeniu filmików, szczególnie tego drugiego z zieloną kontrolką podmiany wartości nagłówka.

Ten post edytował netmare 6.10.2015, 21:25:29
Go to the top of the page
+Quote Post
szajens
post 6.10.2015, 21:27:05
Post #34





Grupa: Zarejestrowani
Postów: 150
Pomógł: 4
Dołączył: 3.01.2010

Ostrzeżenie: (0%)
-----


haha z tą zapałką dobre smile.gif)

podsyłam linka do programu http://www.dobreprogramy.pl/Debut-Video-Ca...dows,33120.html
Go to the top of the page
+Quote Post
Damonsson
post 6.10.2015, 22:49:12
Post #35





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Dokładnie @netmare.

Też jest to dla mnie najlogiczniejsze wyjaśnienie tych dziwnych pętli. I chyba wyczerpanie w pełni tematu.

Ten post edytował Damonsson 6.10.2015, 22:49:25
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 07:44