https://ctftime.org/event/1051
A target service is asking for two bits of information that have the same "custom hash", but can't be identical. Looks like we're going to have to generate a collision?
http://88.198.219.20:33543/
if ((one.length !== two.length) || (one === two)) { return res.send("Strings are either too different or not different enough") } one = customhash.hash(secret_key + one) two = customhash.hash(secret_key + two) if (one == two) { console.log("[*] Flag get!") return res.send(flag) }
getflagのこの辺が重要な部分である。
比較のバイパスでよく使われるのが配列を与えることなので、配列を与えてみる。
{"one":[], "two":[]}
フラグが出てくる。
後付けで理由を考えてみると、何となくバイパスできそうな感じはする。