RCE with PostgreSQL Languages
PostgreSQL Languages
База даних PostgreSQL, до якої ви отримали доступ, може мати різні встановлені мови сценаріїв, які ви могли б використати для виконання довільного коду.
Ви можете запустити їх:
Більшість мов сценаріїв, які ви можете встановити в PostgreSQL, мають 2 варіанти: достовірний та недостовірний. Недостовірний буде мати назву, що закінчується на "u" і буде версією, яка дозволить вам виконувати код та використовувати інші цікаві функції. Це мови, які, якщо встановлені, є цікавими:
plpythonu
plpython3u
plperlu
pljavaU
plrubyu
... (будь-яка інша мова програмування, що використовує ненадійну версію)
Якщо ви виявите, що цікава мова встановлена, але недостовірна для PostgreSQL (lanpltrusted
є false
), ви можете спробувати достовірити її за допомогою наступного рядка, щоб жодні обмеження не застосовувалися з боку PostgreSQL:
Якщо ви не бачите мову, ви можете спробувати завантажити її з (вам потрібно бути суперадміністратором):
Зверніть увагу, що можливо скомпілювати безпечні версії як "незахищені". Перегляньте це для прикладу. Тому завжди варто спробувати, чи можете ви виконати код, навіть якщо ви знайшли лише встановлену достовірну версію.
plpythonu/plpython3u
pgSQL
Перевірте наступну сторінку:
PL/pgSQL Password BruteforceC
Перевірте наступну сторінку:
RCE with PostgreSQL ExtensionsLast updated