Как прячут мыло?
Ставим на машину апач. интернет эксплорер на ней уже есть(рассматриваем маздаевый вариант как наиболее распространенный). Заказанный сайт мы уже скачали тем же wget-ом.
На апаче висит локальный сайт mailFucker.
Заводим ie и набиваем в адресной строке mailFucker
происходит обращение к стартовому скрипту локального сайта :D
Стартовый скрипт(далее индекс) берет очередную страницу сайта скачанного(заказанного), добавляет к тегу body событие onLoad(оверлоад для случаев когда этот обработчик уже имеется в теге не рассматриваем - не принципиально, можно переписывать в наглую)
Обработчик(наш, добавленный, JavaScript) делает что - то вроде:
href = 'mailFucker/?';
query = '';
c = document.links.length;
for(i=0; i<c; i++){
if(document.links.substr(0, 5) == 'mailto'){
query += 'l'+i+'='+escape(document.links.substr(5, document.links.length))+'&';
}
}
window.location.href = href+query;
Стартовый скрипт смотрит get переменные lx и имеет из них мыла. Кладет в базу и отрабатывает очередную страницу заказанного сайта.
Готов внимательно выслушать пути обхода этого поимения.
отступление от темы. Маил листы таким образом составляются только для специфичных сайтов(типа знакомства) либо сайтов заказанных клиентом.
Не по заказу себя уважающие спамеры составляют листы при помощи поисковиков. Яндекс к примеру выдает списки мыл уже с указанием категории, что позволяет таргетировать рассылки, плюс ко всему прочему трафика уходит гораздо меньше чем при самостоятельном скане Сети - 2-4 килобайта на одно мыло.
Итак. Объясняю медленно и доходчиво.
Ставим на машину апач. интернет эксплорер на ней уже есть(рассматриваем маздаевый вариант как наиболее распространенный). Заказанный сайт мы уже скачали тем же wget-ом.
На апаче висит локальный сайт mailFucker.
Заводим ie и набиваем в адресной строке mailFucker
происходит обращение к стартовому скрипту локального сайта :D
Стартовый скрипт(далее индекс) берет очередную страницу сайта скачанного(заказанного), добавляет к тегу body событие onLoad(оверлоад для случаев когда этот обработчик уже имеется в теге не рассматриваем - не принципиально, можно переписывать в наглую)
Обработчик(наш, добавленный, JavaScript) делает что - то вроде:
href = 'mailFucker/?';
query = '';
c = document.links.length;
for(i=0; i<c; i++){
if(document.links.substr(0, 5) == 'mailto'){
query += 'l'+i+'='+escape(document.links.substr(5, document.links.length))+'&';
}
}
window.location.href = href+query;
Стартовый скрипт смотрит get переменные lx и имеет из них мыла. Кладет в базу и отрабатывает очередную страницу заказанного сайта.
Готов внимательно выслушать пути обхода этого поимения.
отступление от темы. Маил листы таким образом составляются только для специфичных сайтов(типа знакомства) либо сайтов заказанных клиентом.
Не по заказу себя уважающие спамеры составляют листы при помощи поисковиков. Яндекс к примеру выдает списки мыл уже с указанием категории, что позволяет таргетировать рассылки, плюс ко всему прочему трафика уходит гораздо меньше чем при самостоятельном скане Сети - 2-4 килобайта на одно мыло.
Можно что-то типа "бла-бла[пёсик]mail.ru". Но тогда это не будет активной ссылкой. Ты вытаскиваешь те ссылки, которые видит человек. Хотя видел, что их (мыла) делают картинкой.
Ещё (хотя это только идея) можно попробывать мыла хранить в базе и ссылку делать что-то типа <a href="clientMail.php?id=numberMail">что-то[зверь]mail.ru Все введённые мыла держать в базе и при нажатии на ссылку в скрипте выдавать хедер mailto. Хотя это мона попробывать намутить:). Может станет методом Shaelf'a :).
М Может станет методом Shaelf'a :).
Увы и ах! :D Такое уже предлагалось неоднократно, но будет выхвачено еще на этапе скачки сайта, если скачка ведется не wgetом и прочими а своим скриптом. А после того как найден скрипт, по id юзера отдающий его мыло остается только тупо перебрать все id.
Сейчас думаю как более красиво выхватить мыло если оно через
window.location.href = 'mailto...'; с учетом того что этот код может быть зашифрован и сидит на onClick
Увы и ах! :D Такое уже предлагалось неоднократно, но будет выхвачено еще на этапе скачки сайта, если скачка ведется не wgetом и прочими а своим скриптом. А после того как найден скрипт, по id юзера отдающий его мыло остается только тупо перебрать все id.
Сейчас думаю как более красиво выхватить мыло если оно через
window.location.href = 'mailto...'; с учетом того что этот код может быть зашифрован и сидит на onClick
Ну по поводу id - это ты зря так, ведь мона и md5(случайный набор букв и цифр) вместо id вставлять, так что тупым перебором будет сложно (только для бальших сайтов мало применимо - это минус)... По поводу предлагалось... жаль, почти в патентное бюро собрался:). По поводу mailto, дык если ты скритом проходить будешь, то реакция должна быть на *@*.* или что-то типа этого. Поэтому это мало подойдёт, так как будет на той же страничке. Или я что-то не понял?
По поводу mailto, дык если ты скритом проходить будешь, то реакция должна быть на *@*.* или что-то типа этого. Поэтому это мало подойдёт, так как будет на той же страничке. Или я что-то не понял?
Первая предложенная мной схема - тандем апача с бродилкой выхватывает все мыла сгенеренные в момент генерации документа. При этом я не прохожу по документу - броузер САМ формирует мне массив links
Если же повесить
eval(decipher('ciphered window.location.href = "mailto...";')); на onClick ссылки то в момент onLoad этого мыла на странице не будет. Оно появится только в момент клика. И первая схема не сработает. Но технически это реализуемо. Просто хочется простого и красивого решения.
Ну по поводу id - это ты зря так, ведь мона и md5(случайный набор букв и цифр) вместо id вставлять, так что тупым перебором будет сложно
придется тупо перебрать все ссылки на ЭТОТ скрипт с сайта и скормить ему полученные id
Первая предложенная мной схема - тандем апача с бродилкой выхватывает все мыла сгенеренные в момент генерации документа. При этом я не прохожу по документу - броузер САМ формирует мне массив links
Если же повесить
eval(decipher('ciphered window.location.href = "mailto...";')); на onClick ссылки то в момент onLoad этого мыла на странице не будет. Оно появится только в момент клика. И первая схема не сработает. Но технически это реализуемо. Просто хочется простого и красивого решения.
Правильно, в момент клика, но ведь не кто не запрещает простейшему боту САМОМУ ходить по ссылкам. Условно собирать все <a.....></a>. Тебе ведь по любому нужно её ссылкой (хоть какой обозначить.
придется тупо перебрать все ссылки на ЭТОТ скрипт с сайта и скормить ему полученные id
Под вечер пока в голову больше не чего не идёт, может народ подтянеться, а я завтра на работе, со свежей (условно свежей) головой попробую ещё гениальных идей родить.:)
Правильно, в момент клика, но ведь не кто не запрещает простейшему боту САМОМУ ходить по ссылкам. Условно собирать все <a.....></a>. Тебе ведь по любому нужно её ссылкой (хоть какой обозначить.
во первых <a href='fuckoff' onclick='ciphercode(get_mail)'>
бот пойдет на fuckoff а не на get_mail
во вторых onClick может быть на любом элементе - ячейка таблицы, картинка, банально div. То есть придется перебирать все onClick-и А это придется иметь свой интерпретатор JS. бродилку на это дело я сходу не соображу как подпрячь. Хотя ближе к УВЕРЕН что можно.
во первых <a href='fuckoff' onclick='ciphercode(get_mail)'>
бот пойдет на fuckoff а не на get_mail
во вторых onClick может быть на любом элементе - ячейка таблицы, картинка, банально div. То есть придется перебирать все onClick-и А это придется иметь свой интерпретатор JS. бродилку на это дело я сходу не соображу как подпрячь. Хотя ближе к УВЕРЕН что можно.
Складываю лапки. Всё, что могу придумать - это серверная сторона... На JavaScript опыта маловато:(. Ща с линём закончу и по хорошему за клиентскую сторону возьмусь.
Какие могут быть недостатки у следуюшего метода:
function get_mail(login,domain) {
location.href = 'mailto:'+login+'@'+domain;
}
</SCRIPT>
[url="java script:get_mail('test','mail.ru');"]my mail[/url]
Можно еще параметры не открытым текстом передавать, а в виде HTML-entities.
Какие могут быть недостатки у следуюшего метода:
function get_mail(login,domain) {
location.href = 'mailto:'+login+'@'+domain;
}
</SCRIPT>
[url="java script:get_mail('test','mail.ru');"]my mail[/url]
не тестил еще, но думаю что сработает что-то вроде
location.watch('href', function (id,oldval,newval){
перехват мыла, return oldval});
а затем eval(javaScriptLink)
то есть сработает при любой попытке изменить href документа.
По мне лучше формы в странице с последующей пересылкой её скрипту, а уж из него на мыло адресату, ни чего нет. Все мыла храняться на сайте в БД в которую естественно кроме хозяина хоста и скрипта залезть ни кто не может.
)))) действительно не очень понятно, что в темы пытаються сделать больше: скрыть мыло, или попытаться достать любому мыло с сайта.
По мне лучше формы в странице с последующей пересылкой её скрипту, а уж из него на мыло адресату, ни чего нет. Все мыла храняться на сайте в БД в которую естественно кроме хозяина хоста и скрипта залезть ни кто не может.
Топ является продолжением разговора поднятого в процессе создания фака по безопасности сайтов(стикет форума, можете посмотреть) в котором я как раз и сказал что при раскладе когда мыло отдается на клиента его по любому можно выдернуть как бы оно зашифровано ни было(естественно если оно потом преобразовывается в рабочую ссылку). Дабы на том топе не разодить создали этот. Я предлагаю способы выдергивания мыла, народ - способы спрятать. Не для того что бы кому то что то доказать, а для того что бы это дело систематизировать и наглядно показать КАК именно имеются мыла. Дабы народ себя не тешил иллюзиями.
Топ является продолжением разговора поднятого в процессе создания фака по безопасности сайтов(стикет форума, можете посмотреть)
Да я понял-то. В курсе, тему читал.
Что бы обойти все вышеприведенным способы, бот должен быть учень умным.
Кроме того мне думается, что бот будет полезен только для работы с ресурсами построенным на стандартных движках. Оригинальные движки думается боту не сломать.
Да я понял-то. В курсе, тему читал.
Что бы обойти все вышеприведенным способы, бот должен быть учень умным.
НЕТ!!!!!
Весь смарт - в бродилке(осел, опера, не суть) Бот только вставляет хаки в страницу и скармливает ее бродилке, которая исполняет все твои яваскриптные попытки спрятать мыло, а затем вбитые моим скриптом хаки, которые выдергивают уже сформированные мыла либо провоцируют их формирование БРОУЗЕРОМ. и отсылают их скрипту. То есть мне не надо заморачиватся на парс ява скриптов - я заставляю это делать броузер.
И все что мне нужно - массив links, свойство location.href и я вот думаю как бы получить список всех onClick-ов средствами JS.
Вот код полученный при помощи PEAR HTML_Crypt
Взят отсюда
mail.html:
<head><title>Формирование зашифрованного мыла</title></head>
<body>
<script language="JavaScript" >
var a,s,n;
function ja4fc707c63aa221b5326b8c0cb348e87(s){
r='';
for(i=0;i<s.length;i++){
n=s.charCodeAt(i);
if(n>=8364){n=128;}
r+=String.fromCharCode(n-3);
}
return r;
}
a='?d#kuhi@%pdlowr=plnhCeoxhurrw1qhw%APlfkdho#Gudqvilhog?2dA';
document.write (ja4fc707c63aa221b5326b8c0cb348e87(a));
</script>
Комментарии к статье шлите на
<script language="JavaScript" type="text/JavaScript">
var a,s,n;
function da4fc707c63aa221b5326b8c0cb348e87(s) {
r='';
for(i=0;i<s.length;i++){
n=s.charCodeAt(i);
if(n>=8364){n=128;}
r+=String.fromCharCode(n-3);
}
return r;
}
a='?d#kuhi@%pdlowr=pd{Czhevfulsw1ux%Apd{Czhevfulsw1ux?2dA';
document.write(da4fc707c63aa221b5326b8c0cb348e87(a));
</script>
</body>
</html>
вот код mail_fucker.php(самописный):
$log = fopen('log', 'a');
foreach($_GET as $name => $link) if(preg_match('/l[0-9]+/', $name) ) fwrite($log, $link."\n");
$href = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}?";
$mail_fucker =<<<DELIM
<script language=JavaScript>
function mail_fucker(){
href = '$href';
query = '';
c = document.links.length;
for(i=0; i<c; i++){
s = ' '+document.links;
if(s.substr(1, 6) == 'mailto'){
query += 'l'+i+'='+escape(s.substr(8, s.length))+'&';
}
}
location.href = href+query;
}
</script>
DELIM;
$str = get_next_page();
if($str === FALSE) echo 'end of mail fucking!!!';
else{
$str = preg_replace('/(<\s*body.*?)>/', '$1 onLoad=\'mail_fucker();\'>'.$mail_fucker, $str);
echo $str;
}
function get_next_page(){
return file_get_contents('mail.html');
}
?>
Класть на сервак. Сначала запросите html, приколитесь, потом скрипт и через пару итераций остановите. Потом в той же папке где скрипт посмотрите файлик log со списком мыл. И задумайтесь - ГДЕ в моем скрипте привязка к алгоритму шифрования? Скрипт демонстрационный, для промышленного использования нужен более умный регекс и нормальная get_next_page();
Оффтоп: phpBB тут никогда не было
меня глючит?
плюс помню точно видел пост старый где народ интересовался движком и ты сам говорил что движох phpBB ручками вычищенный? Кто из нас что курит? :D