一、检测referer的场景

》缓解CSRF攻击

若referer为空,或referer不属于自身域及子域,则拒绝后续操作​(更改密码、更改昵称)

》加固以jsonp方式获取信息

譬如​,链接https://passport.jd.com/loginservice.aspx?callback=jQuery8483115&method=UserInfo&_=1522914283457返回用户信息

攻击网页使用script标签,src设置为​https://passport.jd.com/loginservice.aspx?callback=attack&method=UserInfo&_=1522914283457,然后声明函数attack,网页就可钓鱼获取到用户信息了

​若referer为空,或referer不属于自身域及子域,则拒绝返回信息

》防止音视频盗链​

​在网页中使用video标签加载视频https://api.huoshan.com/hotsoon/item/video/_playback/?video_id=f0b9acc12f944e5294be13f906bbc86a&line=1&app_id=1112&vquality=normal,是会被服务器拒绝的,原因就是referer检测不通过

视频站检测可以避免为不法网站提供免费的视频存储

二、referer检测方法

referer检测本质就是从链接中获取host部分,判断host是否在允许域名列表中​

,通常使用正则表达式进行检测,但往往会出现绕过情况,如下

受保护域名:www.target.com​

验证方法:​

1、 referer.indexof("target.com") !=-1

​2、referer.match(/^http(s?):\/\/.+\.target\.com\//i)

3、referer.host.endwith("target.com")​

4、referer.host.indexof("target.com") !=

-1​

​(host为referer中的域名部分)

攻击者referer:

1、http://www.attack.com/?id=target.com​

2、​http://www.attack.com/?idtarget.com/aaa

3、http://www.attacktarget.com/xxx​

4、http://www.target.com.attack.com/xxx​

可以发现上面的验证方法均存在漏洞

安全的做法

1、referer.host.match(/^.*\.target\.com$/)​

2、referer.host.endwith(".target.com")

三、其他绕过方法

若检测规则为:若referer不为空,则referer必须来自允许的域名

则可以想办法​使referer为空

》​iframe src属性、embed src属性、object

data属性的data URI

(text/html)模式,可以发出不带referer的请求

​iframe /embed

src="data

:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ+"​

object data=​"data

:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ+"​

》​meta name="referrer"

content="no-referrer" 页面中的video等标签不会出现referer

》​a标签的rel=noreferer

四、url跳转

》url跳转中也会涉及到以上host的判断

》结合parse_url和浏览器的一些特性,会出现一些新的绕过方式:

》》比如, desturl =

https://baidu.com​​​​#@target.com,

php会将最后一个@之前的部分解析成user:pass部分,所以desturl可以通过检测,但是浏览器却会忽略#后的字符,最终跳转到evil.com

​(php parse_url bug:https://bugs.php.net/bug.php?id=73192)​

》》比如oauth中,大部分应用会严格判断client_id和desturl的一致性​,且会检测desturl是否在允许范围。但有些应用允许desturl为子域名

若desturl=http://evil.com\.target.com,php解析到的host为evil.com\.target.com,在子域名范围内,允许跳转。但在浏览器中正反斜杠代表一样内容,导致浏览器会跳转到evil.com

php绕过refer,绕过referer检测url跳转相关推荐

  1. 网站漏洞检测服务 URL跳转漏洞的检测与修复

    网站渗透测试是指在没有获得网站源代码以及服务器的情况下,模拟入侵者的攻击手法对网站进行漏洞检测,以及渗透测试,可以很好的对网站安全进行全面的安全检测,把安全做到最大化.在挖掘网站漏洞的时候我们发现很多 ...

  2. 关于文档钓鱼和绕过杀毒软件的静态检测

    本文章仅做为教学目的,若本文章的技术造成财产损失,本文作者概不负责 文章目录 1.将word文件存储在可执行文件中 2释放资源,导出文档和dll文件 2.1先进行变量的初始化操作 2.2获取内置文档和 ...

  3. 拦截锚点修改url_浅谈URL跳转与Webview安全

    学习信息安全技术的过程中,用开阔的眼光看待安全问题会得到不同的结论. 在一次测试中我用Burpsuite搜索了关键词url找到了某处url,测试一下发现waf拦截了指向外域的请求,于是开始尝试绕过.第 ...

  4. URL跳转漏洞详解与实战

    URL跳转漏洞描述 服务端未对传入的跳转url变量进行检查和控制,可导致恶意用户构造一个恶意地址,诱导用户跳转到恶意网站. 跳转漏洞一般用于钓鱼攻击,通过跳转到恶意网站欺骗用户输入用户名和密码来盗取用 ...

  5. 网络安全学习笔记——域名伪装与URL跳转漏洞

    目录 域名伪装基本概念 URL跳转漏洞 漏洞原理 发生场景 实现方式 防护方法                                                             ...

  6. 添加url白名单_赏金技巧 | URL跳转Bypass案例

    前言 在第一军团这么久了,参加了几次"SRC赏金活动",挖掘了一个比较有意思的漏洞,这里来说明下. 开始 发现一个URL跳转点:http://xxx.com/?src=http:/ ...

  7. Web安全-URL跳转与钓鱼

    概述 URL跳转事件是比较常见的,比如,登陆网页以后,从登陆页面跳转到另一个页面,这就叫做URL跳转,但是URL跳转怎么和网络钓鱼联系在一起呢?下面将详细介绍URL跳转与钓鱼. URL重定向漏洞也称U ...

  8. express url跳转(重定向)的实现:res.location() res.redirect()

    Express 是一个基于Node.js 实现的web框架,其响应HTTP请求的response对象中有两个响应url跳转方法res.location() res.redirect(),可以实现301 ...

  9. python新奇检测_3种Python检测URL状态

    需求:Python检测URL状态,并追加保存200的URL 代码一: #! /usr/bin/env python #coding=utf-8 import sys import requests d ...

最新文章

  1. Lync 小技巧-24-PDF 加密文件-转-Word-操作手册
  2. 科技领袖技术大亨们被指是现代强盗:不仅赚钱还想垄断
  3. 安装SQL2K,当创建挂起文件操作之后...
  4. 解决网页中不能复制文字的问题
  5. double取值范围 java_Java中float/double取值范围与精度
  6. web 自动化测试 selenium基础到应用(目录)
  7. 计算机科学导论数据运算,补基础:自学:计算机科学导论 第四章 数据运算(示例代码)...
  8. python免费教程视频-28岁想从零开始自学python,有哪些靠谱免费的视频?
  9. win10 常用DOS命令
  10. pip卸载pillow时的报错解决
  11. 【Adobe Premiere Pro 2020】pr2020文字与图形的关键帧制作说明、各类字体添加和字幕创建说【包含动态字幕】、特效添加说明【混合视频剪辑】
  12. 基于JSP的美食论坛系统毕业设计
  13. 面试经历---YY欢聚时代
  14. 单片机c语言sfr数据读,单片机c语言的sbit和sfr.docx
  15. 在Windows电脑上ae模板怎么用
  16. 数字图像处理之图像修复
  17. 编码器 | 如何用两片8线-3线优先编码器扩展成16线-4线——数电第四章学习
  18. 微信小程序开发中的这些坑你遇到过吗?
  19. 均匀节点插值与切比雪夫插值以及龙格现象
  20. 查看电脑重启日志_我怀疑有人动了我的电脑……

热门文章

  1. Url被多次转义 URLDecoder.decode(url,“UTF-8“)
  2. ARM裸板调试之串口打印及栈初步分析
  3. python安装镜像numpy_[Python]使用镜像网站自动、自动和手动安装numpy,Numpy
  4. java俄罗斯方块程序_使用JAVA编写的俄罗斯方块程序, 具有非常全面的功能.
  5. 2015-07-20-struts-struts2简介
  6. 软件设计文档示例模板,万能的软件设计文档模板
  7. 谷歌人机验证Google reCAPTCHA
  8. 【UbuntuROS】干货!小伙伴们快来拿,超全机械臂抓取开源项目!
  9. 分贝测试软件哪个好 家庭影院,家庭影院DIY攻略 攻略篇 – 5.2 音频解码能力
  10. 2015.03.19---PHP XCAP开发,PHP XML导出, PHP数组的操作,PHP反射机制