![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję napisać skrypt, który będzie się logować do określonej strony.
Strona to: http://www.erepublik.com/en/login ![]() Kiedyś napisałem coś takiego w VB, jednak administracja pokombinowała i skrypt nie działa. W VB brakło mi pomysłów, więc może ktoś w PHP coś pomoże. Sprawa wygląda tak - wchodząc pierwszy raz na stronę pobierane jest ciastko "erpk". Ciastko to musi zostać wysłane przy logowaniu, a także takie dane jak token (ukryte w formularzu) i oczywiście login i hasło. Poniżej mój kod:
Odpalając go (oczywiście po podstawieniu poprawnego loginu i hasła) otrzymuję komunikat: "CSRF attack detected". Doszedłem mniej więcej dlaczego tak się może dziać. Otóż wchodzimy pierwszy raz na stronę do logowania, następnie usuwam ciastko "erpk" i próbuję się zalogować - wtedy też dostaję taki komunikat. Wniosek? Ciastka nie są przekazywane w drugim wywołaniu. Ale dlaczego? Będzie ktoś mi tutaj w stanie pomóc? Ten post edytował Grzesiek23 25.12.2009, 15:22:13 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj zrobić to wszystko na jednym połączeniu (nie rób curl_close, a później znów curl_init)
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, ale dalej komunikat CSRF ...
Plik cookie zdaje się być ok:
Jednak należy zauważyć, iż plik ten zawiera ciastka tylko z GET. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 27.02.2008 Skąd: Brzozów Ostrzeżenie: (0%) ![]() ![]() |
Mi się wydaje, ze to nie wina ciasteczek tylko tokena. Po coś on tam w końcu jest, prawda? Jak wejdziesz na stronę i go zmienisz, a później spróbujesz się zalogować, to też wywali komunikat CSRF
Spróbuj z pierwszej zmiennej $result pobrać tokena przy pomocy jakiegoś wyrażenia regularnego. Wstaw go później do wysyłanych danych (z tego co widzę to masz wstawioną stałą wartość) i powinno działać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 02:12 |