Есть ли вариант обойти вот такой вот фильтр? PHP: <?phpif(isset($_GET['act'])){ $get = $_GET['act']; $string = $get; $string = str_replace("<", "<", $string); $string = str_replace(">", ">", $string); #$put = htmlspecialchars($get); echo $string;} данный код заменяет данные символы и не дает выводить xss
xss DOM Based Знатоки XSS подскажите, как можно завести такую вот приблуду. на странице , скрипт подтягивает из куки параметр partner_id в переменную -> site_id и записывает это все в ссылку. я создаю куки параметр , и вписывают туда payload => ["><script>alert("XSS")</script><] Обновляю страничку и вижу: Spoiler: скрин Как мне это все дело провернуть с пользователями сайта? HTML: <script type="text/javascript"> var site_id = GetCookie('partner_id'); if ( site_id ) { document.write('<a href="//site.com/promo/?site_id='+site_id+'&reg=1" class="registration_button"><img src="/www/images/1x1.gif" alt="Registration" /></a>'); } else { document.write('<a href="//site.com/?site_id=1_1_1&reg=1" class="registration_button"><img src="/www/images/1x1.gif" alt="Registration" /></a>'); } </script> думал как то с помощью js создать ссылку, в которой устанавливался бы пользователю параметр куки с пайлоадом, и потом у него исполнялся бы код но хз, реально ли это.
В такой нет, стоит параметру попасть в атрибут, XSS будет. Нельзя установить куки для другого домена. Найти XSS на сабдомене и установить куки для домена верхнего уровня, которые будут валидны для всех уровней. Так же, одним из универсальных методов, в подобных случаях, является HTTP Response splitting aka CRLF injection, которым можно выставить куки, добавив дополнительные строки в заголовок (Set-Cookie). Проблема его найти, если вообще он есть, к примеру PHP защищён от подобного рода атак. В качестве другого варианта, можно попробовать передать этот параметр в GET/POST, возможно он рефлектится не только из COOKIE. Дальнейшие возможные варианты, описывать не имеет смысла, так как они будут сильно завязаны на конкретной цели.