はじめに
自力で解けそうな問題があったので久しぶりの Hack the Box です。
自分は、セッションを使わずにやってたので詰んでました。
問題 概要
問題は、以上です。一番上に『MD5 encrypt this string』 と書いてあるため、MD5 ハッシュ値を下の input要素に想像できます。
では、真ん中の文字列の MD5 ハッシュ値を計算して入力してみました。
すると、
『Too slow! (遅すぎる!!)』と怒られてしまいました。
さて、どうすればよいのでしょうか。
これより下は、解法やネタバレを含みます。
自力で溶けそうな人は、ぜひ挑戦してください。
回答編
遅いようなので処理を自動化してみましょう。
今回は、 Python で書いていきます。
import requests import hashlib from bs4 import BeautifulSoup #Specify url : url の指定 url = "your url" r_session = requests.session() # Get and parse page data. : ページのデータを取得し、解析する。 get_data = r_session.get(url) get_data_parser = BeautifulSoup(get_data.text, 'html.parser') # Get text to hash : ハッシュ化するテキストの取得 hash_text = get_data_parser.h3.get_text() # Load hashed text into json : ハッシュ化するテキストをjsonに積める hash_md5_text = hashlib.md5(hash_text.encode()).hexdigest() post_data = {'hash' : hash_md5_text} # Send text : テキストの送信 received_data = r_session.post(url=url,data=post_data) output = BeautifulSoup(received_data.text, 'html.parser') # get flag : yeah print(output.p.text)
一気に書きましたが、これを実行するとフラッグを取得できます。
順に説明していきます。
Webページにアクセスして、ハッシュ化する文字列を入手します。
その後、ローカルでMD5ハッシュ化をします。
ハッシュ化したデータを、POSTします。
最後に、帰ってきたデータを解析してフラッグの部分だけ表示します。
おわりに
実は、HtBの初得点だったりします。
session のせいで少し詰みましたが、最後まで行けてよかったです。