[PHP] Postowanie na forum phpBB2

0

witam,
pisze sobie skrypcik który zalogowałby się na moje konto admina na forumie, po czym dodal nowy temat w jednym z działów na tymże forum.. i za nic nie moge sie polapac w tych sesjach i zabezpieczeniach w phpbb2 :/ hakera ze mnie nie bedzie, skoro nawet postowac nie potrafie :P

czy ktos zna taki skrypcik, albo mial podobny problem z sesjami i jakos go rozwiązal?

pozdrawiam

0

tak, ja miałem podobny problem z sesjami i go rozwiązałem

0

konczy sie rok 2008, a ty otrzymujesz Nagrodę Roku za Najbardziej_Użyteczną_Odpowiedź_Roku ® :/

0

dzek69, uważaj bo masz szansę otrzymać nagrodę. 0 konkretów, porównywanie siebie do hackera, pisanie spambota...
W Twoje forum ciężko uwierzyć, co to za admin co nie ma czasu sam zajrzeć.

...a za 'forumie' zostałeś nominowany w kategorii 'analfabeta roku'.

0

niby Perl umiera, ale LWP jest wręcz idealnie do takich zadań przystosowane. jednakże wnioskując ze stylu wypowiedzi i poziomu pytania mocno wątpię w twoje powodzenie.

edit:
nie doczytałem: w PHP robienie takich rzeczy (i właściwie innych też) to męka, jeżeli nie znasz protokołu http na tyle, że mógłbyś przeglądać strony telnetem.

edit2:
chociaż w sumie teraz jest curl do PHP, to może i łatwiej

0
dzek69 napisał(a)

który zalogowałby się na moje konto admina na forumie, po czym dodal nowy temat

Jak jest dostęp do serwera to styknie MySQL. Jak nie to cURL.

0

@deus - dzieki za profesjonalne zjechanie :/
uzycie "forumie" bylo celowe, jezyk polski znam lepiej niz jakieś 98% polskich internautów niestety (już nawet ktoś MNIE zjechał, bo miałem czelność poprawiać czyjeś ortografy..).. a swoja droga nawet jeżeli BYŁBYM analfabetą to usłyszenie czegos takiego nie byłoby miłe..
z tym hakerem, to nawet nie wiem co Ci odpowiedziec, ale ja sie nie próbuję równać z hakerami na pewno..
i po 3 - NIE PISZE spambota! Dużo ich przecież na google znajdę, nie potrzebuję mieć własnego.. Jeżeli nie wierzysz w moją "historyjkę" to trudno, nie masz obowiązku..

@dodekam - napisałem, działa na phpBB2.. Kolejny problem opisze poniżej..

@Demonical Monk - zakładam pracę zdalną, więc tylko cURL :)

KONIEC OT.

Mój skrypt działa, to nie było takie trudne jak myślałem..
Problemem jest teraz to, że z localhosta mi działa na każdym forum, a z VPS-a nie działa na jednym jedynym forum..

HTTP/1.1 417 Expectation Failed
Connection: close
Content-Type: text/html
Content-Length: 363
Date: Thu, 01 Jan 2009 1341 GMT
Server: Uber Apache

417 - Expectation Failed

dzieje sie to na ostatnim kroku (po zalogowaniu, pobraniu sid itd) - przy postowaniu..
O co chodzi?

edit: odnalazłem o co biega..
Ale to wina serwera niby, nie moja, więc dlaczego z localhosta działa?

Na zdalnym tez juz dziala :)
jednak jak ktos cos na ten temat wie to prosze o info..
dziekuje, pozdrawiam,
no i Szcześliwego Nowego Roku!
~dzek69

0

Największym błędem co drugiego 4programowca jest opisywanie problemu, a w efekcie zapomnienie o kodzie -_-

0
dzek69 napisał(a)

@dodekam - napisałem, działa na phpBB2.. Kolejny problem opisze poniżej..

Chodziło mi o potencjalne użycie LWP przez ciebie.

0

@ Demonical Monk - kodu za bardzo nie bylo do pokazywania, więc nie dodałem, tylko dlatego.. pytanie bylo bardziej o gotowe rozwiazanie, to po co komus kod nie sluzacy niczemu, i pewnie kompromitujacy mnie jako programiste:P?

@ dodekam - na razie jestem zadowolony z wyniku, na "wyzszy poziom" jeszcze za wczesnie dla mnie (jestem samoukiem, niby dobrze, ale czasem jest problem)

A pytanie czemu na localhoście dziala, a na zdalnym nie, wciaz aktualne .. (btw: na obu najnowszy Apache [tzn byl najnowszy z miesiac temu/teraz nie wiem])

0

Dobra, nie wytrzymałem... NO KUR** MAĆ PODAJ TEN KOD! Jak połowa chcesz, żeby im napisać, podać na tacy, a oni jeszcze będą wybrzydzać że polskie znaki się nie pokazują, albo wykonywanie skryptu trwa sekundę dłużej niż sobie wymarzył.

0

