RCE
[분석 일기] - EJS, Server Side Template Injection to RCE (CVE-2022-29078)
[분석 일기] - EJS, Server Side Template Injection to RCE (CVE-2022-29078)
2022.07.21🚪 Intro 2022년 4월달에 nodejs 의 모듈인 EJS에서 RCE 취약점이 발견되었습니다. 맨 아래 Reference 에 있는 링크를 참고하여 어떻게 EJS에서 RCE가 가능한지를 분석해 봤습니다. 취약한 EJS 버전은 `3.1.6` 이하 버전입니다. 해당 취약점은 `3.1.7`에서 패치 되었습니다. 💡Analysis 환경 세팅을 위해 아래와 같은 명령어로 취약한 EJS 버전을 설치해 줍니다. npm install ejs@3.1.6 이후 간단한 코드를 작성하여 서버를 시작해 줍니다. // index.js const express = require("express"); const app = express(); app.set("view engine", "ejs") app.get("/", (req, ..
[WACon 2022] ppower write up
[WACon 2022] ppower write up
2022.06.28🚪 Intro 웹 3번째 문제 ppower 입니다. 이 문제는 `prototype pollution` 을 통한 RCE를 하는 문제입니다. 💡 Analysis - 코드 분석 /answer 페이지로 GET 방식의 데이터를 전달할 수 있습니다. 이는 `req.query` 에 저장되여 `merge()` 함수를 통해 `r` 변수에 저장되는데, `merge()` 함수는 어떠한 검증없이 merge 하고 있습니다. 전형적인 prototype pollution 공격에 취약한 코드 입니다. 또한, 53번째 줄에서 `config.flagForEveryone` 값이 무조건 false가 아니어야 합니다. 그래야 `sendFlag()` 함수가 실행되죠. `sendFlag()` 함수를 보면, 25번째 줄에서 `childProces..