project 5

CVE-2025-27415 1 day 취약점 분석

취약점>=3.0.0nuxthttp://mysite.com/?/_payload.json과 같이 쿼리 뒤에 _payload.json이 붙은 경로의 캐시 키가 http://mysite.com/로만 구성되어 다른 사용자가 http://mysite.com/에 요청을 보낼 때 캐시가 반환되어 정상적인 응답이 아닌 http://mysite.com/?/_payload.json의 응답이 반환되게 되는 취약점이다. 시나리오1. http://mysite.com/?/_payload.json에 요청2. CDN에 url query를 제외한 경로로 캐시키 생성 EX) http.mysite.com./3. http://mysite.com/에 요청4. CDN에 http://mysite.com/ 경로에 대한 캐시가 생성되어 있으므로 캐시..

project 2025.07.08

CVE-2025-26923

첫 CVE 발급받기까지의 과정 방학 프로젝트로 CVE를 얻기 위해 patchstack에서 WordPress 플러그인에서 취약점을 찾기로 했다. 처음에는 감을 아예 못잡아서 여러 플러그인들의 코드를 계속 읽고 Docker로 WordPress를 빌드해서 테스트 해보고 블로그들을 읽으며 다른 사람들은 어떻게 취약점을 찾았는지 봤다. 몇주간 계속 그렇게 하다가 일정을 관리하는 event post라는 플러그인을 발견하고 여러 기능들이 있길래 분석해보기로 했다. 코드를 계속 읽어보니 POST로 사용자 입력을 받는데 필터링이나 escape를 거치지 않고 address 태그의 속성에 그대로 넣는 변수가 보였다. public function print_location($post=null, $context='') { $..

project 2025.07.02

CVE-2024-34343 1 day 취약점 분석

이후에 할 PoC가 공개되지 않은 다른 1 day 취약점을 분석하기 위해 먼저 PoC가 공개되어 있는 취약점을 분석하며 Nuxt.js의 codebase를 분석하고 vscode에서 동적 디버깅을 하는 방법을 익힌다.취약점 설명CVE-2024-34343은 Nuxt.js에서 잘못된 URL 파싱으로 인해 XSS가 터지는 취약점이다. navigateTo() 함수 내부에서 ufo 모듈의 parseURL() 함수와 isScriptProtocol() 함수가 형식이 맞지 않는 프로토콜에 대해서 검사를 잘못하는 것 때문에 java\nscript:과 같이 중간에 공백을 넣으면 스크립트를 실행할 수 있는 프로토콜 우회가 된다. 이 취약점이 분명 3.12.4 에서 발생한다고 나와 있는데 3.12.0 버전까지도 패치가 되어있다...

project 2025.07.02

Nodejs로 게시판을 만들면서 찾아봤던 것들[1]

ejs 사용하기ejs 문법 주의점 이런 괄호의 열고 닫음은 반드시 한 줄에서 일어나야 됨ex)         views 폴더 안에 ejs 파일들을 생성하고  사용할 때는 app.set("view engine", "ejs"); views 폴더의 경로가 바뀌었을 때(다른 폴더 안에 views 폴더가 있을 때)는 경로를 지정해 줘야된다app.set('views', path.join(__dirname, '/public/views')); path.join을 사용하려면 path 모듈 설치 res.render를 통해 ejs 파일 반환, 을 통해 변수를 보여줄 때는 json 형식으로 변수에 값 넣어주기router.get('/', (req, res) => { res.render('index', {name: 'js'..

project 2024.11.05