sonickun.logスマートフォン用の表示で見るsonickun.log備忘録この広告は、90日以上更新していないブログに表示しています。横浜地方大会の決勝戦で出された「箱庭XSS」を解いてみました。(過去記事)の時に頂いたものを使わせていただきました。箱庭XSSこんなかんじで、ただひたすらXSSをするためだけの素敵なソフトです。XSSの練習には持って来いですね。1~6まであり、問題はすべて「『XSS』と書かれたalertボックスを表示させてください。1「<」と「>」と「X」と「S」は使えない。「XSS」と書かれたalertボックスを表示させてください。<br>(ただし、「&lt;」と「&gt;」と「X」と「S」は使えません。value='Send'></form>「<」と「>」が使えない時はたいていイベントハンドラを使うと良いらしい。onmouseover='alert("xss".toUpperCase())このXSS送信した後、入力ボックスにマウスを持っていく(onmouseover)とアラートが表示されます。"toUpperCase()"で"xss"を大文字に変換しています。2「<」と「>」と「X」と「S」と「x」は使えない。「XSS」と書かれたalertボックスを表示させてください。<br>(ただし、「&lt;」と「&gt;」と「X」と「S」と「x」は使えません。value="Send"></form>更に条件が厳しくなって、小文字のXは使えません。ここではunicodeを使う方法を取ります。onmouseover="alert('\u0058\u0053\u0053')これでクリアです。3「<」と「>」と「X」と「S」と「x」と「\」は使えない。「XSS」と書かれたalertボックスを表示させてください。<br>(ただし、「&lt;」と「&gt;」と「X」と「S」と「x」と「\」は使えません。value="Send"></form>先程のASCIIコードでは書けないののですが、16進数を10進数に直すとこんな書き方ができます。4「<」と「>」と「X」と「S」と「x」と「&」は使えない。「XSS」と書かれたalertボックスを表示させてください。<br>(ただし、「&lt;」と「&gt;」と「X」と「S」と「x」と「&amp;」は使えません。2とまんま同じ方法で解けました。5「<」と「>」と「X」と「S」と「x」と「'」は使えない。「XSS」と書かれたalertボックスを表示させてください。<br>(ただし、「&lt;」と「&gt;」と「X」と「S」と「x」と「'」は使えません。value="Send"></form>これは悩みましたが、ググったら出てきました。6「<」と「>」と「X」と「S」と「'」と「"」と「&」と「\」は使えない。「XSS」と書かれたalertボックスを表示させてください。<br>(ただし、「&lt;」と「&gt;」と「X」と「S」と「'」と「"」と「&amp;」と「\」は使えません。value="Send"></form>ぱっと見マジキチの問題に見えますが、これまで使った手法を組み合わせて解けました。ソースを良く見るとvalueはダブルクオートでもシングルクオートでもなく、バッククオートを使って囲っていることが分かります。onmouseover=`alert(/xss/.source.toUpperCase())やったぜ。(1)月別アーカイブ参加グループはてなブログをはじめよう!sonickunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。