Тема: YandexBugBounty
Показать сообщение отдельно
Старый 13.03.2014, 10:02   #10
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

LFI [m.market.yandex.ru] (31337 рублей)

Обнаружено было случайно (плагином к Burp для поиска XSS через Request-URI) из-за ошибки при следующем запросе.

http://m.market.yandex.ru// (ошибка есть до сих пор)
Код:
<xscript_invoke_failed error="Evaluate script :
JS ERROR 206: Error: Caught exception 'basic_filebuf::underflow error reading the file' in xscript::js_file::load, line: 6" block="js"/>
            <xscript_invoke_failed error="empty path" block="file" method="invoke"/>
Подключался файл примерно таким образом:
Код:
docroot://${REQUEST_URI}
Благодаря lighttpd следующие запросы не блокировались при разборе и корректно обрабатывались:
Код:
GET /../../../../../xxx HTTP/1.1
Таким образом, с помощью найденной уязвимости можно было:

1) В случае возможности сформировать на сервере валидную XML, содержимое которой мы контроллируем, это бы дало как минимум: все возможности XScript (с ним, к сожалению, не работал и подробно не могу расписать, но это как минимум server-side js, lua, чтение произвольных файлов, произвольные http запросы), XXE

2) Подключение xscript xml, относящихся к другим сайтам на этом сервера.
Что из-за разности docroot (при относительном подключении файлов) давало кучу ошибок, информацию о содержимом этих скриптов и пищу для размышлений

3) Подключение xscript xml, относящихся к этом сайту с получением "сырого" ответа без обработки xslt

4) Чтение первой строчки не xml файлов (через ошибку разбора xml)
Код:
GET /../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash

GET /../../../../../etc/hostname
pepelac09e
5) Брутфорс директорий по разности ответов
Код:
GET /../../../../../var/www
GET /../../../../../var/xxx
BlackFan вне форума   Ответить с цитированием