本文地址://www.greatytc.com/p/511e137f6cf4
第七章 漏洞利用
偷取隐私数据
Referer有时会泄露数据,比如当前url中存在隐私数据
避免的方法:
- 一是url中不放隐私的数据
- 二是添加中间跳转页,这样跳出去后referer不会有隐私数据
- 给link标签上添加
ref=noreferrer
属性,HTML5支持,所以有兼容性
<a href='http://x.com' ref='noreferrer' >link</a>
浏览器记住的明文密码
参考这边文章:XSS Hack:获取浏览器记住的明文密码
基于CSRF的攻击技术
- 基于CSRF的SQL注入
- 基于CSRF的命令执行(后台命令)
- 基于CSRF的XSS攻击
浏览器劫持技术
浏览器劫持技术是指通过劫持用户点击链接,在打开新窗口的时候注入攻击者的JS代码,达到将XSS威胁延续到同域内的其他页面
一些跨域操作技术
IE res:协议跨域 P232
CSS String Injection跨域,针对IE浏览器
test.html
<body>
{}body{font-family:
hello
}
</body>
test2.html
<style>
@import url('http://x.com/text.html');
</style>
<script>
setTimeout(function (){
var t = document.body.currentStyle.fontFamily;
alert(t);
}, 2000);
</script>
浏览器特权区域风险
比如浏览器插件等,可以与系统打交道,XSS进入到这个区域的过程,称为 Cross Zone Scripting
或 Cross Context Scripting
(简称XCS
)
其他跨域经典
利用
UNC
跨域,这里看一篇文章:《走向本地的邪恶之路》,主要是利用iframe嵌入file:///
本地文件mhtml协议跨域,这里推荐看这篇:《IE下MHTML协议带来的跨域危害》
XSS Proxy 技术
基于浏览器的远程控制
- 基于
script
跨域请求 - ajax请求
- 服务端
WebSocket
推送消息 - postMessage 方式推送指令
真实案例剖析
百度空间登陆DIV层钓鱼
利用SRC中引号等特殊号没有过滤,注入脚本,模拟官网登陆窗口,发送表单时拦截
Gmail正常服务钓鱼
人人网跨子域盗取MSN号
依赖不同子域设置相同根域
document.domain=renren.com
,拦截所有link,通过js打开页面,并保留新页面的window引用,然后注入脚本,提交表单时获取用户名、密码
跨站获取更高权限
- 案例:ECSHOP诱导管理员点击链接,添加超级管理员账号
- 提权shell
大规模XSS攻击思想
借助搜索引擎,得到某一类CMS等网站列表,通过添加友链等方式等待管理员激活
第八章 HTML5 安全
新标签和新属性绕过黑名单策略
新元素突破黑名单
- 标签
<video onerror=javascript:alert(1)></video>
<audio onerror=javascript:alert(1)></audio>
<video><source onerror=javascript:alert(1)></source></video>
<audio><source onerror=javascript:alert(1)></source></audio>
<video onloadedmetadata="javascript:alert(2)" ondurationchange="javascript:alert(3)" ontimeupdate="javascript:alert(4)" onerror="javascript:alert(1)"></video>
<video onerror=javascript:alert(1)></video>
- 新属性,可利用的属性有
formaction
、onformchange
、onforminput
、autofocus
等
History API新方法
pushState()
与 replaceState()
短地址+History新方法
- 通过短地址可以做到
<!--前-->
http://a.com/id=<script>alert(1)</script>
<!--后-->
http://bit.ly/aRsd8F
- 点击之后在浏览器中不过就会还原,于是在借助
History API
即可
http://a.com/id=<script>history.pushState(1);alert(1)</script>
<!--或者-->
http://a.com/id=<script>history.replaceState(1);alert(1)</script>
HTML5下的僵尸网络
Web Worker
new
之后会新建一个线程在主页面后台
<script>
var worker = new Worker('test.js');
worker.postMessage('hello');
worker.onmessage = function(evt){
console.log(evt.data);
}
</script>
CORS向任意网站发送跨域请求
地理位置暴露信息
附原书购买地址: http://item.jd.com/11181832.html