强网杯—share your mind了解RPO+XSS+CSRF

本文介绍了RPO(Relative Path Overwrite)的概念,这是一种利用相对URL覆盖来实现攻击的技术。RPO通过浏览器和服务器的解析差异,可能导致XSS和信息泄露。文章详细讲解了RPO的工作原理,并结合强网杯的一道题目,阐述了如何将RPO与XSS和CSRF结合,形成攻击链路,包括漏洞利用流程和解题过程。
摘要由CSDN通过智能技术生成

RPO(Relative Path Overwrite)

1.What is RPO

RPO(相对路径覆盖)是一种通过覆盖目标文件来利用相对URL的技术。要了解这项技术,我们必须首先研究相对网址和绝对网址之间的差异。绝对URL基本上是包含协议和域名的目标地址的完整URL,而相对URL则是不指定域或协议,并使用现有目的地来确定协议和域。
Absolute URL

https://greyshadow.cn/blog

Relative URL

blog/somedirectory

RPO(Relative Path Overwrite)最早由Gareth Heyes提出。简单的说来就是利用浏览器的一些特性和部分服务端的配置差异导致的漏洞,因为存在这种差异,在精心构造之下,我们可以通过相对路径来引入其他的资源文件。危害甚大,此攻击方法依赖于浏览器和网络服务器的反应,基于服务器的Web缓存技术和配置差异,以及服务器和客户端浏览器的解析差异,利用网页加载的css/js的相对路径,注意是相对路径!来加载其他文件(恶意的),最终浏览器将服务器返回的不是css/js的文件当做css/js来解析,从而导致XSS,信息泄露等漏洞产生。

相对URL会查找非隐藏的内容,并根据当前域名自动包含该域。

相对URL有两种重要的变体:
第一种是我们可以使用当前路径并查找其中的目录,如“xyz”或使用通用目录遍历技术,如“../xyz”。

<html>
    <head>
        <link href="styles.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    </body>
</html>

上面的链接元素使用相对URL引用“style.css”,具体取决于您所在的站点目录结构中的哪个位置,它将根据该位置加载样式表。例如,如果您在一个名为“xyz”的目录中,则加载“xyz / style.css”。
有趣的是浏览器并不知道什么是正确的路径,因为它无法访问服务器的文件系统。它没有办法从文件系统外部确定有效的目录结构,只能进行有根据的猜测并使用http状态码来确定它们的存在。

关于服务器和客户端浏览器在解析和识别上的差异性:

  • 在Apache中将‘/’编码为%2f后,服务器无法识别url,返回404,但是在Nginx中将‘/’编码为%2f后,服
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值