우리가 처음 마주하는 화면은 다음과 같다. MD5 인코딩을 이용한 문제였다.
처음 나도 약간 쉬워보였던 문제라 얼른 인코딩된 string을 넣고 플래그를 얻자고 생각해 인코딩을 했다.
그러나, Too Slow! 가 뜨면서 플래그가 뜨지 않았다.
데체 어떻게 클라이언트와 서버가 동작하는지 궁금해 일단 간단하게 볼 수 있는 프록시를 켰다.
프록시에서 POST로 hash라는 키를 웹으로 보낸다는 것을 알게 되었다. 그러면, 사람이 일일히 하는 것보다 파이썬으로 보내버리는게 나을 것 같다.
import requests, hashlib
from bs4 import BeautifulSoup
URL = "<http://139.59.173.45:32270>"
def main():
req = requests.session()
get = req.get(URL)
soup = BeautifulSoup(get.content, 'lxml')
Plain = soup.h3.string
hash = hashlib.md5(Plain.encode()).hexdigest()
data = {'hash': hash}
res = req.post(URL, data=data)
print(res.text)
if __name__ == "__main__":
main()
동작결과 다음과 같이 나왔다.