TGViewer
Кавычка Кавычка @webpwn · 15.9K subscribers
Post #244 20.8K
Знали ли вы, что второй аргумент fopen (тот самый, который w или, например, r+) умеет исполнять код? Ну почти.

Оказывается, glibc поддерживает синтаксис для указания кодировок, это можно сделать вот так: fopen("file", "w,ccs=<encoding>"). Сами кодировки подгружаются динамически, функции для работы с каждой кодировкой лежат в отдельном .so-файле. Конфиг, содержащий пути к этим библиотекам называется gconv-modules и обычно лежит где-нибудь в /usr/lib/x86_64-linux-gnu/gconv/, но если переопределить переменную окружения GCONV_PATH, то он будет браться из указанной директории. И path traversal, конечно, в нем полностью поддерживается.

В итоге, если вы можете для чужого приложения

1) переопределить переменную окружения GCONV_PATH
2) куда-нибудь записать свою so-шку и файл gconv-modules
3) дописать ,css=payload во второй аргумент fopen

то вы получите выполнение кода.

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

Кстати, эта же система кодировок-модулей используется и в iconv (и утилите, и библиотеке), поэтому трюк можно использовать для обхода disabled_functions в php. Правда, для того, чтобы задать GCONV_PATH должен быть разрешен putenv, а это уже само по себе небезопасно.

Подробности можно прочитать в посте японца, который это заметил.
More from @webpwn
  1. Oct 17, 2024Многие юзают инфу о выданных сертификатах, чтобы узнать поддомены компании, например в crt…
  2. Aug 1, 2024Что опасного в публичном отображении phpinfo? Сдаешь такой в багбаунти, а тебе говорят, ну…
  3. May 16, 2024#owncloud Для owncloud была классная CVE-2023-49105 Сплоет реализован в качестве прокси, к…
  4. May 14, 2024#OSINT #SSH Вспомнил тут про старый трюк, можно тестануть: ssh whoami.filippo.io Короч, ко…
  5. Apr 12, 2024В дискуссии спросили, ну чего опасного в том, что есть XSS на поддомене без юзеров. Допуст…
  6. Apr 3, 2024Короч, чтоб тебя всякие shodan, censys и прочие умники не сканировали, а еще и не попадать…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →