Juice Shop - Forgotten Sales Backup(★★★) 풀이
Wargame | CTF/WebHacking

Juice Shop - Forgotten Sales Backup(★★★) 풀이

bak 확장자를 가진 파일에 접근하라는 문제 입니다. 

그냥 /ftp 확장자에서 기밀문서를 열람했던 문제와 같이 열려고 하면 .md 와 .pdf를 가진 파일만 허용되었다고 하면서 파일을 열 수가 없습니다. 여기서 이용해야 할 방법은 널바이트 인젝션(NULL Byte Injection) 입니다.

C언어에서 문자열의 끝을 나타내는 0x00(NULL) 바이트를 이용하는 것인데요. 내부적으로 C API를 이용하게 되면 0x00 을 문자열의 끝으로 인식하게 되어 0x00 이후의 문자열은 무시됩니다.

HTTP 요청으로 /ftp/coupons_2013.md.bak%2500.pdf 를 보냅니다 여기서 %25는 %의 URL 인코딩입니다. 00은 00입니다. 프론트 엔드단에서는 %2500이 그대로 문자열로 인식되어서 뒤의 .pdf가 확장자로 인식되고, 백엔드 단에서는 0x00 이후의 문자가 무시되므로 다운로드가 됩니다.