xxe注入题目的解析

0x01 背景 xxe的注入
https://security.tencent.com/index.php/blog/msg/69

背景就是这样,我们可以构造一个恶意的xml文件,在系统进行解析的时候,会执行其中的命令,从而造成危害

0x02 本题的解析

题目地址 http://www.f4ck0.com:8888/
上代码,做一下简要的分析

registerXPathNamespace("dc", "http://purl.org/dc/elements/1.1/"); 
           foreach($xml->xpath('//dc:title') as $title){
                echo "Title '".$title . "' has been added.
"; } } catch (Exception $e){ echo "The file you uploaded is not a valid xml or docx file."; } } else { echo "Sorry, there was an error uploading your file."; } }

以上就是这道题的核心代码,下面来分析一下。

  • 首先获取上传的文件,并且使用php的zip方式去读取zip压缩文件中的docProps/core.xml文件

  • 使用xml去解析之

  • 然后再获取title节点的内容,并输出

好了,这就是这道题。首先我们要知道,docx类型的文件本质上而言就是zip压缩包,所以这里使用zip去读取的。
所以,我们可以根据背景所说的,去修改题目所给的案例docx文件中的docProps/core.xml,然后上传去获取flag。

下面给出修改过后的core.xml文件内容



  ]>

  &xxe;
  
  
  
  
  
  1
  2015-08-01T19:00:00Z
  2015-08-01T19:01:00Z

替换掉原来docx中的core.xml就可以了

你可能感兴趣的:(xxe注入题目的解析)