Kategorie | Bezpieczeństwo, Howto, Internet, Linux

  

Skrypty logowania do portali web…

Opublikowano 16 sierpnia 2010 przez rryk

Tytułem wstępu:

Wpis pochodzi z forum linux360.pl, gdzie mój poprzedni wątek o “podobnym” temacie zniknął, niektórzy się pewnie domyślają dlaczego, inni niekoniecznie. Tak czy siak moje intencje były dobre i miały szlachetne pobudki. Zaś po krótkiej rozmowie z moderatorem postanowiłem, że napiszę to tak jak powinno być napisane, a że może okazać się to niezwykle przydatne udostępniam to także na innych forach. ;p


Treść właściwa:

Wielu z was chciało by za pomocą skryptu sprawdzać nowe wiadomości na nk czy na innych tego typu serwisach. Mając taki skrypt można było by go dodać do conky’ego i być zawsze na bieżąco… Postaram się wam nieco pomóc w napisaniu takiego skryptu…

Co należy wiedzieć:

Zacznijmy od tego, że większość serwisów opiera się na wymianie informacji metodami GET i POST. My skoncentrujemy się na tej drugiej metodzie, a mianowicie POST, gdyż to ona wysyła informacje do serwera.

Co, jak i gdzie?

Ok wiemy jaka metoda odpowiada za wysyłkę ale co wysyła, gdzie wysyła i jak wysyłać z poziomu konsoli… No to po kolei co tak właściwie wysyłamy do tego serwera, żeby to sprawdzić szybko, łatwo i przyjemnie, bez babrania się w kodzie, potrzebować będziemy wtyczki do Firefoxa o nazwie Live HTTP Headers. Jego instalacja nie jest jakaś specjalnie trudna więc nikt nie powinien mieć żadnych problemów. Po jej instalacji w zakładce Narzędzia mamy nową pozycję (Live HTTP Headers), “odpalmy” ją, i zobaczmy “z czym to się je”.
Po włączeniu ukazuje się nam proste i przejrzyste okienko z czterema zakładkami, my skorzystamy z dobrodziejstw Generator’a i Headers. Generator rejestruje praktycznie wszystko, od GET, poprzez POST aż po redirects. Zaś Headers nagłówki. Zobaczmy jak to działa na przykładzie nk.pl. Pamiętajmy, że aby sprawdzić okienko Live HTTP Headers musi być ciągle otwarte. Wchodząc na nk.pl w Generatorze widzimy masę GET’ów, ale to nas nieinteresuje, my potrzebujemy POST’ów więc przechodzimy do logowania, odznaczamy “zaloguj bezpiecznie po SSL” (UWAGA z tego co się orientuje wget nie obsługuje szyfrowania SSL), wpisujemy login, hasło i klikamy zaloguj. Tym razem w generatorze powinno nam śmignąć na początku POST potem same GET. Więc odszukajmy nasze logowanie, które powinno wyglądać mniej więcej tak:

POST /login login=login&password=haslo
Jak widzimy metodą post została wysłana wiadomość o treści “login=login&password=haslo”. Ale gdzie ta wiadomośc została wysłana?? Jak wskazują nam logi wysłano ją na adres /login. Z tym, że to nie jest pełna nazwa, a tylko końcówka, którą dodajemy do adresu. W naszym przypadku pełną nazwą będzie http://nk.pl/login . Dzięki temu wiemy już jak i gdzie, ale zaraz, zaraz to po co nam Header?? Otóż Header zawiera informacje takie jak np. User-agent, który identyfikuje przeglądarkę, czy Referer, który wskazuje skąd nastąpiło przekierowanie. Te informacje są czasem swego rodzaju zabezpieczeniem, więc ich stosowanie jest niezwykle ważne. Aby się dowiedzieć jaki mieliśmy Referer i jaki User-agent jest ustawiony wchodzimy w zakładkę Headers i szukamy http://nk.pl/login tam wszystko będzie ładnie napisane. W ten sposób mamy już wszystko co potrzebne, aby się zalogować. Do logowania użyjemy znanego wszystkim wget’a. Można też co prawda użyć cURL’a czy Lynx, ale o tym parę postów niżej.
Oto magiczna komenda:

wget -q --user-agent="Tutaj podajemy naszego User-agenta" --keep-session-cookies --save-cookies=zapisaneciastka.txt --referer=http://nk.pl/ --post-data="wiadomość POST którą wyłuskaliśmy z logów" -O zalogowany.html http://nk.pl/login

