Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Caesar Cipher Translator:Web:88pts

シーザー暗号をエンコードするページを作成途中なのですが, どうもこのままだとマズいと先輩に指摘されました。 どうもXSSというのがあるようです。本当に実施できるか信じられないので, 実際にinjectedという文字列を出してもらえますか?
http://34.82.49.144:3333/
2020-12-06 01:37追記: <script>タグを用いたXSSだとflagが出ない場合があります。 その際はDMでご連絡いただくか, 他の方法を試してみてください。

Solution

URLに飛ぶとシーザー暗号のサイトのようだ。
Caesar Cipher Translator
site.png
試しにabcdefを入力するとnopqrsと出力された。
ROT13のようだ。
XSSを引き起こせと言われているので、怪しい部分を見てみる。

~~~
    <form method="post" action="index.php">
        Raw: <input type="text" name="text"/>
        <button type="submit">変換!</button>
    </form>
    Result: <input value="nopqrs" />
    <button id="cpyToClipboard" placeholder="まだ実装してないよ">コピー</button>
~~~

">を入力すると表示が崩れるため、暗号文がinputのvalueにサニタイズなしで入っているようだ。
ROT13は再度かけると元に戻るので、HTMLとして意味のあるタグをROT13したものを入力する。
"><script>alert("injected");</script>が欲しいので、"><fpevcg>nyreg("vawrpgrq");</fpevcg>となる。
入力するとalertされるが、scriptタグではバグでflagが出ないようだ。
inputタグ内でのイベントハンドラを用いたXSSを行う。
" onmouseover="alert('injected');が欲しいので、" bazbhfrbire="nyreg('vawrpgrq');となる。
マウスオーバーでalertされると、無事flagが表示された。
flag
flag.png
別解としては、開発者ツールのコンソールからalert('injected');を叩いてもflagが得られる。

taskctf{n1ce_inject10n!}