Логване с Curl

dakata__92

Super Moderator
Някой може ли да ми помогне да се логна в един форум със система IPS, чрез Curl. Пробвах се да взема csrfKey и да го поставям директно в кода но не иска да се логне. Curl работи проблема е в защитите на форума. На лично ще пратя линк ако трябва към форума.
 
http://www.wjunction.com/200-development-area-archive/96505-curl-ipb-help.html

https://community.centminmod.com/threads/you-do-not-have-the-curl-php-extension-loaded-or-it-is-running-a-version-less-than-7-36.5772/

Тия гледал ли си ги?
 
Curl кода не е проблема. Проблема е във входните данни.

PHP:
$curl->setResponseArray([
	"referer" => $url."/forum/index.php?/login/",
	"cookies" => true,
	"postfields" => array(
		"auth" => "ник",
		"password" => "парола",
		"login__standard_submitted" => '1',
		"csrfKey" =>  preg_match("/name=\"csrfKey\" value=\"(.*?)\"/",$loginSource)[1],
		"ref" => preg_match("/name=\"ref\" value=\"(.*?)\"/",$loginSource)[1],
		"MAX_FILE_SIZE" => '7340032',
		"plupload" => preg_match("/name=\"plupload\" value=\"(.*?)\"/",$loginSource)[1],
		"remember_me" => '1',
		"remember_me_checkbox" => '1',
		"signin_anonymous_checkbox" => '1'
	)
]);

Взимам csrfKeyот страницата поставям го в заявката и правя нова заявка с ника и паролата към сайта.
Впрочем предполагам, че форума е IPS 4 нагоре.
 
lam3r4370 каза:
Как взимаш csrf
Това е проблема. Правя заявказа вземане на кода на страницата, след което с регулярни изрази взимам csrf кода и после правя нова заявка към сървъра с попълнени полета за да се логна в системата.
Код:
$loginSource  = $curl->get($url."/forum/index.php?/login/");
$curl->setResponseArray([

	"referer" => $url."/forum/index.php?/login/",

	"cookies" => true,

	"postfields" => array(

		"auth" => "ник",

		"password" => "парола",

		"login__standard_submitted" => '1',

		"csrfKey" =>  preg_match("/name="csrfKey" value="(.*?)"/",$loginSource)[1],

		"ref" => preg_match("/name="ref" value="(.*?)"/",$loginSource)[1],

		"MAX_FILE_SIZE" => '7340032',

		"plupload" => preg_match("/name="plupload" value="(.*?)"/",$loginSource)[1],

		"remember_me" => '1',

		"remember_me_checkbox" => '1',

		"signin_anonymous_checkbox" => '1'

	)

]);
$loginPost  = $curl->make($url."/forum/index.php?/login/");

Лошото, е че не мога да взема ключа и със същата заявка да изпратя POST поради, това, че трябва да попълня полетата.
 
lam3r4370 каза:
Използвай един и същ cookiejar

Пробвах и не се получава. Вероятно системата генерира нов csrfKey при подаването на входните данни към втората заявка.
 
Продължавам да не успявам да се логна. До сега не ми се беше случвало подобно нещо, даже и csrf защита да е имало.
 
1. Изтегли си и инсталирай Fiddler
2. Настрой го да log-ва всички заявки от browser-а ти (вкл. HTTPS като инсталираш MDM сертификата им)
3. Логни се в системата с browser-а ти и виж какво прави (заявки, header-и, redirect-и)
4. Настрой го да log-ва всички заявки от всички процеси на системата
5. Пусни си своя скрипт и сравни резултатите
 

Горе