Oczywiście trzeba uzupełnić tą komendę odpowiednimi parametrami, tak aby końcowy efekt był np. taki:

userAgent="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
wget -q --user-agent="$userAgent" --keep-session-cookies --save-cookies=zapisaneciastka.txt --referer=http://nk.pl/ --post-data="login=login&password=haslo" -O zalogowany.html http://nk.pl/login

Następnie, za pomocą dowolnej przeglądarki, otwieramy plik zalogowany.html i sprawdzamy czy rzeczywiście działa, jeśli tak to kolejne kroki, jak wysyłanie wiadomości, możecie zrobić sami pamiętając tylko, że tym razem otwieramy ciasteczka, a nie zapisujemy. Czyli przyszłe komendy powinny wyglądać mniej więcej tak:

wget -q --user-agent="$userAgent" --keep-session-cookies --load-cookies=zapisaneciastka.txt --referer=http://naszreferer.pl/ --post-data="msg=nasza+wiadomosc" -O wiadomosc.html http://nk.pl/login

Oczywiście można też przypisać cały kod html do zmiennej np.

logowanie=`wget -q --user-agent="$userAgent" --keep-session-cookies --save-cookies=zapisaneciastka.txt --referer=http://nk.pl/ --post-data="login=login&password=haslo" -O - http://nk.pl/login`

Jak pisałem wcześniej w cURL też się da więc jakby ktoś był zainteresowany:
Do zapisywania ciastek, czyli taka komenda jakby do logowania:

userAgent="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
curl --user-agent "$userAgent" --cookie-jar zapisaneciastka.txt --referer "http://nk.pl" --data "login=login&password=haslo" http://nk.pl/login

I do wczytywania ciasteczek czyli ew. dalszych działań jak np. wysyłanie wiadomości.

userAgent="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"
curl --user-agent "$userAgent" --cookie zapisaneciastka.txt --referer "http://nk.p

Na zakończenie

Mam nadzieje, że tutek się podobał i nie przynudzałem. Więcej o opcjach użytych przy wget macie w man. Informacje tutaj zawarte powinny wam pomóc w sprawdzaniu poczty nk czy nawet wysyłaniu wiadomości nk przez konsole. Przypominam, że na podobnej zasadzie działa większość portali web… ;p

Pozdrawiam Eryk Rutkowski.

PS. Zakaz kopiowania tekstu bez zgody autora.

PRZYPOMINAM, ŻE SPAM JEST OKREŚLONY W KODEKSIE KARNYM ORAZ W USTAWIE O ŚWIADCZENIU USŁUG DROGĄ ELEKTRONICZNĄ:

Art. 269a kk Kto, nie będąc do tego uprawnionym, przez transmisję, zniszczenie, usunięcie, uszkodzenie lub zmianę danych informatycznych, w istotnym stopniu zakłóca pracę systemu komputerowego lub sieci teleinformatycznej, podlega karze pozbawienia wolności od 3 miesięcy do lat 5.
Art. 24 ustawy o świadczeniu usług drogą elektroniczną
1. Kto przesyła za pomocą środków komunikacji elektronicznej niezamówione informacje handlowe, podlega karze grzywny.
2. Ściganie wykroczenia, o którym mowa w ust. 1, następuje na wniosek pokrzywdzonego.

WIĘC PROSZĘ NIECH NIKT NIE WYKORZYSTUJE ZDOBYTEJ TU WIEDZY DO SPAMOWANIA JAKIEGOKOLWIEK SERWISU

  

2 Comments For This Post

  1. Zenon Says:

    Wget oczywiście obsługuje SSL-a:

    wget -q https://nk.pl/img/new_login/main_container_header_logo; echo $?
    0

    Może natomiast mieć problem z wadliwymi (lub “wadliwymi”) certyfikatami, ale wtedy wystarczy mu kazać zignorować kłopot.

    Dzięki za ten mikroartykulik, przyda się społeczności.

  2. klaster Says:

    prosta sprawa to wziac skryp googlemail.sh i przerobic go na inne chyba ze ma byc pokazywanie tytulu wiadomosci na kontach to juz trzeba sie wiecej na trudzic

Leave a Reply

Polityka komentarzy

     
     
Green Dog Says

MiniBlog