Обход фильтрации XSS

Discussion in 'Уязвимости' started by RedHazard, 12 Jan 2020.

  1. RedHazard

    RedHazard Member

    Joined:
    17 Apr 2011
    Messages:
    68
    Likes Received:
    12
    Reputations:
    8
    Есть ли вариант обойти вот такой вот фильтр?

    PHP:
    <?php
    if(isset($_GET['act']))
    {
        
    $get $_GET['act'];
        
    $string $get;
        
    $string str_replace("<""&lt;"$string);
        
    $string str_replace(">""&gt;"$string);
        
    #$put = htmlspecialchars($get);
        
    echo $string;
    }
    данный код заменяет данные символы и не дает выводить xss
    upload_2020-1-12_13-37-22.png
     
  2. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    559
    Likes Received:
    1,059
    Reputations:
    356
    Нет.
     
  3. RedHazard

    RedHazard Member

    Joined:
    17 Apr 2011
    Messages:
    68
    Likes Received:
    12
    Reputations:
    8
    Круто чё, значит в такой форме не исполнить не какого кода :)
     
  4. RedHazard

    RedHazard Member

    Joined:
    17 Apr 2011
    Messages:
    68
    Likes Received:
    12
    Reputations:
    8
    xss DOM Based
    Знатоки XSS подскажите, как можно завести такую вот приблуду.
    на странице , скрипт подтягивает из куки параметр partner_id в переменную -> site_id и записывает это все в ссылку.
    я создаю куки параметр , и вписывают туда payload => ["><script>alert("XSS")</script><]
    Обновляю страничку и вижу:
    upload_2020-1-18_19-10-54.png

    Как мне это все дело провернуть с пользователями сайта?

    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+'&amp;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&amp;reg=1" class="registration_button"><img src="/www/images/1x1.gif" alt="Registration" /></a>');
          }
    </script>
    
    думал как то с помощью js создать ссылку, в которой устанавливался бы пользователю параметр куки с пайлоадом, и потом у него исполнялся бы код
    но хз, реально ли это.
     
  5. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    559
    Likes Received:
    1,059
    Reputations:
    356
    В такой нет, стоит параметру попасть в атрибут, XSS будет.

    Нельзя установить куки для другого домена.

    Найти XSS на сабдомене и установить куки для домена верхнего уровня, которые будут валидны для всех уровней. Так же, одним из универсальных методов, в подобных случаях, является HTTP Response splitting aka CRLF injection, которым можно выставить куки, добавив дополнительные строки в заголовок (Set-Cookie). Проблема его найти, если вообще он есть, к примеру PHP защищён от подобного рода атак. В качестве другого варианта, можно попробовать передать этот параметр в GET/POST, возможно он рефлектится не только из COOKIE. Дальнейшие возможные варианты, описывать не имеет смысла, так как они будут сильно завязаны на конкретной цели.
     
    fandor9, RedHazard and ms13 like this.
Loading...