白帽子讲web安全之5

来源:互联网 发布:淘宝最新排名规则 编辑:程序博客网 时间:2024/05/01 18:00

xss构造技巧续
*一、<base>标签*
<base>标签,其作用是定义页面上所有使用的相对路径标签的hosting地址

<base>标签可以出现在页面的任何地方,并作用位于该标签之后的所有标签

攻击者若在页面中插入该标签,通过在远程服务器上伪造图片、链接或脚本,就可以劫持当前页面中所有使用”相对路径”的标签

二、window.name

  1. 对当前窗口的window.name对象赋值,没有特殊字符的限制。
  2. 因为window对象是浏览器的窗体,而不是document对象,所以window对象不受同源策略的限制

    三、Anehta的回旋镖

  3. 反射型的xss嵌入一存储型的xss中来利用,就是回旋镖
  4. 第三方cookie是指保存在本地的cookie,即服务器设置了expire时间的cookie

    四、flash xss

  5. Flash中是可以嵌入actionscript脚本的,所以在实现xss过滤时,一般禁用<embed> <object>等标签
  6. 若网站一定使用flash的话,如果仅仅是视频文件,则要求转码为“flv”文件,因为它是静态文件,不会产生安全隐患。
  7. 限制flash动态脚本最重要的参数是“allowscriptaccess”,还有”allownetworking”

五、xss的防御
1. httponly,其解决的是xss后的cookie劫持攻击。在setcookie时植入httponly。
cookie的使用过程
a,浏览器向服务器发起请求,这时无cookie
b,服务器返回时发送set-cookie头,向客户端写入cookie
c,在该cookie到期前,浏览器访问该域下的所有页面,都将发送该cookie。
2.输入检查输出检查
3.安全编码函数
对于html代码,使用htmlencode编码方式

对于php代码,使用htmlentity()和htmlspecialchars()两个函数满足安全要求

对于javascript,使用javascriptencode编码

如果网站使用了MVC架构(是模型(model)-视图(view)-控制器(controller)的缩写),那么xss发生在view层

  • 在css,style标签中输出的话,使用encodeForCSS()函数
  • 在地址中输出使用URLEncode编码

富文本:网站允许用户提交一些自定义的HTML代码,称之为富文本。如在论坛发帖等

处理富文本要考虑输入检查的思路上来, 过滤富文本时“事件”应被严格禁止,一些危险标签如iframe script base form等应使用白名单避免使用黑名单过滤

0 0
原创粉丝点击