이제부턴 HackTheBox 에서 제공하는 워게임 문제도 포스팅 해보려고 한다.
예전에 풀었던 문제들 Write Up이라 지금 접속하면 안보이는 문제들도 꽤 있다.
그중 가장 쉬운 문제였던 Emdee five for life 이다.
Emdee five 라는 말을 처음봐서 이게 대체 뭔가 했는데
발음 그대로 읽으면 MD5 이다..
문제도 MD5 해시 알고리즘과 관련된 내용이다.
문제 페이지에 접속했을때 화면이다.
MD5 encrypt this string 이라는 문구가 나오고
바로 아래에는 알 수 없는 문자열이 나오는데,
단순하게 저 문자열에 대한 MD5 해시값을 입력창에 넣어 제출하는 것이 목표이다.
문자열을 MD5 해시로 만든 뒤, Submit 버튼을 눌렀더니
Too slow! 라는 문자열이 뜨면서
MD5로 만들어야 할 문자열이 바뀌는것을 볼 수 있다.
이걸로 추측하건데
페이지가 뜨지마자 바로 MD5 해시를 만들어서 제출을 해야하는듯 하다.
수작업으로는 절대 못한다.
Python을 이용해서 간단하게 코딩하여 해결할 수 있다.
import requests
import hashlib
from bs4 import BeautifulSoup as bs
url = 'http://206.189.121.131:30265/'
req = requests.session()
r = req.get(url)
soup = bs(r.text, 'html.parser')
h3 = str(soup.select('h3'))
split = h3[20:40]
print(h3) #print 1
print(split) #print 2
result = hashlib.md5(split.encode())
hash1 = result.hexdigest()
print(hash1) #print 3
data = {"hash":hash1}
r2 = req.post(url, data=data)
print(r2.text) #print 4
해결하는 코드는 위와 같다.
파이썬의 requests, hashlib, BeautifulSoup 모듈을 사용했다.
BeautifulSoup는 requests로 가져온 html을 파싱하기 위해 사용되는 모듈로
주로 웹 크롤링 할때 많이들 사용한다.
이번 문제 같은 경우 MD5 해시로 만들어야하는 문자열이 <h3> 태그 안에 들어있었는데,
requests 모듈로 문제 페이지의 html 을 가져와 soup.select('h3') 로 해당 태그만 잘라낸 후,
hashlib 으로 MD5 계산 후 바로 다시 requests 를 이용해 서버로 해시값을 제출했다.
이해를 돕기 위해 print를 각 단계마다 찍어봤다. (주석(#) 으로 표시)
코드를 실행시키면 이렇게
h3 태그의 값을 가져와 MD5 계산하는것을 볼 수 있고,
플래그를 획득할 수 있다.
'워게임 > HackTheBox' 카테고리의 다른 글
[HackTheBox] baby CachedView - 웹해킹 / Flask (59) | 2022.10.31 |
---|---|
[HackTheBox] misDIRection - MISC / Shell script (43) | 2022.10.21 |
[HackTheBox] Phonebook - 웹해킹 / LDAP Injection / Python (67) | 2022.10.10 |
[HackTheBox] Pusheen Loves Graphs - MISC / IDA (46) | 2022.10.05 |
[HackTheBox] Templated - 웹해킹 / SSTI (34) | 2022.10.02 |