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 이후의 문자가 무시되므로 다운로드가 됩니다.
'Wargame | CTF > WebHacking' 카테고리의 다른 글
Juice Shop - Easter Egg Tier 1(★★★★) 풀이 (0) | 2019.02.21 |
---|---|
Juice Shop - Product Tampering(★★★) 풀이 (0) | 2019.02.21 |
Juice Shop - Basket Access Tier 2(★★★) 풀이 (0) | 2019.02.20 |
Juice Shop - XXE Tier 1(★★★) 풀이 (0) | 2019.02.20 |
Juice Shop - XSS Tier3(★★★) 풀이 (0) | 2019.02.20 |