获取内网ip端口:Image对象请求时,得到资源后就触发onerror事件(因为这个资源不是正常的图片),得不到就进入timeout机制,通过这个原理来判断目标IP与端口是否存在,不过这个功能不太稳定;还可以尝试通过跨域AJAX技巧或Web Socket方法实现IP端口的获取;
获取内网主机存活状态:主机存活状态的获取技巧很不错,本质是通过跨域AJAX请求进行的判断,比较稳定;
开启路由器的远程访问能力:默认的“远程管理IP地址”是0.0.0.0,如果设置为255.255.255.255,则允许互联网上任意IP进行远程Web方式的管理,即通过浏览器登录这台FAST的外网IP,输入用户名与密码即可进行管理操作;
内网脆弱的web应用控制:通过Referer有可能泄露内网Web应用的地址,即通过对Referer的判断可能猜测出这个Web应用的类型,还可以通过fuzzing方式,猜测内网可能存在的Web应用;常见的内网Web应用类型有:BBS、Blog、Trac、Wiki、OA、WebMail、项目管理、客服后台、存在漏洞的Web应用环境等;
7.4.基于CSRF的攻击技术基于CSRF的攻击技术也是一种比较通用的思想:基于CSRF的攻击技术也是一种比较通用的思想
包括如下内容:基于CSRF的SQL注入;基于CSRF的命令执行;基于CSRF的XSS攻击;
7.5.浏览器劫持技术浏览器劫持技术是指通过劫持用户点击链接操作,在打开新窗口的时候注入攻击者的JavaScript脚本,以达到将XSS威胁延续到同域内的其他页面
7.6.一些跨域操作技术ie res:协议跨域
css string injection跨域:一个非常有趣的跨域技巧,@import方式导入外域CSS文件本身是一个正常的行为,然后IE通过document.body.currentStyle.fontFamily方式访问目标样式的font-family属性,它的值是font-family之后的所有内容,这是CSS高容错性导致的
浏览器特权区域风险
浏览器扩展风险:浏览器为了丰富自身的功能,允许第三方提供各类插件或扩展,但这些扩展的权限如果没控制好,就会带来严重的后果
跨子域:document.domain技术技巧:跨子域:document domain技巧非常好用,属于浏览器的性质;有一个合法的性质是:这个页面可以设置document.domain为当前子域或比当前子域更高级的域,一般顶级就到了根域;
更多经典的跨域索引:1.利用UNC“跨域”:通过Internet域(http协议)的代码,比如<iframe>标签利用file协议调用本地的XSS漏洞页面,并通过这个本地XSS执行任意的JavaScript代码,由于是file协议,权限会更大,比如,利用AJAX读取本地文件;2.mhtml:协议跨域;
7.7.XSS Proxy技术XSS Proxy技术用到了基于浏览器的远程控制上,这是一种非常好的思想,现在很多XSS利用框架,如XSS Shell、BeEF、Anehta等远程控制都是基于XSS Proxy的
要实现远程控制,必须具备以下两个条件:远控指令要在目标浏览器上“实时”执行;执行结果要能够让控制端看到
XSS Proxy技术的4种思路,各有千秋
浏览器[script]请求:<script>标签请求内容可跨域,这是合法的功能,请求到的数据必须是合法的JavaScript语法格式;包括请求回来的是JSON+CallBack函数这样的数据内容(这种跨域数据通信被称为JSONP);
浏览器跨域ajax请求:跨域AJAX请求也需要浏览器setInterval去主动发起服务端指令接口请求。唯一的好处是,这种请求时异步发起的,会显得更加安静;
服务端websocket推送指令:严格地说,WebSocket技术不属于HTML5,这个技术是对HTTP无状态连接的一种革新,本质就是一种持久性socket连接,在浏览器客户端通过JavaScript进行初始化连接后,就可以监听相关的事件和调用socket方法来对服务端的消息进行读写操作;
postMessage方式推送指令:HTML5的postMessage机制非常完美,是客户端最直接的跨文档传输方法,一般用在iframe中父页与子页之间的客户端跨域通信;这个技巧如果用于XSS Proxy上可能有些绕,攻击者需要动态生成,然后在客户端进行跨域传输指令。这是一种思路,不过不好;
第八章 HTML5安全HTML5现在由WHATWG、W3C、IETF三个组织来共同开发制定
8.1.新标签和新属性绕过黑名单策略白名单和黑名单过滤器策略是防御XSS攻击的重要方法
跨站中的黑名单策略