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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
element-ics-javascript — Element Web v1.12.29 - 높음 - 원격 - XSS - Univention ICS navigation.json 링크가 javascript: 메뉴 href가 됨 | Kitploit
도구/GitHubGitHub/abraxas/element-ics-javascript
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubabraxas/element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - 높음 - 원격 - XSS - Univention ICS navigation.json 링크가 javascript: 메뉴 href가 됨

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - element-ics-javascript

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - Element / New Vector

분류: XSS 도달 범위: 원격

Univention 배너 모듈은 ICS navigation.json을 가져오고, 각 항목의 link를 스킴 검사 없이 z.string()으로 받아들이며, Menu.tsx는 그 문자열을 스타일이 적용된 <a href>에 넣습니다. 정적 메뉴 구성은 link_url에 z.url()을 사용합니다. ICS 경로는 그렇지 않습니다. 같은 핀의 URL 미리보기는 이미 javascript:를 거부합니다(previewFromBundle, GHSA-9r5h). 이것은 기본 app.element.io가 아닙니다. menu.type이 univention인 modules/banner와 배포가 신뢰하는 ICS가 필요합니다.

해당 navigation.json을 변경할 수 있는 사람은 누구나 javascript: 또는 data:를 심을 수 있습니다. 로그인한 사용자가 배너 메뉴를 열고 해당 항목을 클릭하면 Element 오리진에서 스크립트가 실행됩니다.

ID아직 CVE 없음
CWECWE-79 / CWE-20
CVSSMedium: 6.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
제품Element Web
영향받는 버전v1.12.29 태그 v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). 조건: Univention 배너 + ICS.
인증ICS 운영자 / ICS 침해. 피해자는 메뉴 항목을 클릭하는 로그인한 사용자.
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

Element 배포가 신뢰하는 ICS를 침해하거나 운영합니다. navigation.json에 javascript:(또는 data:) URL을 넣습니다. 로그인한 사용자가 배너 메뉴를 열고 해당 항목을 클릭할 때까지 기다립니다. 이것은 Matrix 계정 탈취입니다: 액세스 토큰, 암호화 저장소, 세션. OS RCE는 아닙니다. 데스크톱은 여전히 nodeIntegration이 꺼져 있고 샌드박스가 있습니다.

권한방법 / 싱크정찰 / 무결성 / 가용성랩 입증 또는 추론
Element 오리진에서 배너 메뉴 <a href="javascript:…"> 렌더링ICS navigation.json entries[].link -> navigationToConfig link_url -> Menu.tsx LinkButton href={link.link_url}메뉴 DOM의 무결성랩 입증. 모의 ICS 링크 javascript:ELEMENT-ICS-JAVASCRIPT-WITNESS가 해당 href가 됨. https 포털 링크는 여전히 렌더링됨
클릭 후 Element 오리진으로 스크립트 실행피해자가 메뉴 항목 클릭 (UI:R)무결성href 싱크로부터 추론. 랩은 브라우저 클릭을 유도하거나 실제 Matrix 토큰을 탈취하지 않음
Matrix 액세스 토큰 / 암호화 저장소 읽기 (계정 탈취)오리진 내 스크립트 대 localStorage / IndexedDB 세션정찰 / 무결성Element 오리진 XSS로부터 추론. 랩 증거는 href 문자열
Element 탭을 피싱 페이지로 최상위 이동SilentLogin.tsx 샌드박스 없는 iframe src={new URL("silent", icsUrl)}무결성랩에서 iframe에 sandbox가 없음을 입증. 최상위 이동은 실행되지 않음
data:를 통한 동일한 심기z.string()이 모든 스킴을 허용무결성추론. 랩은 javascript:만 심음

이 핀에서 닫힌 항목: 기본 app.element.io (Univention 배너 없음). OS RCE / LPE (Desktop nodeIntegration: false, 샌드박스, contextIsolation). Timeline HTML XSS. URL 미리보기 javascript: (GHSA-9r5h previewFromBundle은 http:/https:를 요구). HTML 내보내기 XSS (GHSA-wqmv). 위젯 미디어 토큰 (GHSA-3jm3). 정적 배너 link_url: z.url()은 운영자 구성이지 ICS가 아님; z.url()은 또한 http/https 허용 목록이 아님.

같은 핀의 나머지: fragment guest wipe, vector: Windows 드라이브 문자.

발견 방법

2026년 9월 22일 GitHub 릴리스 이후 Element Web v1.12.29를 핀했습니다. URL 미리보기는 이미 http:/https:를 어렵게 배웠습니다. Univention ICS link는 여전히 z.string()입니다. 정적 메뉴 구성은 z.url()을 사용합니다. 가져오기 경로는 그 검사를 거치지 않습니다.

이미 기록된 잘못된 방향: 기본 app.element.io를 피해자로 취급 (Univention은 조건부); z.url()을 스킴 허용 목록으로 취급 (URL 생성자는 javascript:를 허용); 클릭 XSS를 OS RCE로 과장. 리버스 셸. 연극.

랩

핀 함수들의 가젯과 모의 ICS navigation.json. 실제 Element Web 컨테이너가 아닙니다. how=gadget. URL 미리보기 http/https 허용 목록(previewFromBundle)을 적용하면 javascript href가 제거되고 https 포털 링크는 유지되었습니다.

python3 element-ics-javascript-Abraxas-Labs.py

또는

cd lab
./run.sh

오직 http://127.0.0.1:19620만 대상으로 합니다. Compose 프로젝트 element-ics-javascript. 실행 후 스택은 해체됩니다.

SUCCESS element-ics-javascript how=gadget href-scheme=javascript menu-a-javascript=yes allowlist-rejects=yes silent-no-sandbox=yes ELEMENT-ICS-JAVASCRIPT-WITNESS

수정 방법

previewFromBundle이 하는 것과 같은 방식으로 ICS link에 http:와 https:를 허용 목록에 추가하세요. href= 이전에 javascript:, data: 및 기타 스킴을 거부하세요. silent iframe을 샌드박스 처리하세요 (sandbox="" 또는 최소한 allow-top-navigation 없이). z.url()을 스킴 허용 목록으로 취급하지 마세요.

참고 자료

  • github.com/element-hq/element-web 태그 v1.12.29
  • navigation.ts
  • Menu.tsx
  • SilentLogin.tsx
  • 인접 패치됨 (이 href 아님): GHSA-9r5h previewFromBundle
  • 같은 핀: element-fragment-guest · element-vector-drive-letter
  • CWE-79

라이선스

GNU Affero GPL v3.0. LICENSE 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드