かをるさんの生活。

かけだし しょしんしゃ の えんじにあ 生活. 

Flaggers (problem15 alert)

こんにちは.かをるです.

エンジニアになったので,自己研鑽を兼ねてCTFとやらをのんびりはじめました.

 

いきなり大会!というのはハードルが高いので,"CTF 初心者" で検索してヒットした記事で紹介されていたFlaggersさんでぽちぽち手を動かしてみました.

忘備録のため,調べたことをかいておきます.(答えが含まれます.ご注意を)

alert (web)

どういうページ?

・入力フォームがあって,文字が入力できる.

・URL以外のものを入力すると, "URLが正しくありません" って怒られる.

 

やったこと

ソースコードを見る

document.getElementById('frame').setAttribute('src', text(document.getElementById('url').value));

入力フォーム(idがurl)にURLを入れると frame要素にURL先が描画されそう.

 

ぐぐる

"url xss" とかで安直に検索した.一番参考にしたのはこのページ

Bypass XSS filters using data URIs - Paladion Networks

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGV
sbG8iKTs8L3NjcmlwdD4="></object>

なるほど,base64でかけばよいのか.

ここに行き着く前にも,たとえば,data:text/html,<script> alert("1")</script> の形で書けば表示できることがわかったのですが,ページにエンコードがきちんと書かれていたのでscriptは発火せずでした.

どうすればいいのかなぁと漂っていたら,わかってすっきり.

 まとめ

使ったのは(こたえになっちゃうけど)Data URI Scheme

お勉強になりました.

 

またのんびりがんばるぞ~