今までのCTF人生を振り返って
今日は、今までのCTF人生(それほど長くない)を振り返ってみたいと思います。
続きを読むCTF駆動には限界があると言う話
こんにちは。今週担当の坂口です。
今回は技術云々というよりは、最近になってやっと気づいてきた事などを書きたいと思います。
2014 ADCTF 2日目 alert man
サイトに飛んでみると入力ホームが現れる。
問題はアラート(XSS)を出すという問題。
そこに入力すると自分が入力したものと同じものがbodyのid=1に追加されていく仕様になっている。
いつも通り最初にこれを試す
<script> alert(1) </script>
これを入力すると空白がかえってくる。そこで"script"タブが使えないということが分かった。
次に、
javascript:alert(1);
を試す。でもこれは、文字として認識されてしまってjavascriptが動かなかった。
ここで、タグが使えるかどうかを確認するために
<img src=x >
これを実行したら画像が壊れた。あとは、簡単
<img src=x onerror=alert(1)>
これで1を出力出来た。
同じ要領でXSSを出力させようと思ったら、できない
なんでと思って、ソースを見るそしたら、
t = tweet.replace(/['"]/g, '');
がでてきた。これによると、ダブルコーテーションとシングルコーテーションはなくなるようなので変更
<img src=x onerror=alert(/XSS/.source)>
これでXSSできてflagもゲット出来た。
脆弱性「FREAK」とは
つい先日、SSL/TLSの実装の部分の脆弱性として、「FREAK」というものがでました。
この「FREAK」というのは「Factoring RSA Export Keys」の略で、通信する際のRSA暗号の強度を強いものから弱いものに変更することで、簡単にRSAの暗号を解読し、通信を傍受することができるといったもの。この脆弱性はSSLやTLSの通信プロトコルに関してのものなので、サーバ側とクライアント側の両方に存在しているとのこと。
今回のFREAKの起因は、SSLが出てきた1990年代のときに、NSAが外国でやりとりするセキュアな通信を傍受したいと考えていたため、米国国内では強度の強い暗号、外国では、弱い暗号を使用させるような規制を作りました。もちろん、この規制は2000年に廃止されたのですが、現在でもこのようなコードを使用しているものがあり、それが今回脆弱性として現れたようです。
続きを読む