Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Skrypt wysyłający smsy z bramki sms.priv.pl  (Przeczytany 7137 razy)

wanterek

  • Gość
Skrypt wysyłający smsy z bramki sms.priv.pl
« dnia: 2011-01-23, 22:55:11 »
Witam, mam mały problem ze skryptem, który wysyłałby smsy z bezpłatnej bramki sms.priv.pl.

Skleciłem coś takiego:

#!/bin/bash
# -*- coding: UTF-8 -*-

userAgent="Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
referer="http://sms.priv.pl/"
nadawca="jakis nadawca"
siec=`echo "$1"|cut -b-3`
number2=`echo "$1"|cut -b4-`
wiadomosc="$2"
post2="status=send&siec=$siec&number2=$number2&tresc=$wiadomosc&od=$nadawca"
wget --user-agent="$userAgent" --no-check-certificate --keep-session-cookies --save-cookie=ciastko.txt -O logowanie.html http://sms.priv.pl
cat ciastko.txt | sed 's/10d590d95a71c0be69b76b1feb67ab90/87028a8520296148506b59cd246d43fe/g' > ciastko11.txt
rm ciastko.txt
sleep 5
wget --user-agent="$userAgent" --no-check-certificate --keep-session-cookies --load-cookie=ciastko11.txt --post-data="$post2" --referer="http://sms.priv.pl/" -O wysylanie.html http://sms.priv.pl/
rm ciastko11.txt
rm wysylanie.html
rm logowanie.html
Już zabieram się za wyjaśnianie co i jak.

Dwie linijki kodu są tutaj znaczące. Pierwszą jest:

cat ciastko.txt | sed 's/10d590d95a71c0be69b76b1feb67ab90/87028a8520296148506b59cd246d43fe/g' > ciastko11.txt
Kod ten odpowiada za podmienienie w ciasteczku linijki opisanej jako "a", o co tutaj chodzi będzie napisane dalej.

Drugą znaczącą linią kodu jest:

sleep 5
Bez tego również nie ruszy, pewnie strona ma jakieś zabezpieczenie antyspamowe (i słusznie).

Przykładowe ciastko pochodzące z tej strony wygląda tak:

sms.priv.pl     FALSE   /       FALSE   0       a       10d590d95a71c0be69b76b1feb67ab90
.sms.priv.pl    TRUE    /       FALSE   1295740799      PHPSESSID       00fb73e8a9ebd028e324a4745123c721
"PHPSESSID" jak można się domyślić za każdym razem jest inne, natomiast "a" pozostaje niezmienione w danym dniu, ale tutaj właśnie leży cały problem. Z moich doświadczeń wynika, że pobrane ciasteczko w linuxie ma błędny numer i dlatego smsy się nie wysyłają. Testowałem na kilku windowsach i na każdym "a" było identyczne w danym dniu. Dlatego podmieniam te numery w skrypcie i smsy spokojnie się wysyłają. Niestety jest to rozwiązanie na 24 godziny, codziennie trzeba by było zmieniać te numery.

Teraz pytanie do Was, może ktoś wymyśli dlaczego tak się dzieje? Podszywanie się pod przeglądarkę nic nie daje. Może obliczają ten hash z pobranej rozdzielczości? Niestety nie wiem jak zrobić żeby wget podał jakąś zmyśloną rozdzielczość. Sugestie?