http://blog.chinaunix.net/uid-27070210-id-3255407.html

乍一看,好像和以前 css history hack 差不多,其实原理还是不一样的。
浏览器的 history 对象是比较特别的一个东西,与浏览历史不同,这个对象不是保存在本地的那个,也没那么多内容。
history对象是浏览器在生命周期中,比如tab页,访问的历史记录,用于提供"前进"、"后退"等操作。
在firebug里可以看到这个对象有以下几个属性:

history 对象里保存的url是一个list,这个list出于同源策略(SOP)的原因是不可读的。
但是 history.length 却是可读的,XSHM就是利用 history.length 可读,同时一些url发生变化时对length长度改变的特点来完成信息刺探的。
具体如下:
Browser History  is a global  list of pages  that have been visited using a browser tab.
By pressing the back and forward buttons of a browser, a user jumps through her browser
history.  If  a  page  contains  IFRAME,  any  location  changes  inside  IFRAME  are  also
recorded  in  the browser's  history. Consequently, opening  the  same URL multiple  times
will insert only one entry into the history list.  If a user opens Page A and this page uses
the HTTP Redirect directive to open Page B, only Page B will be stored in the browser‟s
history.

注意最后加粗的这句,如果发生了重定向,那么history对象只会增加重定向后指向的最终页面相同的页面不会重复进入history对象的list

利用这个特性,就可以实施许多跨域的刺探了
Algorithm:
1.  Create IFRAME with src=Page B
2.  Remember the current value of history.length 
3.  Change src of IFRAME to Page A
4.  If the value of history.length is the same– then the CONDITION is TRUE
比如作者的例子,检测用户是否有登录:

利用类似的方法,作者举了很多实际应用的例子,在某些情况下,配合其他漏洞使用,还是有一定作用的。

关于XSHM(Cross-Site History Manipulation)的更多相关文章

  1. 代码漏洞扫描描述Cross Site History Manipulation解决办法[dongcoder.com]

    代码漏洞扫描 漏洞描述:Cross Site History Manipulation 简要描述:产品的行为差异或发送不同的反应,在某种程度上暴露了与安全性相关的产品状态,例如特定的操作是否成功.可能 ...

  2. XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)

    本文是 XSS防御检查单的翻译版本 https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sh ...

  3. WebGoat学习——跨站请求伪造(Cross Site Request Forgery (CSRF))

    跨站请求伪造(Cross Site Request Forgery (CSRF)) 跨站请求伪造(Cross Site Request Forgery (CSRF))也被称为:one click at ...

  4. WebGoat学习——跨站脚本攻击(Cross‐Site Scripting (XSS))

    跨站脚本攻击(Cross‐Site Scripting (XSS)) XSS(Cross Site Script)跨站脚本攻击.是指攻击者向被攻击Web 页面里插入恶意html代码,当用户浏览该页之时 ...

  5. Cross Site Request Forgery (CSRF)--spring security -转

    http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html 13. Cross ...

  6. 跨站脚本攻击(Cross‐Site Scripting (XSS))

    跨站脚本攻击(Cross‐Site Scripting (XSS)) 跨站脚本攻击(Cross‐Site Scripting (XSS)) XSS(Cross Site Script)跨站脚本攻击.是 ...

  7. 跨站请求伪造(Cross Site Request Forgery (CSRF))

    跨站请求伪造(Cross Site Request Forgery (CSRF)) 跨站请求伪造(Cross Site Request Forgery (CSRF)) 跨站请求伪造(Cross Sit ...

  8. Healwire Online Pharmacy 3.0 Cross Site Request Forgery / Cross Site Scripting

    Healwire Online Pharmacy version 3.0 suffers from cross site request forgery and cross site scriptin ...

  9. DVWA 黑客攻防演练(十四)CSRF 攻击 Cross Site Request Forgery

    这么多攻击中,CSRF 攻击,全称是 Cross Site Request Forgery,翻译过来是跨站请求伪造可谓是最防不胜防之一.比如删除一篇文章,添加一笔钱之类,如果开发者是没有考虑到会被 C ...

随机推荐

  1. php 会话控制(了解cookie与session之间的区别与联系)

    相同点: 都可以在解决HTTP无状态的问题,使同一个客户端在访问网站的多次请求中,可以保存,设置信息,并且在请求事物之间建立联系. 不同点: 简单的说cookie的信息保存在客户端,session的信 ...

  2. chrome使用技巧(转)

    原文:http://www.cnblogs.com/liyunhua/p/4544738.html 阅读目录 写在前面 快速切换文件 在源代码中搜索 在源代码中快速跳转到指定的行 使用多个插入符进行选 ...

  3. 循序渐进学.Net Core Web Api开发系列【3】:WebApi开发概览

    系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 目前我们已 ...

  4. linux环境下source vimrc提示错误unexpected token `"autocmd"'

    编辑完vimrc之后,使用source /etc/vimrc之后报错: $ source /etc/vimrc bash: /etc/vimrc: line 15: syntax error near ...

  5. Linux下实现自动设置SSH代理

    SSH的巨大价值体现在能够配置为代理服务器上.不像在Windows下每次还需要手动登录设置,Linux有很好的工具链能够实现自动设置SSH代理,就是expect和ssh的联合使用,再加上proxych ...

  6. javaSrript_数据类型(2017-03-15)

    一.综述 javaScript中的数据类型分为两类: 基本类型: undefined:未定义.当声明变量却没有赋值时会显示该值.可以为变量赋值为undefined null:空.无.表示不存在,当为对 ...

  7. 用css解决table文字溢出控制td显示字数(转)

    场景: 最左边这栏我不行让他换行,怎么办呢? 下面是解决办法: table{ width:100px; table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义 ...

  8. .net core下的dotnet全局工具

    .net core 2.1后支持了一个全新的部署和扩展命令,可以自己注册全局命令行. dotnet install tool -g dotnetsaydotnetsay 也可以自己构建自己的命令行,一 ...

  9. STM32F4 External event -- WFE 待机模式

    The STM32F4xx are able to handle external or internal events in order to wake up the core (WFE). The ...

  10. Canbus ID filter and mask

    Canbus ID filter and mask CANBUS is a two-wire, half-duplex, bus based LAN system that is ‘collision ...