늘모자란, 개발 :: [webhacking.kr] Challenge 42

늘모자란, 개발



간단한 테이블인데 범상치가 않다.

<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>



일단 test.zip은 누르면 무조건 Access Denied이다.
test.txt는 뭔 링크로 이동하게 되는데 끝에 =가 붙은게 심상찮다. base64 decode해보니 말짱히 decode가 된다. test.txt라고 한다.
그럼 test.zip을 base64로 encode한다음에 down 파라미터에 넣어보자

받아진다.
모두 예상했다싶이 zip파일이고 안에는 readme.txt가 들어가있다. 문제는 여기 비번이 걸려있다.........



zip파일 비밀번호 푸는게 webhack? 인가 싶은데.. 일단은.. 주석보니 숫자로만 되있다는 희망적인(?) 말도 있고 풀어봐야겠다...
구글에 crack zip이라고만 쳐도 아주 쏟아지게 나오지만, setup을 해야되길래 그냥 리눅스에서 해보기로 한다.

Archive:  test.zip
[test.zip] readme.txt password:
   skipping: readme.txt              incorrect password


unzip하니까 이녀석이 이렇게 나온다.
근데 왠지 python으로 할 수 있을 것 같았다. 역시, 쉬웠다.

   from zipfile import ZipFile
  
   for i in range(1,10000):
       try:
           with ZipFile('test.zip') as zf:
               zf.extractall(pwd='{}'.format(i))
           print i
       except:
           pass


근데 unzip은 되는데 readme.txt가 말짱하게 안나왔다 ㅋㅋ 결국 얻은 값을 윈도우에서 압축해제해서 확인했다.
URL이 하나 적혀있고, 거기 password가 적혀있다. Auth하면 인증끝!

파일 비번도 어렵게 설정하고, 다운을 못하게 하는 파일이면 제대로 검사하도록 하자

2016/04/02 08:12 2016/04/02 08:12