[日本語] [English]

pay2win

WebページのURLが与えられた。

ページのソースを表示すると、最後のあたりで main.js が読み込まれていた。
このファイルを見ると、plantFlag という関数があった。
そこで、この関数を改造した以下のコードをFirefoxのコンソールに貼り付け、生成される内容をチェックした。

plantFlag_mod.js

すると、textContent はflagの文字がシャッフルされたような文字列となり、
spanタグの innerHTML を見ると各文字に flag-char-0flag-char-1 のような連番のクラスがつけられていた。

最初のページのソースに戻って観察すると、main.css が読み込まれており、 これらのクラスに order が指定されていることを発見した。
そこで、それぞれの文字が order で指定された位置に配置されると推測し、この処理を行う以下のプログラムを作成した。

solve.pl

このプログラムを main.css を入力として実行すると、flagが得られた。

buckeye{h0ly_sh1t_wh4t_th3_h3ck_1s_th1s_w31rd_ch4ll3ng3}

writeup by MikeCAT

BuckeyeCTF 2021