Vue.js サンプルアプリケーション

私の名前は {{ name }} です!

あなたは[XSS]さんなんだね。

inject

src

<?php
$eq 
rand(0100) . "+" rand(0100);
$random1 rand(0100000000000);
$random2 rand(0100000000000);
$random3 rand(0100000000000);
?>
<head>
    <meta http-equiv="Content-Security-Policy" content="script-src 'nonce-<?= $random1 ?>' 'nonce-<?= $random2 ?>' 'nonce-<?= $random3 ?>' 'unsafe-eval';">
    <script src="hook.js" nonce="<?= $random3 ?>"></script>
</head>
<body>    
    <h1>Vue.js サンプルアプリケーション</h1>
    <div id="app">
        <p>私の名前は {{ name }} です!</p>
        <p><?= isset($_GET['payload'])? "あなたは" $_GET['payload'] . "さんなんだね。" "あなたの名前を教えてよ!" ?></p>
    </div>

    <h1> inject </h1>
    <form>
        <input type="text" id="payload" name="payload" placeholder="your payload here">
        <input type="hidden" id="equation" value="<?= $eq ?>">
        <input type="submit" value="GO">
    </form>

    <script nonce="<?= $random2 ?>" src="vue.js"></script>
    <script nonce="<?= $random2 ?>" src="ui.js"></script>    

    <h1> src </h1>
    <?php highlight_string(file_get_contents(basename(__FILE__))); ?>
</body>