Open16

CTF

Shun2439Shun2439

pwn.college

https://pwn.college/

Program Misuse

level22

cpioコマンドを使ってflagを得る模様。

manで使えそうなオプションを探してみると、次のものが見つかった

オプション名 説明
-i 圧縮をするように指定する
-o 解凍をするように指定する
--to-stdout 解凍した際にファイルの内容を出力する

大まかな手順は

  1. flagを圧縮したファイルを/tmpなどに出力する
  2. 出力したファイルを展開する際に文字列を取り出す
入力したコマンド
find /flag | cpio -i > /tmp/flag.cpio
#
cpio -o --to-stdout < /tmp/flag.cpio
Shun2439Shun2439

HackAll

https://hackall.tech/

Level 1

とりあえず、ctrl+uなどでソースコードを見てみる

flag

mypass

こんな感じで提出

いちいちBitwardenが反応する(笑)

Level 2

先ほどと同様にソースコードを覗いてみると、

atob("aGlyYWtlLWdvbWEh")

な文字列が見つかる

これをブラウザのデバッグコンソール(?)やnodejsなどで実行してみる

flag

hirake-goma!

Level 3

同じく、

4D 61 74 65 72 69 61 6C 69 7A 65

怪しい文字列を見つけられる

これはhttps://cyberchef.org/を使うのが早いかな?

flag

Materialize

Shun2439Shun2439

Shiba CTF Gym

https://shibaken28.github.io/shiba-ctf/

radix starter 1

18 = 10 + 8

10 -> 1010
8 -> 1000

頭のいい人はこんなこと必要ない

flag

sctf{10010}

radix starter 2

13579 / 2 = 6789 ... 1
6789 /2 = 3394 ... 1
3394 / 2 = 1697 ... 0
1697 / 2 = 848 ... 1
848 / 2 = 424 ... 0
424 / 2 = 212 ... 0
212 / 2 = 106 ... 0
106 / 2 = 53 ... 0
53 / 2 = 26 ... 1
26 / 2 = 13 ... 0
13 / 2 = 6 ... 1
6 / 2 = 3 ... 0
3 / 2 = 1 ... 1
1 / 2 = 0 ... 1

flag

sctf{11010100001011}

ぜひpwshとかを使おう。。。

https://devblogs.microsoft.com/scripting/use-powershell-to-easily-convert-decimal-to-binary-and-back/

solver.ps1
[convert]::ToString(13579, 2)
Shun2439Shun2439

radix starter 3

  1. 10111 => 2^{4} + 2^{2} + 2^{1} + 2^{0} = 16 + 4 + 2 + 1
  2. 10111 = 10000 + 111 = 16 + 7
flag

sctf{23}

pwshもどうぞ

solver.ps1
[convert]::ToInt32(“10111”, 2)
Shun2439Shun2439

radix starter 4

solver.ps1
[convert]::ToInt32("1100110010101010", 2)
flag

sctf{52394}

Shun2439Shun2439

radix starter 5

まず、2進数に変換してみる

3b = 3, 11
= 3, (8 + 3 )
= 0011, (1000 + 0011)
= 0011, 1011

次に、2進数を10進数に変換してみる

111011 = 2^{5} + 2^{4} + 2^{3} + 2^{1} + 2^{0} = 32 + 16 + 8 + 2 + 1

🚩

sctf{59}

solver.ps1
[convert]::ToInt32("3b", 16)
Shun2439Shun2439

radix starter 6

97 / 16 = 6 ... 1 (頭のいい人は16, 32, 48, 64, 80, 96と考えない。。。)
6 / 16 = 0 ... 6

🚩

sctf{61}

solver.ps1
[convert]::ToString(97, 16)
Shun2439Shun2439

radix starter 7

9進数とか知らん。

バカ🤪(でもヒントになった)

8128 / 9 = 903 ... 1
903 / 9 = 100 ... 3
100 / 9 = 11 ... 1
11 / 9 = 1 ... 2
1 / 9 = 0 ... 1

これは10進から、9進への変換

これを逆に使った(絶対もっといい方法がある。。。)

o / 9 = l ... 8
l / 9 = m ... 2
m / 9 = n ... 1
n / 9 = 0 ... 8

なので、n = 8

よって、

🚩

sctf{5939}

Shun2439Shun2439

AlpacaHack

Shun2439Shun2439

https://alpacahack.com/challenges/simple-login

問題ファイルをダウンロードしてみる

tar -zxf <問題ファイル名>で展開

展開されたディレクトリの中に入る

構成はこんな感じ

.
├── compose.yaml
├── db
│   └── init.sql
└── web
    ├── app.py
    ├── Dockerfile
    ├── requirements.txt
    └── templates
        ├── index.html
        └── login.html

localhost:3000でアクセスできる
Flack製のログインページ
データはmysqlで管理している

  • ユーザーネームとパスワードのいずれかが64文字以上
  • ユーザーネームとパスワードのいずれかに"'"がある

と、はじかれる

🏗️

Shun2439Shun2439

環境構築

burpを使ってみたいので、virtualbox + vagrantでGUI環境を用意する。WSLもあるけど、慣れるために使ってみる。ちなみに、DockerでVSC経由以外にGUI使う方法があったら教えてほしい。

参考: https://qiita.com/shotatanaka/items/ba8553d008130667d905

それぞれインストール済みなので、"workdir"などのディレクトリに移動して、Vagrantfileの雛型を生成する。生成するにはvagrant initを実行(優しい)。

lsとかでVagrantfileがあるか確認しよう(cmd.exeならdir、pwsh.exeならgciだけど、わかりにくすぎる)。確認出来たらエディタで中身を覗こう(moregcとかでも、、、)。

ファイルの中身はほとんどがコメントアウトで、必要なら適宜コメントアウトを外して、オプションを有効化する感じ。

コメントアウトにあるhttps://vagrantcloud.com/searchは繋がらないので、https://portal.cloud.hashicorp.com/vagrant/から検索する様子。

今回もubuntuを使用したいので、https://portal.cloud.hashicorp.com/vagrant/discover/ubuntuから選ぶと良さそう。"bionic64"を選択してみる。Vagrantfileではconfig.vm.box = "ubuntu/xenial64"とする。また、config.vm.network "public_network"をコメントアウトする(VSCなら"ctrl + /"!)。

とりあえず、必要最低限で起動してみる。起動するには、同じディレクトリで、vagrant upを実行する。長いので、コーヒーでも飲みながら待とう。

🏗️

Shun2439Shun2439

CpawCTF

https://ctf.cpaw.site/questions.php?qnum=19

zipなので、一旦展開して、開いてみる。

unzip misc100.zip -d misc100

すると、次のように、xmlを見つけることができる。

eza -T misc100/
misc100
├── Configurations2
│   ├── accelerator
│   │   └── current.xml
│   ├── floater
│   ├── images
│   │   └── Bitmaps
│   ├── menubar
│   ├── popupmenu
│   ├── progressbar
│   ├── statusbar
│   ├── toolbar
│   └── toolpanel
├── content.xml
├── META-INF
│   └── manifest.xml
├── meta.xml
├── mimetype
├── settings.xml
├── styles.xml
└── Thumbnails
    └── thumbnail.png
meta.xmlの中身
<meta:generator>LibreOffice/4.2.8.2$Linux_X86_64 LibreOffice_project/420m0$Build-2</meta:generator>

ここまでで、"zip"、"xml"、"LibreOffice"とくればおおよそ、いつも通りのやつだなと察しがつく。

解法としては、最初にダウンロードしたzipファイルの.zip.odtdocに変更して、LibreOfficeやMS Wordなどで開いてみる。ちなみに、最初、docxにしてしまったときは、読み取れなかった。

🚩

cpaw{It_is_fun_isn't_it?}