Niech zgadnę, kod pisany i odpadalny na windowsie, na localhoście działa, zdalnie na linuksie już nie... Wiesz, Windows w przeciwieństwie do Linuksa nie rozróżnia wielkości liter w nazwach plików - pewnie z tym zawaliłeś. No ale skoro ani kodu ani tego jak 'nie działa' podać nie chcesz...

BTW:

dzek69 napisał(a)

uzycie "forumie" bylo celowe, jezyk polski znam lepiej niz jakieś 98% polskich internautów niestety (już nawet ktoś MNIE zjechał, bo miałem czelność poprawiać czyjeś ortografy..)

dzek69 napisał(a)

@ dodekam - na razie jestem zadowolony z wyniku

0

No ludzie, spokojnie, JUŻ DZIAŁA..
deus, czytaj uwazniej, -to nie problem z polskimi znakami..

Macie dzialajacy kod, nie wiem po co wam, ale skoro chcecie to macie..

function createPostString($aPostFields) {
    foreach ($aPostFields as $key => $value) {
        $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
    }
    return implode('&', $aPostFields);
}

function postONphpBB2($url, $username, $password, $forum, $subject, $description, $message, $cookie) {
	$ch=curl_init();
# LOGGING IN
	$form_url=$url.'login.php';
	curl_setopt($ch, CURLOPT_URL, $form_url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_REFERER, $form_url);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_POSTFIELDS, "username=$username&password=$password&login=Log+In");
	curl_setopt($ch, CURLOPT_HEADER, 0);
	$x=curl_exec($ch);
# POSTING A MESSAGE
	$form_url=$url.'posting.php?mode=newtopic&f='.$forum;
	curl_setopt($ch, CURLOPT_URL, $form_url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_REFERER, $form_url);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_HEADER, 0);
	$page=curl_exec($ch);
# GETTING sid
	if (!preg_match ('/logout=true&sid=(.{32})"/', $page, $sid)) {
		return false;
	}
	echo $sid[1];
#######################################
# setting POST FIELDS
$postFields['subject'] = $subject;
$postFields['description'] = $description;
#
$postFields['tag_select'] = '';
$postFields['addbbcode18'] = urldecode('%23');
$postFields['addbbcode20'] = '12';
$postFields['helpbox'] = 'xD';
#
$postFields['message'] = $message;
#
$postFields['via'] = md5(time());
$postFields['attach_sig'] = 'on';
$postFields['send_pm'] = 'on';
$postFields['poll_title'] = '';
$postFields['add_poll_option_text'] = '';
$postFields['poll_length'] = '';
$postFields['mode'] = 'newtopic';
#
$postFields['sid'] = $sid[1];
#
$postFields['f'] = $forum;
$postFields['post'] = 'Submit';
#######################################
	$form_url=$url.'posting.php?mode=newtopic&f='.$forum;
	curl_setopt($ch, CURLOPT_URL, $form_url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_REFERER, $form_url);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields));
	curl_setopt($ch, CURLOPT_HEADER, 1);
	# HTTP 1.0 connection becouse of a bug in some http servers when sending long POST
	curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.0);
	$xxx=curl_exec($ch);
	curl_close($ch);
	if (!preg_match('/url=viewtopic.php\?p=([0-9]*)#([0-9]*)">/',$xxx,$topicid)) {
		return false;
	}
	else {
		return $topicid[1];
	}
}

Ja nikomu nie kazalem pisac dla mnie wielkiego skryptu od zera - zaznaczam ponownie - szukalem gotowego JUZ DOSTEPNEGO rozwiazania..

ps. tak, wiem, "na razie" i pare tego typu slowek mi nie wychodzi (sugestia T9 :/)..

ale nie napisalem tego np tak "jurz działa" itd..

0
dzek69 napisał(a)

deus, czytaj uwazniej, -to nie problem z polskimi znakami

deus napisał(a)

Windows w przeciwieństwie do Linuksa nie rozróżnia wielkości liter w nazwach plików - pewnie z tym zawaliłeś.

No chyba kpisz...

0

niewyspany bylem, Demonical mowil cos o polskich znakach..
dobra, sorry, nic wiecej nie chce, wysmiales mnie publicznie jak tylko mogles, mam nadzieje ze dzieki temu poczules sie lepiej.. temat do zamknięcia

0

Nie, nie poczułem się lepiej, Demonical Monk też się mocno wkurzył, oczekujecie rozwiązania problemu a sami sprawę utrudniacie. Jak większość nie podałeś konkretów, ostatnie pytanie zaś było mistrzostwem świata, 'Ale to wina serwera niby, nie moja, więc dlaczego z localhosta działa?'. Skąd mamy niby wiedzić skoro nie podałeś kodu, informacji o konfiguracji serwera ani tak naprawdę nawet zdania o tym co faktycznie robisz. Rzuciłeś się na mnie za moją krytykę 'z urzędu', chwaląc się znajomością ortografii i nakazując mi czytać ze zrozumieniem, podczas gdy to Ty masz z tym najwyraźniej problemy.

Oczekujesz pomocy uniemożliwiając jej udzielenie, nie dziw się, że zostajesz potępiony; nie tylko Ty masz prawo czegoś oczekiwać i oceniać innych, udzielenie pomocy nie jest niczyim obowiązkiem, to dobra wola.

Wątek zamykam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1