nodejs express routing case sensitive options
글 작성자: Universe7202
최근 CTF에서 nodejs express 문제가 나왔다.
express에서 routing 기능이 있는데, 선택 옵션을 추가할 수 있다는 걸 처음 알았다.
express Docs 내용 중, 아래 사진을 보면, Router에 대한 설명을 적어놓았다.
표에서 속성에 `caseSensitive` 라는 옵션이 있고, 만약 추가하지 않는다면 기본값으로 `대소문자를 구문하지 않고, /Foo와 /foo는 같은 경로로 해석한다.` 라고 되어 있다.
그래서 테스트를 위해 다음과 같이 코드를 작성했다.
/* app.js */
const express = require("express");
const app = express();
const port = 39012;
const test_router = require("./router/test");
/* 서버 시작 */
app.listen(port, () => {
console.log(`Server Running :${port}`);
})
/* /router/test.js */
const express = require("express");
const router = express.Router({caseSensitive: true});
router.get("/test", (req, res) => {
res.send("asdf");
})
module.exports = router;
`/router/test.js` 파일을 보면 `express.Router({caseSensitive: ture})` 라고 Router 안에 옵션을 추가한 것을 볼 수 있다.
이렇게 설정을 하게 되면, URL을 대소문자 구분하여 처리하게 된다.
반대로, 옵션을 추가하지 않으면 `/test` 와 `/TEST` 는 정상적인 요청으로 받아드려 같은 응답을 하게 된다.
'🔒Security' 카테고리의 다른 글
분석 일기 - php dynamic variable (0) | 2022.04.03 |
---|---|
Foobar CTF 2022 writeup (0) | 2022.03.06 |
java URL class를 이용한 내부 파일 읽기 (0) | 2022.03.02 |
format string 을 이용한 php sprintf 버그 (0) | 2022.02.04 |
Log4j 취약점(CVE-2021-44228) Log4Shell 발생 원인 및 실습 (0) | 2021.12.24 |
댓글
이 글 공유하기
다른 글
-
분석 일기 - php dynamic variable
분석 일기 - php dynamic variable
2022.04.03 -
Foobar CTF 2022 writeup
Foobar CTF 2022 writeup
2022.03.06 -
java URL class를 이용한 내부 파일 읽기
java URL class를 이용한 내부 파일 읽기
2022.03.02 -
format string 을 이용한 php sprintf 버그
format string 을 이용한 php sprintf 버그
2022.02.04