문제를 풀러 들어가면 위와 같은 표가 나오고 누르면 다운로드할수 있게 되어있다.


test.txt를 다운로드를 누르면 아래와 같은 url로 이동한다. 중간에 있는 저 값은 32자로 md5로 사료된다.


물론 아닐수도 있다... 심심해서 디코딩해봣는데 아무것도 안나온다 ㅋㅋ



그리고 ZIP파일을 다운하려했더니 Access Denied가 떴다. 일단은 소스를 보도록하자.



소스파일은 아래와 같고...





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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>test.zip [<a href=javascript:alert("Access%20Denied")>download</a>]</td></tr>
</table>
 
<!--
test.zip password is only numbers
-->
 
</body>
</html>
 
cs



주석을 보면 test.zip password is only numbers란다.


숫자로만 패스워드가 설정된 zip파일은 크랙하기 쉬울것으로 보인다. (4자리라면 매우 쉽겠지...)


그리고 위의 test.txt의 다운로드 링크가 걸린것을 보면 [<a href=?down=dGVzdC50eHQ=>download</a>] 이렇게 되있는데


저 중간의 ?down=dGVzdC50eHQ=을 변조하면 test.zip도 다운할수 있을것같다. 모양새를 봐선 base64인코딩같다. 


디코드해보자



오오... test.txt가 맞다. 그럼 저 값을 test.zip으로 인코딩해서 이동해보자.


test.zip의 base64인코딩 값은 dGVzdC56aXA= 이다.


?down=dGVzdC56aXA=로 주소창에 써넣자 test.zip이 다운로드되었다.



패스워드는 숫자로만 구성됬다고 했으니 브루트포싱해보자.



아; 하지만 trial 버전이라.. 패스워드 길이는 최대 4까지만 설정가능하다.


하지만 성공해서 별다른 문제는 없었다.... 실패했으면 Kali Linux에 있는 fcrackzip을 쓰면 좋다ㅇ..



이제 비밀번호를 입력하고 readme.txt를 읽어보면 아래와 같이 url이 나오고 들어가면



패스워드가 나오고 auth에서 입력하면 클리어가 된다.




+ Recent posts