Старый 15.03.2013, 02:29   #1
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию PHP escapeshellarg bypass 0day :)

Очевидная и действенная мера.
В РНР нет способа штатными средствами защититься от атак RCE через вызов exec консольных утилит, которые парсят параметры.
То есть escapeshellarg корректно делает из строки один консольный параметр, но не мешает этому параметру быть ключом команды!

Вот глядите:
unzip a.zip -d123
unzip a.zip -d 123
unzip a.zip '-d123'

unzip умеет брать путь распаковки и из 1 и из двух аргументов, если первый равен -d.

Теперь код распаковщика с уязвимостью:

Код:
$cmd="unzip -nj ".escapeshellarg($_GET['name'])." *.ext -d /tmp";
казалось бы, все хорошо экранируется, но реально подумайте что будет делать сейчас unzip:
Код:
unzip -nj '-d/var/www/' *.ext -d /tmp
он будет распаковывать *.ext как ZIP-архивы и класть результаты распаковки по пути /var/www
причем из архивов будут браться только файлы, перечисленные а аргументах, то есть "-d" "/tmp" и все что развернет шелл из *.ext кроме первого файла - он будет самим именем архива.

Все это потому, что после того как unzip увидит существующий файл (первый из *.ext), все остальное он рассматривает как файлы для извлечения.

Таким образом, мы получаем неплохой вектор атаки На деле можно прокинуть симлинк на файл, который хочется прочитать в /var/www, например.

Думаю, про ограничения этой атаки говорить не приходиться, как и про то, где она может пригодиться.

Пока пишется блогпост можно использовать на свое усмотрение
__________________
The Sucks Origin Policy

Последний раз редактировалось d0znpp; 15.03.2013 в 12:11..
d0znpp вне форума   Ответить с цитированием
Старый 24.03.2013, 22:29   #2
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

можно спускать, блогпост готов
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot