annyoung

js source map file 본문

모의해킹

js source map file

nopsled 2022. 12. 2. 15:24

모의해킹하다 보면 가끔 자바스크립트 source map 파일을 볼 수 있다.

 

Vue.js나 React에서 빌드할때 Source map 파일을 생성해줘서 난독화 이전의 원본 코드와 연결시켜주는 역할을 한다.

참고: https://24hours-beginner.tistory.com/253

 

[React] 소스 맵(Source Map)

sourcemap 이란? 소스 맵(Source Map)이란 배포용으로 빌드한 파일과 원본 파일을 서로 연결시켜주는 기능입니다. 보통 서버에 배포를 할 때 성능 최적화를 위해 HTML, CSS, JS와 같은 웹 자원들을 압축합

24hours-beginner.tistory.com

 

이러한 소스맵 파일이 왜 중요하냐면 Source map 파일이 매핑되는 경우 공격자가 웹 페이지의 원본 코드를 확인할 수 있기 때문에 더욱 빠르고 민감한 내용들을 확인할 수 있다는 점이다. 심지어 개발자가 무심코 남겨놓은 주석까지도 복구가 되기 때문에 공격자 입장에서는 API path나 환경 변수 등 민감한 내용들을 빠르게 수집할 수 있다.

 

Source map이 매핑된 화면

위와 같이 main js에 가장 하단에 //# sourceMappingURL=main.7f1e3b68.chunk.js.map처럼 선언되어 있는 경우 크롬에선 자동으로 매핑해서 Sources 탭에서 주황색 디렉토리로 보여준다.

 

원본 소스코드가 노출되는 화면

Source 파일이 매핑되면 위와 같이 민감한 내용들을 수집할 수 있다.

 

Sources 탭에서 확인하기 힘들다면 sourcemapper(링크)를 이용해서 cli로 다운받아 사용할 수 있다. 다운받는 이유는 grep이나 egrep과 같은 리눅스 명령어를 이용해 파일안에서 admin, password, 관리, //와 같은 민감한 단어들만 골라서 뽑아서 더 빠르게 분석하기 위함이다.

 

GitHub - denandz/sourcemapper: Extract JavaScript source trees from Sourcemap files

Extract JavaScript source trees from Sourcemap files - GitHub - denandz/sourcemapper: Extract JavaScript source trees from Sourcemap files

github.com

 

'모의해킹' 카테고리의 다른 글

source map 파일 강제 연동  (0) 2022.12.14
SSRF port scan  (0) 2022.12.09
firebase exploit with firebase keys  (0) 2022.12.02
모의해킹 시 해시(hash)에 대해  (0) 2022.11.22
Deeplink webview hijacking 취약점 분석  (0) 2022.09.21
Comments