CTF Book
  • 关于本书
  • Web
    • 信息搜集
    • 注入攻击
      • SQL注入
      • XML实体注入
      • SSTI 服务器模板注入
    • 前端安全
      • XSS 跨站脚本攻击
      • CSRF 跨站请求伪造
      • Html5 特性
    • 常见漏洞
      • SSRF 服务端请求伪造
      • File upload 文件上传漏洞
      • Web Cache 欺骗攻击
    • 特定场景漏洞
      • AWS 漏洞系列
        • S3 Bucket信息泄露
      • 未授权访问漏洞
        • redis未授权访问
        • CouchDB未授权访问
        • Docker Remote API未授权访问
        • memcache 未授权访问
        • Jenkins 未授权访问
        • PHP-FPM未授权访问
        • rsync 未授权访问
        • Mongodb未授权访问
      • 服务器配置问题
        • Apache Tomcat样例目录session操纵漏洞
    • PHP 安全
      • PHP 反序列化漏洞
      • PHP 代码审计小结
      • PHP 伪协议总结
      • PHP 内存破坏漏洞
      • PHP mail header injection
      • PHP 弱类型安全总结
      • PHP 各版本特性
    • 逻辑漏洞
    • CTF-Web Trick
  • PWN
    • pwntools简要教程
    • 从任意地址写到控制执行流的方法总结
  • Reverse
    • 栈、栈帧与函数调用
  • Crypto
    • RSA 安全问题
  • Misc
    • zip总结
  • Others
    • CTF常用工具整理
    • 渗透测试工具备忘录
Powered by GitBook
On this page
  • 0x01 原理
  • 缓存实现方式
  • 缓存工作流程
  • 欺骗方法
  • 0x02 攻击流程
  • 攻击条件
  • 手动测试
  • 工具
  • 0x03 案例
  • CTF
  • 0x04 参考

Was this helpful?

  1. Web
  2. 常见漏洞

Web Cache 欺骗攻击

0x01 原理

缓存实现方式

实现缓存有多种方式,其中有种方式是,将一台服务器部署在客户端和web服务器之间作为缓存服务器,其表现形式如下:

  • CDN(Content Delivery Network)

  • 负载均衡(Load balance)

  • 反向代理(Reverse proxy)

缓存工作流程

当某个静态文件被第一次请求时,请求会直接穿透缓存服务器直接到达web服务器。在web服务器返回内容后,缓存服务器会根据接收到的文件的类型,根据缓存规则决定是否缓存。通常情况下,缓存服务器会根据URL尾部信息来选择,比如对公共文件(样式表CSS,脚本JS,文本文件txt等)进行缓存。

等客户端再次发起请求时,这些被缓存的内容将由缓存服务器直接向客户端返还。从而更快的响应用户的请求。

欺骗方法

当访问不存在的URL时,如http://www.example.com/home.php/non-existent.css,浏览器发送get请求,依赖于使用的技术与配置,服务器返回了页面http://www.example.com/home.php的内容,同时URL地址仍然是http://www.example.com/home.php/non-existent.css,http头的内容也与直接访问http://www.example.com/home.php相同,cacheing header、content-type(此处为text/html)也相同。

具体环节如下: 1. 浏览器请求http://www.example.com/home.php/no-existent.css; 2. 服务器返回http://www.example.com/home.php 的内容(通常来说不会缓存该页面); 3. 响应经过代理服务器; 4. 代理识别该文件有css后缀; 5. 在缓存目录下,代理服务器创建目录home.php,将返回的内容作为non-existent.css保存。

0x02 攻击流程

攻击条件

2、Web应用启用了Web缓存功能,并且会根据文件的扩展名来缓存,同时会忽略掉任何缓存头部。

3、受害者在访问恶意URL地址时必须已经过认证。

手动测试

  1. 发送 http://www.vuln.com/admin.php/no-existent.css

  2. 管理员(通常)查看,导致admin.php内容被缓存。

  3. hacker访问 http://www.vuln.com/admin.php/no-existent.css,获取敏感信息。

工具

0x03 案例

CTF

0x04 参考

PreviousFile upload 文件上传漏洞Next特定场景漏洞

Last updated 5 years ago

Was this helpful?

1、当访问如“ 之类的页面时,服务器需要返回对应的home.php的内容。

http://www.example.com/home.php/nonexistent.css”
Airachnid Burp Extension
CTFzone17-TimeHackers
Blackhat:WEB CACHE DECEPTION ATTACK
Web Cache Deception Attack
浅析 Web Cache 欺骗攻击
On Web Cache Deception Attacks
l3m0n:RPO攻击
RPO攻击初探