Руководство по применению: как обойти XSS-фильтры

Руководство по применению: как обойти XSS-фильтры

Левая Симка

Практически в любом веб-проекте есть уязвимости, и я научу вас использовать это обстоятельство в своих целях. Практических, конечно же.

Как исследовать элемент Site Name

Любое web-приложение работает по принципу кодировки символов «<» и «>». Для начала, нужно выяснить каким образом происходит обработка. Проверку получится обойти, если она происходит на стороне клиента HTML5/Javascript.

Итак, откройте страницу в удобном браузере, правой кнопкой мыши кликните на форме «Site Name». Вы увидите контекстное меню. Для того, чтобы открыть окно с редактированием свойств элементов необходимо выбрать пункт под названием "Inspect Element".

Как удалить все ограничения на стороне клиента

Тут все очень просто. Потребуется всего лишь увеличить значение в поле maxsize, при этом предварительно удалив поле pattern. Итого, мы получаем:

<input type="text" placeholder="Name of site" maxsize=" 100" class="form-control" required="" name="name">

Как удалить код, отвечающий за кодирование символов

С большой вероятностью, символы "<" и ">" обрабатываются при помощи файла ex1.js (Javascript). Первым делом необходимо слегка отредактировать avascript-код на стороне клиента. Для этого предлагаю использовать плагин Web Developer. Удаляем код, который отвечает за кодирование HTML-символов, зайдя во вкладку Sources. Вот что у нас получается:

var siteName = $(".ex1 input[type='text']").val().trim().replace(/</g, "<").replace(/>/g, ">"); var siteURL = $(".ex1 input[type='url']").val().trim().replace(/</g, "<").replace(/>/g, ">");

Как добавить полезную нагрузку

После удаления обработки символов на стороне клиента, в поле Site Name необходимо добавить следующую полезную нагрузку, не забыв нажать на Submit:

<script>alert('Ex1')</script>

Что имеем в сухом остатке? При помощи проведенных манипуляций, мы успешно инжектируем в страницу полезную нагрузку. Защититься от таких атак можно единственным способом: необходимо, чтобы проверка данных пользователя происходила на стороне сервера.

Спасибо за прочтение. Подписывайся на канал Левая Симка, впереди будет много интересного.

Report Page