SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
出張 CTF for ビギナーズ 2015 幕張 in
セキュリティ・キャンプ
CTF成果報告
@_193s, @nomuken
自己紹介
- 清水 郁実 (@_193s)
- 1位取りました
- CTF (scryptos)
概要/考察
- 競技時間2時間35分
- 出題傾向?
- winバイナリのrevが多い
- pwn….
- nwが重い?
概要/考察
- 普通のCTFに比べて...
- 時間に対して問題数が多い
- が,問題自体は結構軽い
- 1問にかける時間は10分以内?
- 短い時間で簡単な問題をサクサク解いていく能力が必
要(だった)
結果
解説 (write-up)
- 時間がないのでバンバンいきます
- 自分が解いた問題+αで解説していきます
8. 練習問題 (Misc 10)
FLAGの形式は以下の通りです。
FLAG{W31c0m3_t0_cTf4b!}
各問題毎に隠されたFLAGを見つけ出し、上記
フォーマットで赤字で示された部分を送信してくだ
さい。
8. 練習問題 (Misc 10)
FLAG{W31c0m3_t0_cTf4b!}
1. atob (Misc 10)
Umt4QlIzdGlZWE5sTmpSOQ==
1. atob (Misc 10)
- どう見てもbase64ですね?
- 一回デコードするとRkxBR3tiYXNlNjR9
- これもbase64でデコードできそう
=> FLAG{base64}
2. Unreadable Document (Misc 100)
墨消しされた機密文書(misc100.pdf)、あなたに読
めますか?
2. Unreadable Document (Misc 100)
- “墨消しされた”とあるので黒いブロックでflagを
隠してそう
- 何も考えずにpdf viewerで全選択 & copyする
とflagが出る
=> FLAG{NOT_BLOCK_BUT_BLOKK}
3. Tryout (Web 10)
Can you find out the flag?
http://172.23.246.101
/97a8a726877677ca7d4b8d9d4bf68d38/
3. Tryout (Web 10)
- 普通にアクセスすると”You are not admin. To
acquire the flag, you have to be admin.”とだ
け返ってくる
- Cookieを見ると”admin=false”というのがある
- これをtrueに書き換えてあげると良さそう
3. Tryout (Web 10)
FLAG
{DO_NOT_BELIEVE_THE_INPUT_FROM_US
ERS}
4. Yagihashoo! (Web 100)
- @nomuken
6. Amazing Language (Web 400)
- @nomuken
7. ctf4bbs (Web 500)
This is my first web application. Plz find the
vulnerabilities, and hack this. The flag is in the
browser the administrator uses.
http://172.23.246.101
/21895b22c975deab9423b8b5e0bbe783/
7. ctf4bbs (Web 500)
- “The flag is in the browser the administrator
uses.”とあるのでXSS問題っぽい
7. ctf4bbs (Web 500)
- 普通に<>’”あたりを送っても適切にエスケープさ
れてるっぽいので厳しい?
- htmlの下の方に”for admin => login.php”という
コメントがある
7. ctf4bbs (Web 500)
- login.php?
- pass: ‘+’で送るとadminとしてログインできる
7. ctf4bbs (Web 500)
- adminページ?
- User AgentでXSSできそう -> できた
- 適当に自分のipに飛ばすとadminからリクエストが飛ん
でくる
7. ctf4bbs (Web 500)
- adminページ?
- User AgentでXSSできそう -> できた
- 適当に自分のipに飛ばすとadminからリクエストが飛ん
でくる
7. ctf4bbs (Web 500)
- adminページ?
- User AgentでXSSできそう -> できた
- 適当に自分のipに飛ばすとadminからリクエストが飛ん
でくる
=> FLAG{EXCELLENT!YOU_R_AMAZING!}
9. pwn4b (Pwn 10)
実行されないif文でも…!
nc 172.23.246.151 31337
http://172.23.246.1/ctf-files/pwn4b.c
9. pwn4b (Pwn 10)
#include <stdio.h>
int main(int argc, char *argv[]) {
char name[20];
int flag = 0;
printf("Please input your name: ");
scanf("%s", name);
if (flag) {
printf("FLAG{XXXXXXXXXXXXX}n");
}
}
9. pwn4b (Pwn 10)
- 適当に長い文字列を送るとflagが出る
- (s_canfでbuffer overflowしてflagという変数が適当な
値でoverwriteされるのでif (flag)を通る)
=> FLAG{areyouinterestedinpwn?}
12. Insecure Protocol (Network 10)
Find the FLAG!!
http://172.23.246.1/ctf-files/net10.pcap
12. Insecure Protocol (Network 10)
- telnetの通信が入ったpcap
- wiresharkでfollow tcp-streamするとflagが読めた
12. Insecure Protocol (Network 10)
- telnetの通信が入ったpcap
- wiresharkでfollow tcp-streamするとflagが読めた
=> FLAG{telnet_is_insecure}
18. ENCRYPTION! (Crypt 10)
- JRYPBZR GB PGS SBE ORTVAAREF VA
FRPHEVGL PNZC 2015. GUVF VF GUR
GRFG DHRFGVBA SBE PGS
ORTVAAREF. WHFG QRPELCG JVGU
GUR EBG13 NAQ ERNQ VG. OL GUR JNL,
GUR SYNT VF SYNT
{RAWBLRAPELCGVBA}. RAWBL!
18. ENCRYPTION! (Crypt 10)
- 明らかにrot13なので適当にデコードすると
WELCOME TO CTF FOR BEGINNERS IN SECURITY
CAMP 2015. THIS IS THE TEST QUESTION FOR
CTF BEGINNERS. JUST DECRYPT WITH THE
ROT13 AND READ IT. BY THE WAY, THE FLAG IS
FLAG{ENJOYENCRYPTION}. ENJOY!
18. ENCRYPTION! (Crypt 10)
- 明らかにrot13なので適当にデコードすると
=> FLAG{ENJOYENCRYPTION}
20. CryptoBinary (Crypt 100)
暗号化前はとある実行ファイルだったらしいのだが
…。
http://172.23.246.1/ctf-files/crypto100.zip
20. CryptoBinary (Crypt 100)
00000000 0c 20 2f 25 60 6c 71 73 65 63 63 61 6d 70 73 65 │· /%│`lqs│ecca│mpse│
00000010 61 63 62 6d 71 73 65 63 43 e2 69 78 47 65 63 63 │acbm│qsec│C·ix│Gecc│
00000020 15 7c 70 73 65 63 63 61 59 70 53 65 6a 63 49 6d │·|ps│ecca│YpSe│jcIm│
00000030 6e 73 7e 63 65 61 6d 70 47 65 63 63 55 ed 74 7b │ns~c│eamp│Gecc│U·t{│
00000040 51 e3 67 69 4d 71 73 65 43 62 61 6d 75 73 65 63 │Q·gi│Mqse│Cbam│usec│
…
000005b0 32 a0 6d 67 71 6d 70 73 f9 63 63 61 99 8e 8c 9a │2·mg│qmps│·cca│····│
000005c0 61 63 61 6d 70 73 65 63 63 61 6d 70 73 65 63 63 │acam│psec│camp│secc│
000005d0 61 6d 70 73 65 63 63 61 6d 70 73 65 63 63 61 6d │amps│ecca│mpse│ccam│
000005e0 70 73 65 63 63 61 6d 70 73 65 63 63 61 6d 70 73 │psec│camp│secc│amps│
000005f0 65 63 63 61 6d 70 73 65 63 63 61 6d 70 73 65 63 │ecca│mpse│ccam│psec│
20. CryptoBinary (Crypt 100)
- ‘seccamp’という文字列の繰り返しが目につくの
で,これをrepeated-xor keyとしてデコードして
みる
- elfが出てきたので実行するとflag
- エスパー?
FLAG{51MPLE_X0R_CRYPT06RAPHY}
23. IsBananaPresent (Binary 100)
http://172.23.246.1/ctf-files/bin100.zip
23. IsBananaPresent (Binary 100)
- 条件が揃うとflagを出力する (IsDebuggerPresent, …)
- IDA Debuggerとか適当なデバッガで制御を移せば解ける
=> flag{DUG5C}
24. フラグはなに? (Binary 200)
http://172.23.246.1/ctf-files/bin200.zip
24. フラグはなに? (Binary 200)
- 受け取った文字列が正しいflagかどうかを出力する
- 典型的なrev
- それぞれの文字について,
- (1つ前の文字^0x7f) + 2239*(文字^0x7f) == 定数テーブル[文字の
オフセット]
- みたいな処理をしている
- 適当にpythonでソルバを書いた (https://gist.github.
com/193s/497f2bd0c0c9b28ab10d)
=> FLAG{DOUBLE_KEISUKE}
その他 / 競技中に解けなかった問題
13. Bleeding The Flag!! (Network 100)
このサーバにとある脆弱性のパケットを送ると不思
議な出来事が起こるそうだ
IP: 172.23.246.11
Port: 443/tcp
13. Bleeding The Flag!! (Network 100)
- 解けなかった
- Flagのサブミットが間に合わなかった...
13. Bleeding The Flag!! (Network 100)
- 問題タイトルの“Bleeding”, port 443から
HeartBleedっぽい
- metasploitとかで適当にexploit投げるとflag
- auxiliary/scanner/ssl/openssl_heartbleed
=> FLAG{H34rt_B133d_MAKUHARI}
22. d3demo (Binary 10)
http://172.23.246.1/ctf-files/bin10.zip
22. d3demo (Binary 10)
- HSP製のそれっぽい動画とそのビュワー
- 20分ぐらいの動画を最後まで見てるとflagが出
てくる
- これが正攻法??
(Flag紛失しました)
その他
- pwn100の作問ミス面白かったです
こちらからは以上です
- 関係者各位ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 

Was ist angesagt? (20)

【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
LLVM最適化のこつ
LLVM最適化のこつLLVM最適化のこつ
LLVM最適化のこつ
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
optimal Ate pairing
optimal Ate pairingoptimal Ate pairing
optimal Ate pairing
 
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
WebRTC multitrack / multistream
WebRTC multitrack / multistreamWebRTC multitrack / multistream
WebRTC multitrack / multistream
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
 
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
 
バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案
 
llvm入門
llvm入門llvm入門
llvm入門
 

Ähnlich wie 出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告

tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
(^-^) togakushi
 
関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
 
TCP connectionの保存と復元
TCP connectionの保存と復元TCP connectionの保存と復元
TCP connectionの保存と復元
mittyorz
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
Kiwamu Okabe
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
 

Ähnlich wie 出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告 (20)

tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会関ジャバ JavaOne Tokyo 2012報告会
関ジャバ JavaOne Tokyo 2012報告会
 
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
 
TCP connectionの保存と復元
TCP connectionの保存と復元TCP connectionの保存と復元
TCP connectionの保存と復元
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
 
katagaitaictf7_hw_ysk
katagaitaictf7_hw_yskkatagaitaictf7_hw_ysk
katagaitaictf7_hw_ysk
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell script
 
「個人でも手軽に引ける回線を使って、快適なMy Home Networkを作ったお話」「SEILちゃんを使った、お手軽・しっかりなリモートアクセス(RAS...
「個人でも手軽に引ける回線を使って、快適なMy Home Networkを作ったお話」「SEILちゃんを使った、お手軽・しっかりなリモートアクセス(RAS...「個人でも手軽に引ける回線を使って、快適なMy Home Networkを作ったお話」「SEILちゃんを使った、お手軽・しっかりなリモートアクセス(RAS...
「個人でも手軽に引ける回線を使って、快適なMy Home Networkを作ったお話」「SEILちゃんを使った、お手軽・しっかりなリモートアクセス(RAS...
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
 
Scapy presentation
Scapy presentationScapy presentation
Scapy presentation
 
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
Maatkitの紹介
Maatkitの紹介Maatkitの紹介
Maatkitの紹介
 
そうだ 検証、しよう。
そうだ 検証、しよう。そうだ 検証、しよう。
そうだ 検証、しよう。
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告

  • 1. 出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ CTF成果報告 @_193s, @nomuken
  • 2. 自己紹介 - 清水 郁実 (@_193s) - 1位取りました - CTF (scryptos)
  • 3. 概要/考察 - 競技時間2時間35分 - 出題傾向? - winバイナリのrevが多い - pwn…. - nwが重い?
  • 4. 概要/考察 - 普通のCTFに比べて... - 時間に対して問題数が多い - が,問題自体は結構軽い - 1問にかける時間は10分以内? - 短い時間で簡単な問題をサクサク解いていく能力が必 要(だった)
  • 6. 解説 (write-up) - 時間がないのでバンバンいきます - 自分が解いた問題+αで解説していきます
  • 7. 8. 練習問題 (Misc 10) FLAGの形式は以下の通りです。 FLAG{W31c0m3_t0_cTf4b!} 各問題毎に隠されたFLAGを見つけ出し、上記 フォーマットで赤字で示された部分を送信してくだ さい。
  • 8. 8. 練習問題 (Misc 10) FLAG{W31c0m3_t0_cTf4b!}
  • 9. 1. atob (Misc 10) Umt4QlIzdGlZWE5sTmpSOQ==
  • 10. 1. atob (Misc 10) - どう見てもbase64ですね? - 一回デコードするとRkxBR3tiYXNlNjR9 - これもbase64でデコードできそう => FLAG{base64}
  • 11. 2. Unreadable Document (Misc 100) 墨消しされた機密文書(misc100.pdf)、あなたに読 めますか?
  • 12. 2. Unreadable Document (Misc 100) - “墨消しされた”とあるので黒いブロックでflagを 隠してそう - 何も考えずにpdf viewerで全選択 & copyする とflagが出る => FLAG{NOT_BLOCK_BUT_BLOKK}
  • 13. 3. Tryout (Web 10) Can you find out the flag? http://172.23.246.101 /97a8a726877677ca7d4b8d9d4bf68d38/
  • 14. 3. Tryout (Web 10) - 普通にアクセスすると”You are not admin. To acquire the flag, you have to be admin.”とだ け返ってくる - Cookieを見ると”admin=false”というのがある - これをtrueに書き換えてあげると良さそう
  • 15. 3. Tryout (Web 10) FLAG {DO_NOT_BELIEVE_THE_INPUT_FROM_US ERS}
  • 16. 4. Yagihashoo! (Web 100) - @nomuken
  • 17. 6. Amazing Language (Web 400) - @nomuken
  • 18. 7. ctf4bbs (Web 500) This is my first web application. Plz find the vulnerabilities, and hack this. The flag is in the browser the administrator uses. http://172.23.246.101 /21895b22c975deab9423b8b5e0bbe783/
  • 19. 7. ctf4bbs (Web 500) - “The flag is in the browser the administrator uses.”とあるのでXSS問題っぽい
  • 20. 7. ctf4bbs (Web 500) - 普通に<>’”あたりを送っても適切にエスケープさ れてるっぽいので厳しい? - htmlの下の方に”for admin => login.php”という コメントがある
  • 21. 7. ctf4bbs (Web 500) - login.php? - pass: ‘+’で送るとadminとしてログインできる
  • 22. 7. ctf4bbs (Web 500) - adminページ? - User AgentでXSSできそう -> できた - 適当に自分のipに飛ばすとadminからリクエストが飛ん でくる
  • 23. 7. ctf4bbs (Web 500) - adminページ? - User AgentでXSSできそう -> できた - 適当に自分のipに飛ばすとadminからリクエストが飛ん でくる
  • 24. 7. ctf4bbs (Web 500) - adminページ? - User AgentでXSSできそう -> できた - 適当に自分のipに飛ばすとadminからリクエストが飛ん でくる => FLAG{EXCELLENT!YOU_R_AMAZING!}
  • 25. 9. pwn4b (Pwn 10) 実行されないif文でも…! nc 172.23.246.151 31337 http://172.23.246.1/ctf-files/pwn4b.c
  • 26. 9. pwn4b (Pwn 10) #include <stdio.h> int main(int argc, char *argv[]) { char name[20]; int flag = 0; printf("Please input your name: "); scanf("%s", name); if (flag) { printf("FLAG{XXXXXXXXXXXXX}n"); } }
  • 27. 9. pwn4b (Pwn 10) - 適当に長い文字列を送るとflagが出る - (s_canfでbuffer overflowしてflagという変数が適当な 値でoverwriteされるのでif (flag)を通る) => FLAG{areyouinterestedinpwn?}
  • 28. 12. Insecure Protocol (Network 10) Find the FLAG!! http://172.23.246.1/ctf-files/net10.pcap
  • 29. 12. Insecure Protocol (Network 10) - telnetの通信が入ったpcap - wiresharkでfollow tcp-streamするとflagが読めた
  • 30. 12. Insecure Protocol (Network 10) - telnetの通信が入ったpcap - wiresharkでfollow tcp-streamするとflagが読めた => FLAG{telnet_is_insecure}
  • 31. 18. ENCRYPTION! (Crypt 10) - JRYPBZR GB PGS SBE ORTVAAREF VA FRPHEVGL PNZC 2015. GUVF VF GUR GRFG DHRFGVBA SBE PGS ORTVAAREF. WHFG QRPELCG JVGU GUR EBG13 NAQ ERNQ VG. OL GUR JNL, GUR SYNT VF SYNT {RAWBLRAPELCGVBA}. RAWBL!
  • 32. 18. ENCRYPTION! (Crypt 10) - 明らかにrot13なので適当にデコードすると WELCOME TO CTF FOR BEGINNERS IN SECURITY CAMP 2015. THIS IS THE TEST QUESTION FOR CTF BEGINNERS. JUST DECRYPT WITH THE ROT13 AND READ IT. BY THE WAY, THE FLAG IS FLAG{ENJOYENCRYPTION}. ENJOY!
  • 33. 18. ENCRYPTION! (Crypt 10) - 明らかにrot13なので適当にデコードすると => FLAG{ENJOYENCRYPTION}
  • 34. 20. CryptoBinary (Crypt 100) 暗号化前はとある実行ファイルだったらしいのだが …。 http://172.23.246.1/ctf-files/crypto100.zip
  • 35. 20. CryptoBinary (Crypt 100) 00000000 0c 20 2f 25 60 6c 71 73 65 63 63 61 6d 70 73 65 │· /%│`lqs│ecca│mpse│ 00000010 61 63 62 6d 71 73 65 63 43 e2 69 78 47 65 63 63 │acbm│qsec│C·ix│Gecc│ 00000020 15 7c 70 73 65 63 63 61 59 70 53 65 6a 63 49 6d │·|ps│ecca│YpSe│jcIm│ 00000030 6e 73 7e 63 65 61 6d 70 47 65 63 63 55 ed 74 7b │ns~c│eamp│Gecc│U·t{│ 00000040 51 e3 67 69 4d 71 73 65 43 62 61 6d 75 73 65 63 │Q·gi│Mqse│Cbam│usec│ … 000005b0 32 a0 6d 67 71 6d 70 73 f9 63 63 61 99 8e 8c 9a │2·mg│qmps│·cca│····│ 000005c0 61 63 61 6d 70 73 65 63 63 61 6d 70 73 65 63 63 │acam│psec│camp│secc│ 000005d0 61 6d 70 73 65 63 63 61 6d 70 73 65 63 63 61 6d │amps│ecca│mpse│ccam│ 000005e0 70 73 65 63 63 61 6d 70 73 65 63 63 61 6d 70 73 │psec│camp│secc│amps│ 000005f0 65 63 63 61 6d 70 73 65 63 63 61 6d 70 73 65 63 │ecca│mpse│ccam│psec│
  • 36. 20. CryptoBinary (Crypt 100) - ‘seccamp’という文字列の繰り返しが目につくの で,これをrepeated-xor keyとしてデコードして みる - elfが出てきたので実行するとflag - エスパー? FLAG{51MPLE_X0R_CRYPT06RAPHY}
  • 37. 23. IsBananaPresent (Binary 100) http://172.23.246.1/ctf-files/bin100.zip
  • 38. 23. IsBananaPresent (Binary 100) - 条件が揃うとflagを出力する (IsDebuggerPresent, …) - IDA Debuggerとか適当なデバッガで制御を移せば解ける => flag{DUG5C}
  • 39. 24. フラグはなに? (Binary 200) http://172.23.246.1/ctf-files/bin200.zip
  • 40. 24. フラグはなに? (Binary 200) - 受け取った文字列が正しいflagかどうかを出力する - 典型的なrev - それぞれの文字について, - (1つ前の文字^0x7f) + 2239*(文字^0x7f) == 定数テーブル[文字の オフセット] - みたいな処理をしている - 適当にpythonでソルバを書いた (https://gist.github. com/193s/497f2bd0c0c9b28ab10d) => FLAG{DOUBLE_KEISUKE}
  • 42. 13. Bleeding The Flag!! (Network 100) このサーバにとある脆弱性のパケットを送ると不思 議な出来事が起こるそうだ IP: 172.23.246.11 Port: 443/tcp
  • 43. 13. Bleeding The Flag!! (Network 100) - 解けなかった - Flagのサブミットが間に合わなかった...
  • 44. 13. Bleeding The Flag!! (Network 100) - 問題タイトルの“Bleeding”, port 443から HeartBleedっぽい - metasploitとかで適当にexploit投げるとflag - auxiliary/scanner/ssl/openssl_heartbleed => FLAG{H34rt_B133d_MAKUHARI}
  • 45. 22. d3demo (Binary 10) http://172.23.246.1/ctf-files/bin10.zip
  • 46. 22. d3demo (Binary 10) - HSP製のそれっぽい動画とそのビュワー - 20分ぐらいの動画を最後まで見てるとflagが出 てくる - これが正攻法?? (Flag紛失しました)