34C3 CTF

34C3 CTF writeup chaingang

  • Solves: 57
  • send 1505 szabo 457282 babbage 649604 wei 0x949a6ac29b9347b3eb9a420272a9dd7890b787a3

send szabo babbage wei でググると暗号通貨Ethereumに関係することが分かります。szabo、babbage、weiはそれぞれ以下の単位を表すようです。
szabo: 1.000.000.000.000
babbage: 1.000.000
wei: 1
Etherscanでアドレス0x949a6ac29b9347b3eb9a420272a9dd7890b787a3を検索してみます。
https://etherscan.io/address/0x949a6ac29b9347b3eb9a420272a9dd7890b787a3

no title

最後のTransactionを見てみます。
https://etherscan.io/tx/0x70e9f6de87a7db0fe5eb5c93c8b51413c017cdb51d4a8d82f91a0aaca6eb8939

1

[Tools & Utilities]-[Parity Trace]を選択します。
https://etherscan.io/vmtrace?txhash=0x70e9f6de87a7db0fe5eb5c93c8b51413c017cdb51d4a8d82f91a0aaca6eb8939&type=parity

2

outputの値がASCIIコードになっているように見えます。Pythonプログラムで文字列に変換します。
import binascii
a = b'333443335f6772616e646d615f626f756768745f736f6d655f626974636f696e'
print binascii.unhexlify(a)
実行すると次の文字列が出力されます。
フラグは、
34C3_grandma_bought_some_bitcoin
です。



34C3 CTF writeup m0rph

  • Solves: 154
  • To get you started :)

    files: Link

    difficulty: easy

解凍したファイルのファイルタイプをfileコマンドで確認します。Linux用の64bit実行ファイルです。
$ file morph
morph: ELF 64-bit LSB  shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=1c81eb4bc8b981ed39ef79801d6fef03d4d81056, stripped
実行してみますが何も表示されません。
$ ./morph 
objdumpコマンドで逆アセンブルします。
$ objdump -s -D morph >aaa.txt
下記の部分でコマンドライン引数の入力文字列の長さをチェックしています。23文字以外だと終了します。
 ae5: 48 8b 45 d0          mov    -0x30(%rbp),%rax
 ae9: 48 83 c0 08          add    $0x8,%rax
 aed: 48 8b 00              mov    (%rax),%rax
 af0: 48 89 c7              mov    %rax,%rdi #%rax=コマンドライン引数
 af3: e8 60 fc ff ff        callq  0x758 #<strlen>
 af8: 48 83 f8 17          cmp    $0x17,%rax #23と比較
 afc: 74 0a                je     0xb08
それでは、34C3_で始まる23文字の文字列をコマンドライン引数に指定してedbでデバッグ実行します。ステップ実行していくと下記の場所でコマンドライン引数に指定した文字列の1文字目と51(文字の'3')を比較しています。
no title


さらにステップ実行を進めていくと、下図の場所で5文字目と95(文字の’_’)を比較しています。
2

このようにステップ実行を進めていくと、コマンドライン引数の各文字を”34C3_M1GHTY_M0RPh1nG_g0”と比較していることが分かります。
コマンドライン引数に”34C3_M1GHTY_M0RPh1nG_g0”を指定して実行してみると下記のとおり表示されフラグであることが確認できます。
$ ./morph 34C3_M1GHTY_M0RPh1nG_g0
What are you waiting for, go submit that flag!
フラグは、
34C3_M1GHTY_M0RPh1nG_g0
です。

モーフィング入門―DOS/Vで体験するCGマジック
スコット アンダーソン
海文堂出版
1994-12


記事検索
ギャラリー
  • TetCTF 2023 NewYearBot
  • UUT CTF writeup Find The Password
  • UUT CTF writeup The Puzzle
  • Hack Zone Tunisia 2019 writeup Microscope
  • Hack Zone Tunisia 2019 writeup Welcome
  • SwampCTF 2019 writeup Brokerboard
  • SwampCTF 2019 writeup Leap of Faith
  • SwampCTF 2019 writeup Last Transmission
  • CBM CTF 2019 writeup Long road
カテゴリー