URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 81462
[ Назад ]

Исходное сообщение
"Новый метод атаки на обратный прокси Apache"

Отправлено opennews , 25-Ноя-11 15:26 
В начале октября в http-сервере Apache была обнаружена уязвимость (http://www.opennet.me/opennews/art.shtml?num=31960), позволяющая при работе mod_proxy в режиме обратного прокси отправить запрос из внешней сети к внутренним серверам в демилитаризованной зоне (DMZ), при наличии определенных rewrite-правил в конфигурации сервера. Разработчики проекта выпустили патч для устранения проблемы, но как оказалось (https://community.qualys.com/blogs/securitylabs/2011/11/23/a...) он бесполезен при использовании обходных путей для совершения атаки.


Если в конфигурации сервера, есть примерно такое правило (вместо RewriteRule может быть ProxyPassMatch):

<font color="#461b7e">
   RewriteRule ^(.*) http://www.example.com$1 [P]
</font>

Атакующий может отправить запросы (символ "@" будет воспринят как разделитель для параметров аутентификации):


<font color="#461b7e">
   GET @localhost::8880 HTTP/1.0\r\n\r\n
   GET qualys:@qqq.qq.example.com HTTP/1.0\r\n\...

URL: https://community.qualys.com/blogs/securitylabs/2011/11/23/a...
Новость: http://www.opennet.me/opennews/art.shtml?num=32392


Содержание

Сообщения в этом обсуждении
"Новый метод атаки на обратный прокси Apache"
Отправлено Pro , 25-Ноя-11 15:26 
Всегда говорил что писать рерайты это тебе не сиськи мять.

"Новый метод атаки на обратный прокси Apache"
Отправлено Аноним , 25-Ноя-11 15:30 
Их кроме автора mod_rewrite никто писать толком и не умеет.

"Новый метод атаки на обратный прокси Apache"
Отправлено Xasd , 26-Ноя-11 21:07 
ну регулярные выражения -- они и в африке регулярные выражения:

    http://xkcd.ru/208/

:-)

# p.s.: когда их пишешь -- то почти всегда потом оказывается что "а <вот-про-это> я подзабыл" :-)


"Новый метод атаки на обратный прокси Apache"
Отправлено антоним , 25-Ноя-11 16:17 
GET qualys:@qqq.qq.example.com HTTP/1.0\r\n\r\n

... запрос будет транслирован ... в "http://www.example.com@qqq.qq.example.com", т.е. вместо сервера www.example.com будет осуществлено обращение по сетевому порту 8880 (Tomcat) и к серверу qqq.qq.example.com.

объясните каким образом тут появилось 8880???


"Новый метод атаки на обратный прокси Apache"
Отправлено pavlinux , 25-Ноя-11 16:23 
Прочитать 20 раз: символ "@" будет воспринят как разделитель для параметров

Original:


Access to internal web server can be possible by using a crafted request like:
GET @localhost::8880 HTTP/1.0\r\n\r\n

The screenshot below shows that a basic query with the crafted request
to the target results in access to the page at 8880.

https://dum21w3618van.cloudfront.net/images/apache/fig2b.png

Upon receiving the request, Apache translates the URL by applying the rewrite rules.

The "uri" extracted is ":8880" which gets appended, resulting in the URL

http://10.40.2.159:8880

The "uri" extracted in this case is everything following the first
occurrence of the colon (:) in the request. Since the crafted request
has 2 colons (::), the second colon is treated as being part of the URI.  



"Новый метод атаки на обратный прокси Apache"
Отправлено антоним , 25-Ноя-11 18:41 
Атакующий может отправить запросы (символ "@" будет воспринят как разделитель для параметров аутентификации):

   GET @localhost::8880 HTTP/1.0\r\n\r\n
   GET qualys:@qqq.qq.example.com HTTP/1.0\r\n\r\n

В первом случае запрос будет транслирован в "http://localhost::8880", а во втором в "http://www.example.com@qqq.qq.example.com", т.е. вместо сервера www.example.com будет осуществлено обращение по сетевому порту 8880 (Tomcat) и к серверу qqq.qq.example.com.

Вопрос откуда во _втором_ случае появилось 8880, откуда оно в первом и так очевидно.
Хотя, пока писал, дошло что это предложение в новости составлено так коряво. Потому что "т.е."  относится к обоим случаям сразу, а не именно ко второму (...., (а ....., т.е.)). Сравните с тем что в действительности имелось в виду:


В первом случае запрос будет транслирован в "http://localhost::8880", т.е. вместо сервера www.example.com будет осуществлено обращение по сетевому порту 8880 (Tomcat), а во втором в "http://www.example.com@qqq.qq.example.com", т.е. вместо сервера www.example.com будет осуществлено обращение к серверу qqq.qq.example.com.


"Новый метод атаки на обратный прокси Apache"
Отправлено Аноним , 25-Ноя-11 17:08 

> объясните каким образом тут появилось 8880???

Там два отдельных примера, с портом относится к запросу
GET @localhost::8880 HTTP/1.0\r\n\r\n

который будет преобразован в http://www.example.com@localhost::8880
часть www.example.com будет воспринята как параметры аутентификации.


"Новый метод атаки на обратный прокси Apache"
Отправлено pavlinux , 25-Ноя-11 16:22 
В нормальных языках конкатенацию надо явно указывать.



"Новый метод атаки на обратный прокси Apache"
Отправлено Аноним , 25-Ноя-11 18:30 
> В нормальных языках конкатенацию надо явно указывать.

Вот скажи: "блаблабла$1" - это явное указание конкатенации или нет?


"Новый метод атаки на обратный прокси Apache"
Отправлено pavlinux , 25-Ноя-11 19:01 
>> В нормальных языках конкатенацию надо явно указывать.
> Вот скажи: "блаблабла$1" - это явное указание конкатенации или нет?

Давай от обратного, как мне вывести URI содержащий знака $  


"Новый метод атаки на обратный прокси Apache"
Отправлено Аноним , 26-Ноя-11 11:36 
куда вывести, зачем вывести и какие проблемы есть в ури со знаком: '$'?

"Новый метод атаки на обратный прокси Apache"
Отправлено Xasd , 26-Ноя-11 20:38 
почему запросы начинают именно с

   RewriteRule ^(.*) ...

а не с

   RewriteRule ^\/(.*) ...

???

малоли какаи там первые символы в начале строки... и поидее мы должны *хотеть* *только* те строки которые начинаются на "/"