The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость в unrar, позволяющая перезаписать файлы при распаковке архива, opennews (??), 15-Май-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


52. "Уязвимость в unrar, позволяющая перезаписать файлы при распа..."  +/
Сообщение от Аноним (-), 15-Май-22, 15:49 
> А почему нельзя сделать проверку куда мы распаковываем и что это нормальное место?

Потому что первое что прихожит кодеру в бошку это взять имя файла (и возможно кусок пути, если сохранено в архиве) - и записать это как есть. Но, как видим, на specially crafted content с этим есть довольно забавные нюансы. Когда это не архиватор из ФС сгенерил, а хитрозадый хакер в хидер прописал ../../../../../etc/passwd - потуга скормить такое имя сисколам ведет к вполне ожидаемым результатам.

ЧСХ это не очень удачная семантика операций ФС, но во первых, она и легитимно используется, а во вторых - все ее варианты обхода заткнуть не так уж и просто. Можете посмотреть как например вебсервера так имеют, особенно новоделы.

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

64. "Уязвимость в unrar, позволяющая перезаписать файлы при распа..."  +/
Сообщение от Аноним (48), 15-Май-22, 18:49 
> ../../../../../etc/passwd - потуга скормить такое имя сисколам ведет к вполне ожидаемым результатам.

Ага. Insufficient privilegies.
А вот в ~/.bashrc уже писать можно.

> все ее варианты обхода заткнуть не так уж и просто

Вычислять настоящий путь аргументов и всегда работать только с настоящими путями?
$ man realpath

Ответить | Правка | Наверх | Cообщить модератору

66. "Уязвимость в unrar, позволяющая перезаписать файлы при распа..."  +/
Сообщение от Аноним (48), 15-Май-22, 18:50 
$ man 3 realpath
Ответить | Правка | Наверх | Cообщить модератору

67. "Уязвимость в unrar, позволяющая перезаписать файлы при распа..."  +/
Сообщение от Аноним (-), 15-Май-22, 19:11 
> Ага. Insufficient privilegies.

Это смотря кто что и куда распаковывал/записывал и какие у него права были.

> А вот в ~/.bashrc уже писать можно.

Да много куда и чего можно. Вопрос фантазии.

> Вычислять настоящий путь аргументов и всегда работать только с настоящими путями?

А вот это уже не первое что кодерам в голову приходит. Есть еще способ - можно зарубать последовательности вида ../ в путях из хидеров и отказываться это декомпрессить: при легитимном использовании архивера таких вещей в хидере архива быть просто не должно и их наличие довольно надежный индикатор того что это попытка поиметь а не что-нибудь еще.

> $ man realpath

Так это вроде отдельная прога, толку с нее в архиваторе...

Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

99. "Уязвимость в unrar, позволяющая перезаписать файлы при распа..."  +/
Сообщение от Аноним (99), 16-Май-22, 14:03 
Есть прога (можно использовать в shell), а есть функция из glibc:
> char *realpath(const char *restrict path, char *restrict resolved_path);

Я потому и добавил тройку к ману.

Ответить | Правка | Наверх | Cообщить модератору

118. "Уязвимость в unrar, позволяющая перезаписать файлы при распа..."  +/
Сообщение от Аноним (-), 16-Май-22, 22:33 
> Я потому и добавил тройку к ману.

"Я буду рефрешить каменты до написания ответа. Я буду рефрешить каменты до написания ответа. Я буду рефрешить каменты до написания ответа...."

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру