CpawCTF解法メモ。
CTF初心者です。
Q13.[Stego]隠されたフラグ
100pt
問題
以下の画像には、実はフラグが隠されています。
目を凝らして画像を見てみると、すみっこに何かが…!!!!
フラグの形式はcpaw{***}です。フラグは小文字にしてください。
stego100.jpg
解法
よく見ると画像の左上と右下に黒い点々がある。
これはモールス信号になっているので、復号すればよい。
何でもモールス信号変換というWebサービスが便利
Q15.[Web] Redirect
100pt
問題
このURLにアクセスすると、他のページにリダイレクトされてしまうらしい。
果たしてリダイレクトはどのようにされているのだろうか…
http://q15.ctf.cpaw.site
※この問題のサーバへの攻撃はお止め下さい
解法
Developer toolsでNetworkタブでq15.ctf.cpaw.siteのHeadersを見ると
Response headerのX-Flagにflagが隠されている。
Q16.[Network+Forensic]HTTP Traffic
100pt
問題
HTTPはWebページを閲覧する時に使われるネットワークプロトコルである。
ここに、とあるWebページを見た時のパケットキャプチャファイルがある。
このファイルから、見ていたページを復元して欲しい。
http_traffic.pcap
解法
Wiresharkには便利な機能があって、ファイル→オブジェクトをエクスポート
とすると
通信しているファイルを抜き出せる。
HTTPを選んで抜き出すと、network100(1)がhtmlのソースコードとなっている。
これの拡張子をhtmlに変更して実行するとwebページが開く。
フラグが欲しかったら下のボタンを押すんだ!!
と書いてあるが、ボタンなど見当たらない。
ソースコードを見直すと、
<script src="./js/button2.js"></script>
<link href="./css/bootstrap.css" rel="stylesheet">
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
<p><img id="image1" class="img-rounded" id="image1" src="./img/image.jpg"/></p>
といった箇所でbutton2.js
、bootstrap.css
、bootstrap-responsive.css
、image.jpg
を取り込んでいるコードがあるが、パスがあっていないようである。
jsというフォルダを作成してbutton2.js
をそこに移動
cssというフォルダを作成してbootstrap.css
、bootstrap-responsive.css
をそこに移動
imgも同様
とするとボタンが現れる。
Q17.[Recon]Who am I ?
100pt
問題
僕(twitter:@porisuteru)はスペシャルフォース2をプレイしています。
とても面白いゲームです。
このゲームでは、僕は何と言う名前でプレイしているでしょう!
フラグはcpaw{僕のゲームアカウント名}です。
解法
アカウント名とゲーム名でググると該当のツイートが出てくる。
Q18.[Forensic]leaf in forest
100pt
問題
このファイルの中にはフラグがあります。探してください。
フラグはすべて小文字です!
解法
fileを開くとやたらとlovelive!
というワードが並んでいる。
そしてたまに微妙に違う単語が混じっているので、まずはlovelive!
というワードを全て削除した。
すると、大文字の微妙に違う単語は3連続の文字でlovelive!
の一部を置き換えたもののようである。
それらの文字を見てみると最初の数文字を見てcpaw...となっているのでこれがflagだと確信。
小文字に直してflagゲット。
Q19.[Misc]Image!
100pt
問題
Find the flag in this zip file.
file
解法
zipを解凍すると、xmlファイルとかが色々出てくる。
とりあえずmimetypeというテキストを見てみると
application/vnd.oasis.opendocument.graphics
と書いてある。
ググってみるとopen document formatというものらしい。
openoffice.orgの文書ドキュメントらしいので、LibreofficeのWriterで開いてみると、flagゲット。
Q20.[Crypto]Block Cipher
100pt
問題
与えられたC言語のソースコードを読み解いて復号してフラグを手にれましょう。
暗号文:cpaw{ruoYced_ehpigniriks_i_llrg_stae}
crypto100.c
解法
ソースコードは以下の通り。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]){
int i;
int j;
int key = atoi(argv[2]);
const char* flag = argv[1];
printf("cpaw{");
for(i = key - 1; i <= strlen(flag); i+=key) for(j = i; j>= i - key + 1; j--) printf("%c", flag[j]);
printf("}");
return 0;
}
コマンドライン引数の一つ目をflag、二つ目をkeyにして処理を行って出力するらしい。
とりあえず暗号文の中身を一つ目、適当な数字を二つ目に渡して実行して行くと、key = 4で意味の通る文書になる。
Q21.[Reversing]reversing easy!
100pt
問題
フラグを出す実行ファイルがあるのだが、プログラム(elfファイル)作成者が出力する関数を書き忘れてしまったらしい…
reverse100
解法
strings rev100 | grep cpaw
でflagを探すとD$Fcpawf
という文字列がヒットする。
この付近にflagがあるのではと
strings rev100 | grep -A 20 cpaw
としてその後の20行をのぞいてみるとビンゴ。
Q22.[Web]Baby's SQLi - Stage 1-
100pt
問題
困ったな……どうしよう…….
ぱろっく先生がキャッシュカードをなくしてしまったショックからデータベースに逃げ込んでしまったんだ.
うーん,君SQL書くのうまそうだね.ちょっと僕もWeb問作らなきゃいけないから,連れ戻すのを任せてもいいかな?
多分,ぱろっく先生はそこまで深いところまで逃げ込んで居ないと思うんだけども…….
とりあえず,逃げ込んだ先は以下のURLだよ.
一応,報酬としてフラグを用意してるからよろしくね!
Caution
・sandbox.spica.bzの80,443番ポート以外への攻撃は絶対にしないようにお願いします.
・あなたが利用しているネットワークへの配慮のためhttpsでの通信を推奨します.
解法
どうやらぱろっく先生は「palloc_home」というテーブルの2番目にいるようです.
とのことなので普通にSQL文を叩くだけ。
select * from palloc_home limit 2
でよい。
Q28.[Network] Can you login?
100pt
問題
古くから存在するネットワークプロトコルを使った通信では、セキュリティを意識していなかったこともあり、様々な情報が暗号化されていないことが多い。そのため、パケットキャプチャをすることでその情報が簡単に見られてしまう可能性がある。
次のパケットを読んで、FLAGを探せ!
network100.pcap
解法
とりあえずWireSharkで見てみる。
FTPでフィルターするとパスワードなどがそのまま通信されているのがわかる。
ftp 157.7.52.186
でアクセスし、ユーザ名、パスワードを打ち込むとログイン成功。
pcapファイルにはPWDとかEPSVとかLISTとかしてるので、
pwd
、passive
、ls
などしてみるとdummyファイルが出てくる。
dummyと書いている時点で怪しすぎるので、ls -a
すると .hidden_flag_file
なる隠しファイルが見つかった。
get .hidden_flag_file
でダウンロードしてきて、中身をチェックするとflagゲット。