MNCTF 2021 writeup
MNCTF2021のwriteupです.
http://mnctf.info/
注意
ctf4bしか参加したことが無い学生が書いているので,間違ったことを書いてしまうことがあります.
指摘してください.また,MNCTFの運営の方より,出題されたファイル等は公開してよいと言われております.
それでは書いていきます.
Wifiユーザ情報
Webインターフェースで送信された接続情報を読み取ります.
与えられた情報はpcapファイルです.
とりあえず,wiresharkで開いて,HTTP通信を探して,パスワードを送っていそうな通信を探します.
パスワードを送るのは多分POSTメソッドだろうなって思って探して,見つけました.
そのあと,HTTPリクエストボディを見てみるとパスワードが書いてありました.
チケット番号
チケット番号の部分にぼかしが入った画像からチケット番号を読み取る課題
まじで目が痛くなりそうでした.SmartDeblurを使って,パラメータを調整(smartDeblurが安全かどうかは不明,AVでスキャンしたら警告出ないからいいやってことで使いました)
パラメータを上みたいな状態にしたところ,以下の画像が得られました.
読み取りにくいところは0~9まで試してフラグゲット!
(解説によるとPDF417のバーコードをデコードする問題だったらしいです.あと,うまくやればスマホのバーコードリーダーで読めるらしいです)
ラウンジクーポン
Androidアプリが配布されてきて,このアプリの中からクーポンコードを探す問題
まずはAndroid Studioに同梱されたAndroid Emulatorにインストールして起動
アプリをapktool でデコードしました
「USE COUPON」って書かれてる部分を見つける
grepで拾う
以下のファイルがヒットした
res/layout/fragment_second.xml
<?xml version="1.0" encoding="UTF-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent">
-<LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@id/textview_second"/>
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@id/textView2" android:text="Coupon Code"/>
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@id/editTextTextPersonName" android:inputType="textPersonName" android:ems="10"/>
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@id/buttonCoupon" android:text="Use Coupon"/>
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@id/button_second" android:text="@string/previous"/>
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@id/txtMessage"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
先ほどのスクリーンショットと比較すると,"@id/editTextTextPersonName"という名前でアクセスできるようです.この文字列で探すことを考える.
どうせsmaliだろうって思って探す.
smali/com/shinosec/loungecheckin/SecondFragment$2.smali
を野生の勘で見つけ出した.
.line 46
.local v1, "password":Ljava/lang/String;
const-string v2, "ILOVENAFIRSTCLASS9432"
意味深な文字列見つけた!
フラグゲット!
(最初のxmlは最終的に使ってないけど,がんばったから書きました)
(解説によるとjavadecompilers.comにapk投稿するといけるらしい
)
謎の男
解けませんでした...
IPアドレス特定
FWのログを見て,87.113.49.99と通信しているIPアドレスを見つける問題
87.113.49.99を検索したら,横に192.168.108.21って書いてあったのでこれを入力したらフラグゲット
MACアドレス
DHCPサーバのログから,MACアドレスを特定する問題
2件見つかったので通信のあった7月1日8:15の直前にIPアドレスを取っている 54:0b:20:1b:ce:a2が答え
不正なプロセス&発動条件
時間切れ...
まとめ
たのしかったです。MNCTFの皆様,学生を受け入れてくださり,ありがとうございました.ほんとうに勉強になりました!
問題サーバは公開されるらしいです.