Formularz PHP Token captch hacking

PAMIĘTAJ!!!
Ten i kolejne materiały z cyklu łamania zabezpieczeń IT na moim blogu są tylko do celów edukacyjnych i pogłębiania swojej wiedzy, aby stać się lepszymi programistami i lepszymi administratorami serwerów oraz lepszymi administratorami serwerów baz danych.
Nie wolno moich przykładów wykorzystywać do niecnych celów, gdyż jest to karane i co więcej będę sam ścigał takie osoby.

Witam,

W tym post-cie pokażę jak można złamać podstawowe zabezpieczenia na wszystkich witrynach internetowych - mowa tu jest o token-ach.
Pokażę to na przykładzie witryny: www.moja11.pl.
Czyli w skrócie: za pomocą curl podłączamy się do dowolnej strony WWW i łamiemy zabezpieczenia w naszym przypadku: token-a.

Jest to pierwsza część na moim blogu dotycząca łamania zabezpieczeń komputerowych (zabezpieczeń IT).
W kolejnej post-cie opiszę: jak używać multi-curl do spamowania witryn internetowych (spamowania baz danych witryn internetowych do wielkich rozmiarów sięgających kilku lub nawet kilkudziesięciu GB - w przeciągu jednej doby [24 godzin]) - [zawsze jest lepiej spamować bazy danych niż serwery FTP, gdyż usługodawcy hostingowi zawsze mniejsze rozmiary dają na powierzchnie bazy danych niż na powierzchnie serwera FTP].


Zaczymamy!


Co to jest curl:
patrz tutaj (język ang.)
i
tutaj.
 

Co to jest token:
patrz tutaj (język ang.)
i
tutaj.
 


Ok, wiemy co to jest curl i co to jest token. Co dalej!

Poniżej kod, który podłącza się do witryny internetowej: www.moja11.pl i wysyła formularz z menu kontakt - pomimo tego, że jest on zabezpieczony token-em.
Uwaga! - Często wiele witryn internetowych nie ma nawet zabezpieczenia w formie token-u i wtedy wystarczy sam curl, bez części poniższego kodu, który łamie token.

PAMIĘTAJ!!!
Ten i kolejne materiały z cyklu łamania zabezpieczeń IT na moim blogu są tylko do celów edukacyjnych i pogłębiania swojej wiedzy, aby stać się lepszymi programistami i lepszymi administratorami serwerów oraz lepszymi administratorami serwerów baz danych.
Nie wolno moich przykładów wykorzystywać do niecnych celów, gdyż jest to karane i co więcej będę sam ścigał takie osoby.

Aby kod działał dla innej witryny internetowej musimy linię 13, 16 i 20,21,22 oraz 23 dostosować do innej atakowanej witryny.
Służy do tego program: Fiddler - https://www.fiddler2.com/fiddler2/
Poniższy rysunek pokazuje jakie parametry trzeba z niego pobrać dla witryny: www.moja11.pl, dla innych witryn internetowych postępujemy analogicznie.



Program fiddler śledzi ruch z Twojego komputera do komputera atakowanego i na odwrót.
Czyli należy wejść na dowolną witrynę internetową i wykonać ręcznie poprzez przeglądarkę internetową czynność którą będzie wykonywał nasz program do ataku.
Ukaże się nam w programie fiddler wysłany formularz [tak jak jest pokazane na powyższym rysunku], należy z niego pobrać wszystkie pola i wstawić w linię 16.
Linia 13 jest uzależniona od długości token-u - gdy inna witryna internetowa będzie miała inną długość token-u należy zamiast 32,32 wstawić odpowiednią wartość [dwukrotnie tę samą].
PAMIĘTAJ!!!
Ten i kolejne materiały z cyklu łamania zabezpieczeń IT na moim blogu są tylko do celów edukacyjnych i pogłębiania swojej wiedzy, aby stać się lepszymi programistami i lepszymi administratorami serwerów oraz lepszymi administratorami serwerów baz danych.
Nie wolno moich przykładów wykorzystywać do niecnych celów, gdyż jest to karane i co więcej będę sam ścigał takie osoby.
Linia 16 jest skonfigurowania dla trzeciego wystąpienia ciągu 32 litero-cyfrowego, gdyż dopiero w trzecim wystąpieniu jest token w kodzie atakowanej witryny internetowej.
Gdyby token znajdował się, np. na drugim miejscu w kodzie atakowanej strony WWW należało by wstawić:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'contact[name]=test&contact[email]=test@test.pl&contact[phone]=506123456&contact[question]=test&contact[_csrf_token]='.$match[1]
Linie 20,21,22 i 23 - służą tylko do celów estetycznych, aby wyświetliła się nam cała odpowiedź atakowanej witryny internetowej.
Dla każdej atakowanej witryny internetowej trzeba podmienić adresy WWW w atrybucie: href.

Jeżeli witryna internetowa umożliwia wysyłanie formularzy tylko po zalogowaniu się, to też nie problem. Wystarczy założyć konto z przeglądarki internetowej i potem się tylko zalogować poprzez curl, a następnie wysłać formularz.
A logowaniu do witryn internetowych poprzez curl będzie można poczytać w moim trzecim post-cie dotyczącym łamania zabezpieczeń IT. Będzie tam przykład, który wykona dokładnie to samo co zademonstrowany program do ataku z tego post-a, ale dodatkowo będzie się logował do witryny internetowych - która tego wymaga, aby wysłać formularz nawet zabezpieczony tokenem.


Ciekawostka:
Często witryny internetowe wymagają przy wypełnianiu formularza podania, np.: adresu email, lub np.: telefonu komórkowego, lub wymagają innych danych.
Gdy chcemy na takich witrynach internetowych pomimo ich zakazu: "wysłania formularza bez podania wymaganych danych" i tak wysłać im formularz, np.: bez podania numeru telefonu - TO MÓJ PROGRAM, który pokazałem w tym post-cie doskonale się do tego nadaje - pod warunkiem, że sprawdzanie (walidacja) odbywa się w kodzie JavaScript, a nie w kodzie PHP.




URUCHOM ONLINE - URUCHOM ONLINE - URUCHOM ONLINE

A poniżej jest to samo, ale z błędnym tokenem - jest wtedy informacja: [csrf token: CSRF attack detected.]:

URUCHOM ONLINE BAD - URUCHOM ONLINE BAD




PAMIĘTAJ!!! !!!
Ten i kolejne materiały z cyklu łamania zabezpieczeń IT na moim blogu są tylko do celów edukacyjnych i pogłębiania swojej wiedzy, aby stać się lepszymi programistami i lepszymi administratorami serwerów oraz lepszymi administratorami serwerów baz danych.
Nie wolno moich przykładów wykorzystywać do niecnych celów, gdyż jest to karane i co więcej będę sam ścigał takie osoby.



Każdy mój post, dotyczący w mniejszym lub większym stopniu programowania internetowego jest zawsze kompatybilny z IE od wersji 7, z Firefox od wersji 3.6.3, z Opera od wersji 9.63, z Safari od wersji 5.x i z Chrome od wersji aktualnej