web基础漏洞-界面操作劫持

发布时间 2023-05-29 13:12:42作者: 挖洞404

1、介绍

界面操作劫持攻击是一种基于视觉欺骗的web会话劫持攻击,它通过在网页的可见输入控件上覆盖一个不可见的框iframe,使得用户误以为在操作可见控件,而实际上用户的操作行为被不可见的框所劫持,执行不可见框中的恶意劫持代码,从而完成在用户不知情的情况下窃取敏感信息、篡改数据等攻击。

  • 关于界面操作劫持,网络上资料相对较少,建议参考《web前端黑客技术揭秘》(钟晨鸣 徐少培)
  • 界面操作劫持实际上突破了csrf的防御策略,这是一种社工色彩很强的跨域操作,而这种跨域正好是浏览器自身的特性。
  • 可以分为点击劫持clickjacking、拖放劫持drag&drop jacking、触屏劫持tapjacking

2、iframe实现

(1)透明层使用css样式实现

(2)使用iframe来嵌入被劫持的页面。

<iframe id="" src="http://www.abc.com" scrolling="no">

3、防护

(1)X-Frame-Options头部字段

X-Frame-Options是微软提出的一个http响应头部字段,专门用来防御利用iframe嵌套的点击劫持攻击。

并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。

这个头有三个值:(只要设置任意一种即可有效防止操作劫持漏洞)

DENY               // 拒绝任何域加载  
SAMEORIGIN         // 允许同源域下加载  
ALLOW-FROM         // 可以定义允许frame加载的页面地址

php中设置示例:
header ( "X-FRAME-OPTIONS:DENY"); 

(2)检查referer

当iframe元素发出请求时,referer字段携带当前页面的地址,服务端接收后代码进行检查,禁止跨域请求目标url