周末闲着没事就来学习下新的思路吧

本文将会介绍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缓存投毒相关推荐

  1. stm32 web get 参数_BlackHat2020议题之Web缓存投毒

    周末闲着没事就来学习下新的思路,文章很长,花了一天时间才码出来,所以,你懂我意思吧? 对了,周末打算出去走走,所以就不更文了 本文将会介绍Web缓存投毒的各种骚姿势以及利用链,并会搭配相应案例进行讲解 ...

  2. 研究员发现70个web缓存投毒漏洞,获奖4万美元

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 虽然web 缓存投毒漏洞为人熟知,但仍然会突然出现在网络.安全研究员 Iustin Ladunca (Youstin) 对很多网站展开大规模研究 ...

  3. 12年前的 Linux bug 复活,DNS 缓存投毒攻击重现

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 清华大学和加州大学组成的研究团队发现一种可发动 DNS 缓存投毒攻击的新方法.这种方法重新激活了本以为已完全修复的2008年现身的一个 ...

  4. Web缓存中毒(web cache poisoning)学习笔记

    笔者burpsuite的在线安全学院的web cache poisoning学习笔记.限于本人水平,笔记质量不是很高,假如有看到的大佬轻喷,很多地方是Google翻译的. 首先推荐篇翻译的文章,方便理 ...

  5. 缓存和web缓存分别是什么?

    什么是缓存? 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.缓存的设置是所有现代计 ...

  6. 基于反向代理的Web缓存应用-可缓存的CMS系统设计

    基于反向代理的Web缓存加速     --可缓存的CMS系统设计 作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com 写于:2003/05 ...

  7. 五、cookie和web缓存

    一.cookie 因为HTTP是无状态的,但是网站希望可以识别用户和与用户交互的内容,因此,大多数网站都用了cookie来跟踪用户,来管理用户的状态.示意图如下 cookie有四个部分组成:1.HTT ...

  8. 说说web缓存-强缓存、协商缓存

    网上关于WEB缓存的文章很多,今天汇总一下. 为什么要用缓存 一般针对静态资源如CSS,JS,图片等使用缓存,原因如下: 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影 ...

  9. 常见的DNS攻击——偷(劫持)、骗(缓存投毒)、打(DDos)

    常见的DNS攻击包括: 1) 域名劫持 通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民 ...

最新文章

  1. 谷歌将屏蔽一切与加密货币相关的广告 6月正式生效
  2. 刷题一个4ms的程序,代码如何优化到3ms再到2ms?
  3. 锻炼编程逻辑_通过锻炼提高编程技巧
  4. asp代码在dwearwear转换成html格式怎么转,为前端而生的编辑器Brackets及配置推荐
  5. 差异性发展 - 浙江工商局长郑宇民“智斗”央视女主持董倩
  6. linux虚拟化桌面协议,桌面虚拟化传输协议之android spice
  7. 清理net use的BAT
  8. 【笔记】生成函数与大背包问题
  9. 我从零开始学黑莓开发的过程
  10. linux wa%过高,iostat查看io状况
  11. PDF转换器for mac
  12. install pecl php_pecl安装以前的php版本
  13. 加州大学欧文分校 计算机专业,加州大学欧文分校计算机工程专业怎么样?
  14. 易语言-王者天下页游自动回收辅助
  15. 爬虫学习笔记--爬取静态网页
  16. Gvim,Vim编辑器快速学习介绍
  17. 一个流和百亿级的表的join
  18. Adapter适配器
  19. 【OpenCV 例程 300 篇】112. 滤波反投影重建图像
  20. 利用Python爬虫爬取网页福利图片

热门文章

  1. 信号与系统第三章复习
  2. Git 切换分支的命令
  3. SQL语句——基础篇
  4. Codeforces 545 C Woodcutters(贪心/DP)
  5. SLAM在机器人中的应用尽如此之广
  6. Linux下不保存退出以及相关退出命令
  7. 统计学中的白噪声理解
  8. SpringBoot + Sharding JDBC 读写分离、分库分表
  9. python线程锁和线程池
  10. 追洞小组 | Windows安装Immunity CANVAS教程