LoginSignup
0
0

【Hacker101】Micro-CMS v1_日本語WalkThrough

Posted at

1. Hacker101とは

About
Hacker101 CTF(Capture The Flag)は、安全で報酬のある環境でハッキングを学ぶために設計されたゲームです。Hacker101は、HackerOneによって運営されるハッカー向けの無料教育サイトです。このCTFは、世界を少しずつ良くするための計画の中で別の重要な要素です。一つのバグずつ、世界を改善することを目指しています。

バグバウンティなどで知られるHackerOneの運営するハッキング技術の学習環境です。
Web系の問題を中心にCTF形式の問題がそろっており、登録は必要ですが無料でできます。
自身で特別な環境を準備しなくてもいい問題もあるので始めやすいです。

一定のポイントを取るとHackerOneのバグバウンティでプライベートプログラムに招待される権利を得られます。
(権利が得られるだけですぐに招待されるわけではないです。)

2. 対象問題

今回はWebのEazy問題であるMicro-CMS v1のwriteupになります。

3. 環境

今回は特別な環境はいりません。
ブラウザがあればOKです。
わたしはEdgeで実施しました。

4. Writeup

4.0 対象サイトのチェック

  • Hacker101のHomeからMicro-CMS v1の問題をスタートします。
    image.png

  • しばらく待つと問題のWebページに遷移します。
    image.png
    なにやらTestページが2つとページを作るためのページが1つあります
    image.png
    TestページはEditすることができそうです。
    これはMarkdownのページも同じでした。

  • Create a new pageではTitleと本文を自由に入力して新しいページを作成できそうです。
    image.png
    Markdownはサポートしてるけどスクリプトは実行できないと書いてあります。
    本当でしょうか。

4.1 Flag 0

Create Pageに注目します。
何かページを作成してみましょう。
image.png

入力した内容がそのまま表示されました。
image.png

こういう場合は大体XSS(クロスサイトスクリプティング)です。
HTMLのスクリプトタグを埋め込んで実行されるか確認してみましょう。

<!-- XSSスクリプト -->
<script>alert(1);</script>

image.png

image.png
なにも起こりません。。。
やはりスクリプトは実行されないのでしょうか。。。

Homeに戻るとHomeにもTitleが表示されていることがわかります。
image.png

Titleにスクリプトを埋め込めばHomeで実行されませんでしょうか。
image.png

image.png
何も起きませんが今度はタグも表示されています。
Homeに戻ると・・・
image.png
Flagを入手できました!

4.2 Flag 1

Homeに戻るたびにFlagが表示されてうっとうしいので一度Hacker101の画面でTerminateしてから再び起動しました。
image.png

今度はURLに注目してみてみましょう。
image.png
image.png

pageごとにURLで数字を指定しています。
URLのパスパラメータではないかと予想ができます。
SQLなどでこのパラメータを利用している可能性を考えSQLインジェクションをかけてみます。
まずは

https://<ご自身の~>.com/page/'

を送信してみます。シングルクォーテーションはSQLでエラーを発生させることが多く、このエラーを確認できればどのSQLを使っているかなどの情報が得られる場合があります。
image.png
Not Foundでした。。。
しかし、編集ページのURLでも同様にパスパラメータを使っているようです。
image.png
Editページにもシングルクォーテーションでインジェクションをかけます。

https://<ご自身の~>.com/page/edit/'

image.png
Flagを入手できました!!

4.3 Flag 2

URLのパスパラメータが新しいページではどうなっているか確認してみましょう。
image.png
「11」のページが作成されています。
Markdownのページが2だったので、3~10のページの存在が怪しいです。
URLの数字を変更しながら3~10のページが存在しないか確認します。
image.png
ほとんどNot Foundでしたが、4のページだけはForbiddenで権限があればアクセスできそうです。
Editページも同様か見てみます。
image.png

Flagが入手できました!

4.4 Flag 3

Flag1の入手の際には、本文中に記載したscriptタグがフィルターされている様子が確認できました。
他にXSSで使えそうなタグはないでしょうか。
Markdown Testingのページを確認すると本文中にボタンが設置してあります。
Editページを見るとbuttonタグが認識されていることを確認できます。
image.png
ボタンタグではボタンを押した際に任意の処理を実行するように設定できます。

<button onclick=alert('geregere')>Some button</button>

このページのボタンタグを上記に編集してSaveし、作成したボタンを押してみます。
image.png

image.png
XSSの脆弱性を利用できそうなことがわかりました!

ここで任意の処理を追加するためにブラウザの開発者ツールでソースコードを見てみると・・・
image.png

Flagが表示されていました!

5. まとめ

Hacker101のMicro-CMS v1を解いてみました。
基本的な手法の基礎を確認できるいい問題だと思います。

この記事が皆さんのCTFライフの一助になっていれば幸いです。

6. 参考

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