0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MNCTF2021 writeup

Last updated at Posted at 2021-07-02

MNCTF 2021 writeup

MNCTF2021のwriteupです.
http://mnctf.info/

注意
ctf4bしか参加したことが無い学生が書いているので,間違ったことを書いてしまうことがあります.
指摘してください.また,MNCTFの運営の方より,出題されたファイル等は公開してよいと言われております.

それでは書いていきます.

Wifiユーザ情報

Webインターフェースで送信された接続情報を読み取ります.

与えられた情報はpcapファイルです.
とりあえず,wiresharkで開いて,HTTP通信を探して,パスワードを送っていそうな通信を探します.
パスワードを送るのは多分POSTメソッドだろうなって思って探して,見つけました.
1.PNG
そのあと,HTTPリクエストボディを見てみるとパスワードが書いてありました.
2.PNG

チケット番号

チケット番号の部分にぼかしが入った画像からチケット番号を読み取る課題
ticket.png

まじで目が痛くなりそうでした.SmartDeblurを使って,パラメータを調整(smartDeblurが安全かどうかは不明,AVでスキャンしたら警告出ないからいいやってことで使いました)

7.PNG
パラメータを上みたいな状態にしたところ,以下の画像が得られました.
8.PNG

読み取りにくいところは0~9まで試してフラグゲット!

(解説によるとPDF417のバーコードをデコードする問題だったらしいです.あと,うまくやればスマホのバーコードリーダーで読めるらしいです)

ラウンジクーポン

Androidアプリが配布されてきて,このアプリの中からクーポンコードを探す問題

まずはAndroid Studioに同梱されたAndroid Emulatorにインストールして起動
Screenshot_1625207386.png
Screenshot_1625207391.png

アプリを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って書いてあったのでこれを入力したらフラグゲット

image.png

MACアドレス

DHCPサーバのログから,MACアドレスを特定する問題

2件見つかったので通信のあった7月1日8:15の直前にIPアドレスを取っている 54:0b:20:1b:ce:a2が答え
image.png

不正なプロセス&発動条件

時間切れ...

まとめ

たのしかったです。MNCTFの皆様,学生を受け入れてくださり,ありがとうございました.ほんとうに勉強になりました!
問題サーバは公開されるらしいです.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?