반응형
https://webhacking.kr/challenge/web-20/
Challenge 42
webhacking.kr
[문제]
[풀이]
flag.docx를 다운로드 받아 열면 Flag를 주는 문제이다.
test.txt를 다운로드 받으면 정상적으로 다운로드 된다.
flag.docx를 다운로드 받으려 하면 Access Denied라는 경고창이 뜬다.
소스코드를 뜯어보자.
<html>
<head>
<title>Challenge 42</title>
</head>
<body>
<table border=1 align=center width=300>
<tr><td width=50>no</td><td>subject</td><td>file</td></tr>
<tr><td>2</td><td>test</td><td>test.txt [<a href=?down=dGVzdC50eHQ=>download</a>]</tr>
<tr><td>1</td><td>read me</td><td>flag.docx [<a href=javascript:alert("Access%20Denied")>download</a>]</td></tr>
</table>
</body>
</html>
위 코드를 보면 a태그로 감싸져있는 Download가 있고
test.txt의 경우 ?down=dGVzdC50eHQ= 경로로 이동하여 다운로드 되는 것을 확인할 수 있다.
flag.docx는 js로 경고창을 띄우는 코드가 적혀있다.
flag.docx가 있는 경로를 적어주면 다운로드가 될 것 같다.
경로는 무작위로 암호화 되어있는데 그 방식이 base64인 걸 확인할 수 있다(암호화 코드 뒤 = 문자는 대부분 base64 인코딩 방식이다.)
디코딩하여 문자열을 확인하면
test.txt인 걸 확인할 수 있다.
그렇다면 flag.docx를 base64로 인코딩하여 경로를 지정하면 파일이 다운로드 된다.
flag.docx를 암호화 하면 ZmxhZy5kb2N4 가 된다.
경로 변경 후 download 를 누르면
파일이 다운로드 된다.
파일 안에 Flag값이 있다.
[FLAG]
FLAG{very_difficult_to_think_up_text_of_the_flag}
반응형