TGViewer
Кавычка Кавычка @webpwn · 15.9K subscribers
Post #243 17.5K
Если вы когда-нибудь сталкивались с SSTI в Jinja2, то вы наверняка гуглили RCE payload и находили что-то монструозное вроде этого:

{{''.__class__.mro()[1].__subclasses__()[46]('touch /tmp/rce',shell=True)}}

Этот пейлоад достает класс Popen по индексу из наследников object и исполняет команду. Он не очень-то удобен: индекс Popen (который в примере равен 46) различается от сетапа к сетапу, поэтому его нужно подбирать.

К счастью, всё можно сделать гораздо проще:

{{lipsum.__globals__["__builtins__"].eval("<python code>")}}

Здесь мы используем встроенную в Jinja функцию lipsum (она возвращает текст "Lorem ipsum dolor..."), но вместо того чтобы вызывать её, мы через __globals__ достаем её глобальные переменные — а в них нас ждет модуль __builtins__ с функцией eval.

Вообще, при эксплуатации SSTI-подобных уязвимостей в питоне полезно помнить о существовании свойства __globals__ у всех питоновских функций (кроме встроенных). Если в вашем окружении нет функций, а только объекты — не беда, найдите у него любой метод и возьмите свойство __func__. Вы получите unbound функцию, у которой уже будет __globals__.
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 →