BlackHat2020议题之Web缓存投毒
周末闲着没事就来学习下新的思路吧
本文将会介绍Web缓存投毒的各种骚姿势以及利用链,并会搭配相应案例进行讲解,看完你一定会有收获的。Have Fun!
Web缓存投毒基础
Web缓存大家应该都有所了解吧,这是一种典型的用空间换时间的技术。而Web缓存一般分为两种
- 浏览器缓存
- Web服务器端缓存
两者原理都是差不多的,只不过缓存的位置不一样,一个是把请求过的资源暂且放在浏览器
这样当用户下一次访问相同资源的时候,就不需要再访问Web服务器了,甚至连网络请求都不用发送出去就可以得到对应的资源
而另一个则是把请求过的资源暂且放在一个专门的缓存服务器上,例如CDN,这样,当下一个用户访问同样的资源时就可以直接从缓存服务器上拿到响应,从而减轻Web服务器的压力
本文所探讨的缓存投毒都是针对服务器端的缓存,浏览器缓存投毒暂不讨论…
不知道大家读完上面的内容是不是有这么一个疑问:
服务器怎么确定两个用户访问的是同一个资源呢?
诶,这个时候就要提到cache key了,这个cache key是用来标识每个请求的,如果两个请求的cache key相同,那么服务端就认为他们是同一个请求,如果此时缓存服务器上已经有该cache key指定的请求对应的资源文件了,就直接从缓存服务器返回一个响应给用户,如果缓存服务器上还没有该资源则把这个请求转发到Web服务器,让Web服务器响应该请求
那么有人又要问了:
那cache key是根据什么规则生成的呢?
其实很简单,就是提取http请求中的某些元素组成一个cache key,一般情况下cache key是由请求方法、路径、query、host头组成。例如下面这样一个http请求
它的cache key就可以为https|GET|portswigger.net|/research?x=1
,注意我这里的用词,是“可以为”,也就是说cache key的生成规则不是固定的,不同的网站、应用的cache key生成规则是不一样的,这个是可以自定义的
http请求中没有被用作cache key的部分我们称其为“unkeyed”元素,如果一个unkeyed的元素可以被用来生成一个危险的响应,那么我们就可以利用这个元素来进行缓存投毒,并影响其它用户。
文字阐述可能不是太好理解,那么我举一个
BlackHat2020议题之Web缓存投毒相关推荐
- stm32 web get 参数_BlackHat2020议题之Web缓存投毒
周末闲着没事就来学习下新的思路,文章很长,花了一天时间才码出来,所以,你懂我意思吧? 对了,周末打算出去走走,所以就不更文了 本文将会介绍Web缓存投毒的各种骚姿势以及利用链,并会搭配相应案例进行讲解 ...
- 研究员发现70个web缓存投毒漏洞,获奖4万美元
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 虽然web 缓存投毒漏洞为人熟知,但仍然会突然出现在网络.安全研究员 Iustin Ladunca (Youstin) 对很多网站展开大规模研究 ...
- 12年前的 Linux bug 复活,DNS 缓存投毒攻击重现
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 清华大学和加州大学组成的研究团队发现一种可发动 DNS 缓存投毒攻击的新方法.这种方法重新激活了本以为已完全修复的2008年现身的一个 ...
- Web缓存中毒(web cache poisoning)学习笔记
笔者burpsuite的在线安全学院的web cache poisoning学习笔记.限于本人水平,笔记质量不是很高,假如有看到的大佬轻喷,很多地方是Google翻译的. 首先推荐篇翻译的文章,方便理 ...
- 缓存和web缓存分别是什么?
什么是缓存? 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.缓存的设置是所有现代计 ...
- 基于反向代理的Web缓存应用-可缓存的CMS系统设计
基于反向代理的Web缓存加速 --可缓存的CMS系统设计 作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com 写于:2003/05 ...
- 五、cookie和web缓存
一.cookie 因为HTTP是无状态的,但是网站希望可以识别用户和与用户交互的内容,因此,大多数网站都用了cookie来跟踪用户,来管理用户的状态.示意图如下 cookie有四个部分组成:1.HTT ...
- 说说web缓存-强缓存、协商缓存
网上关于WEB缓存的文章很多,今天汇总一下. 为什么要用缓存 一般针对静态资源如CSS,JS,图片等使用缓存,原因如下: 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影 ...
- 常见的DNS攻击——偷(劫持)、骗(缓存投毒)、打(DDos)
常见的DNS攻击包括: 1) 域名劫持 通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民 ...
最新文章
- FTPFileUtil_FTP文件上传 (spring boot)
- 皮一皮:这是人干的事?
- WinSocket简单编程实验
- oracle级联备库创建,ORACLE 11G 备库传备库级联传递(cascade dg) 的配置方法
- 国外计算机科学英语演讲,2014年暨大英语演讲大赛圆满落幕
- Chrome 访问一次 Controller,请求却执行两次
- parsel安装老是失败_Photoshop安装失败解决办法
- [转]Insert, Update, and Delete Destination table with SSIS
- IFIX上位机网络测试画面
- 遇到一个gcc编译器版本导致的运行结果有差异的问题
- Nginx正、反向代理以及负载均衡介绍
- Linux下squid代理缓存服务环境部署
- 算法与数据结构实验题 4.1 伊姐姐数字 game
- MFC Windows程序设计学习笔记--文件和串行化
- HUAWEI nova 青春版“大尺度”内存,手机再满都不怕
- 谷歌Chrome浏览器提示adobe flash player已过期完美解决办法
- Excel转PDF基于Microsoft.Office.Interop.Excel
- java 异步上传一张图片_java异步上传图片
- Goby内测版1.8.292|后台扫描、导出截图等功能上线(文末福利等你~)
- 2022-2027年中国旅游地产行业发展前景及投资战略咨询报告
热门文章
- AndroidStudio调用系统相册选择图片并显示、将图片保存到私有空间
- Java学习——逻辑运算、双分支结构(if\else)
- pn532写入手机nfc_NFC的PN532 读写命令格式
- 国家信息安全水平考试NISP一级模拟题(02)
- redirectType=Found和redirectType=Permanent哪个是301哪个是302?
- Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档
- mpvue实现类似通讯录锚点
- 【Python】文件选择框选择文件
- 计算机毕业设计JAVA高校体育场馆预约管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
- Linux 【网络】C10K 和 C1000K 回顾