Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][CURL]Logownaie wykryte jako atak
siurek22
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


Witam chce sie zalogowac na moje konto na erepublik.com w celu pobrania czesci informacji... Pewnie ktos powie ze jest od tego api ale ja chce pobrac wartosc pensji moich pracownikow a tego tam niema. Dobra to wyglada to tak uzywam ponizszego kodu i po jego uzyciu otrzymuje komunikat "CSRF attack detected.", chce sie tylko zalogowac token pobieram wiec dlaczego dostaje taki komunikat?

Kod
<?php
function token($content)
 {
     preg_match("@<input type=\"hidden\" id=\"_token\" name=\"_token\" value=\"(.*?)\" \/>@i", $content, $w);
     return $w[1];
 }
$hand = curl_init();

//pobieranie tokena
curl_setopt($hand, CURLOPT_URL, 'http://www.erepublik.com/en/login');
curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($hand, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1)");
$p=curl_exec($hand);
$token = token($p);

//logowanie
curl_setopt($hand, CURLOPT_URL, 'http://www.erepublik.com/en/login');
curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($hand, CURLOPT_POST, 1);
curl_setopt($hand, CURLOPT_POSTFIELDS, "_token={$token}&citizen_name=login&citizen_password=haslo&commit=Login");
curl_setopt($hand, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1)");
$p=curl_exec($hand);
echo htmlspecialchars($p);
 
curl_close($hand);

?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Musisz wykonać 2 czynności. Wejść na stronę i pobrać token:

  1. <input type="hidden" value="a128a753d494e1bebf69bb3fa7e1d4e" name="_token" id="_token">


A następnie zalogować się, dodając dodatkowy parametr _token, z wcześniej pobraną zawartością. Z tym że przy każdym wejściu poprzez curl na stronę, nie musisz nawet trzymać tego samego ciasteczka, bo z tego co zauważyłem to token nie jest jakoś ustalany na podstawie sesji, a raczej na podstawie adresu IP, oraz user agenta przeglądarki, tak więc trzymaj wszędzie tego samego user agenta.

Ten post edytował by_ikar 2.01.2012, 15:11:26
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 13:47