ksnctf CTFをWriteupを調べながら進めました。

この記事は [ハンズラボ Advent Calendar 2018](https://qiita.com/advent-calendar/2018/handslab) 10日目の記事です。

常設CTF [^1] と言われる [ksnctf.sweetduet.info](http://ksnctf.sweetduet.info/) をしました。

[^1]: 期間制限なく公開されている問題を解き順位を競う形式のCTF（Capture The Flag）

----

#### 経緯

現在、ハンズの顧客情報に関係するデータを取り扱うことが多い業務に従事しており、セキュリティに関して効率的に学ぶためにはCTFに入門するというのが一番の近道と感じたからです。

----

今回利用させて頂いた `ksnctf` については、以下の様なサイトです。

http://ksnctf.sweetduet.info/

``` text:TOPページより引用
コンピュータセキュリティに関する問題を出題します。 
各問題から "FLAG_123456xyz" という形式の答え（Flag）を探してください
```

2012年から公開されています。 [^2]

[^2]: https://twitter.com/kusano_k/status/205672773966757888

----

#### 進行状況

ここ２週間ほど、Writeup [^3] を調べながら駆け足で進めてましたが
36問中、以下の2つの問題がアドベントカレンダーまでに間に合いませんでした。

[^3]: 問題を解いた人がその問題の解き方をまとめたもののこと(常設CTFの場合はFLAGまで書かないことが推薦)


[ランキングボード]
![ksnctf_2018-12-09.png](https://qiita-image-store.s3.amazonaws.com/0/2642/5052a515-2b72-8059-2850-80cc56ae27f4.png)

+ [~~#27 Lives out~~ （1/12 済）](http://ksnctf.sweetduet.info/problem/27)
+ [~~#34 Are you human?~~ （1/6 済）](http://ksnctf.sweetduet.info/problem/34)

上記2問はまだ出来ることはありますので、ゆっくり時間が取れそうな [冬休みの宿題] となりそうです。

追記）

現時点で公開されている問題が全て終わりました。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f323634322f32666165646231612d373663632d386262612d353238632d6432613030363064613761622e6a706567.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2642/18f6f21a-1cf6-3a6a-1ea5-934b7b23e10f.jpeg)

----

解くためのヒント

| # | Title | Point | 関連事項 |
| :---- | :---- | :----: | :---- |
| 1 | Test Problem | 1 | None |
| 2 | Easy Cipher | 50 | [ROT13](https://ja.wikipedia.org/wiki/ROT13) |
| 3 | Crawling Chaos | 100 | [Brainfuck](https://ja.wikipedia.org/wiki/Brainfuck), [nyaruko_lang](https://github.com/masarakki/nyaruko_lang) |
| 4 | Villager A | 300 | [Format string attack](https://ja.wikipedia.org/wiki/%E6%9B%B8%E5%BC%8F%E6%96%87%E5%AD%97%E5%88%97%E6%94%BB%E6%92%83) |
| 5 | Onion | 70 | [Base64](https://ja.wikipedia.org/wiki/Base64), [uuencode](https://ja.wikipedia.org/wiki/Uuencode) |
| 6 | Login | 120 | [SQLインジェクション](https://ja.wikipedia.org/wiki/SQL%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3), [ブルートフォース](https://ja.wikipedia.org/wiki/%E7%B7%8F%E5%BD%93%E3%81%9F%E3%82%8A%E6%94%BB%E6%92%83) |
| 7 | Programming | 110 | [Whitespace](https://ja.wikipedia.org/wiki/Whitespace) |
| 8 | Basic is secure? | 50 | [Basic認証](https://ja.wikipedia.org/wiki/Basic%E8%AA%8D%E8%A8%BC) |
| 9 | Digest is secure! | 150 | [Digest認証](https://ja.wikipedia.org/wiki/Digest%E8%AA%8D%E8%A8%BC) |
| 10 | #! | 20 | [シバン_(Unix)](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix)) |
| 11 | Riddle | 200 | Reversing |
| 12 | Hypertext Preprocessor | 70 | [CVE-2012-1823](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1823) |
| 13 | Proverb | 70 | シンボリックリンク攻撃 |
| 14 | John | 60 | [John the Ripper](https://www.openwall.com/john/) |
| 15 | Jewel | 250 | Decompiler, [dex2jar](https://github.com/pxb1988/dex2jar), [jad](http://www.javadecompilers.com/jad) |
| 16 | Math I | 150 | [RSA暗号](https://ja.wikipedia.org/wiki/RSA%E6%9A%97%E5%8F%B7) |
| 17 | Math II | 50 | [二分探索木](https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%8E%A2%E7%B4%A2%E6%9C%A8) |
| 18 | USB flash drive | 80 | ディスクイメージ解析, [The Sleuth Kit](https://github.com/sleuthkit/sleuthkit) |
| 19 | ZIP de kure | 150 | Known-plaintext attack, [pkcrack](https://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack.html) |
| 20 | G00913 | 30 | Google求人広告 |
| 21 | Perfect Cipher | 200 | [メルセンヌ・ツイスタ](https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%AB%E3%82%BB%E3%83%B3%E3%83%8C%E3%83%BB%E3%83%84%E3%82%A4%E3%82%B9%E3%82%BF) |
| 22 | Square Cipher | 60 | [QRコード](https://ja.wikipedia.org/wiki/QR%E3%82%B3%E3%83%BC%E3%83%89) |
| 23 | Villager B | 450 | [Format string attack](https://ja.wikipedia.org/wiki/%E6%9B%B8%E5%BC%8F%E6%96%87%E5%AD%97%E5%88%97%E6%94%BB%E6%92%83) |
| 24 | Rights out | 100 | [icsharpcode/ILSpy: \.NET Decompiler](https://github.com/icsharpcode/ILSpy) |
| 25 | Reserved | 30 | Just another Perl hacker, [ppencode](http://namazu.org/~takesako/ppencode/) |
| 26 | Sherlock Holmes | 70 | [OS Command Injection](https://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_01.html) |
| 27 | Lives out | 150 | Reversing |
| 28 | Lo-Tech Cipher | 60 | [Visual cryptography](https://en.wikipedia.org/wiki/Visual_cryptography) |
| 29 | Double Blind | 50 | [Office Open XML](https://ja.wikipedia.org/wiki/Office_Open_XML) |
| 30 | Alpha Mixed Cipher | 80 | [Alphanumeric shellcode](https://en.wikipedia.org/wiki/Alphanumeric_shellcode) |
| 31 | KanGacha | 130 | [Length extension attack](https://en.wikipedia.org/wiki/Length_extension_attack) |
| 32 | Simple Auth | 50 | [PHP :: Doc Bug \#64069 :: Function strcasecmp will return NULL if it gets an array\.](https://bugs.php.net/bug.php?id=64069) |
| 33 | HTTPS is secure. | 180 | TLS通信解析 |
| 34 | Are you human? | 220 | OCR, [リード・ソロモン符号](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%BC%E3%83%89%E3%83%BB%E3%82%BD%E3%83%AD%E3%83%A2%E3%83%B3%E7%AC%A6%E5%8F%B7) ??? |
| 35 | Simple Auth II | 20 | [SQLite](https://ja.wikipedia.org/wiki/SQLite) |
| 36 | Are you ESPer? | 120 | Reversing |

----

#### まとめ

私のように Writeup [^2] を調べながら、過去問を進めていけば、他の人の解き方や考え方、業務的にも知っていて損はない知識も付きますので、
興味のある方は是非チャレンジしてみてください。

それではまた。

[ハンズラボ Advent Calendar 2018](https://qiita.com/advent-calendar/2018/handslab) 10日目は、@blajir さんです！