본문 바로가기
Web/Webhacking.kr

Webhacking.kr Challenge old-42 문제 풀이

by jh117jh 2023. 7. 3.
728x90

이번에 풀 문제는 42번!

 

이번 문제는 되게 수월하게 풀렸다.

 

문제에 들어가면 표와 함께 test.txt, flag.docx 파일의 다운로드 링크가 있다.

 

눌러보면 test.txt는 다운이 되고 flag.docx는 접근 거부 알림이 나타난다.

 

개발자모드로 코드를 보면

test.txt는 링크가 있는 반면 flag.docx는 스크립트 코드가 있다.

 

아마 flag.docx를 다운로드하면 안에 flag값이 있어 문제가 풀리는 것 같다.

 

우선 text.txt를 확인해 보면

여러 문자들이 써있어서 id값인가? 하고 어디 입력하면 flag 다운링크가 나타나나? 고민하며 코드를 읽어보던 중

 

test.txt 다운 링크를 보니 링크 마지막에 =가 있는 것을 봤다.

 

이전 문제들을 풀면서 끝에 =이 있는 게 base64 인코딩의 특징이라고 다룬 적이 있는데

바로 디코딩을 해보니

링크가 바로 text.txt를 base64로 인코딩한 것인걸 알 수 있다.

 

그럼 flag.docx의 링크는 flag.docx를 base64로 인코딩한 링크 아닐까?

 

확인을 위해 ?down=ZmxhZy5kb2N4로 이동한 결과

 

flag.docx가 다운되는 걸 확인할 수 있다.

 

파일을 열어보면 

flag값이 존재하는 걸 볼 수 있다.

 

 

https://jh-hack.tistory.com/56

 

[개념정리] Base64

여러 문제들을 풀면서 base64 인코딩이 많이 언급되어 정리하려 한다. Base64 base64란 이진 데이터 (Binary data)를 ASCII 문자로 이루어진 텍스트로 변환시키는 인코딩이다. 위에 표를 보면 마지막 padding

jh-hack.tistory.com

base64에 좀 더 자세히 알고싶으신 분은 참고하시기 바란다

728x90