[NCTF2019]Fake XML cookbook

BUUCTF 刷题


[NCTF2019]Fake XML cookbook

  • BUUCTF 刷题
  • 前言
  • 一、[NCTF2019]Fake XML cookbook
  • 总结


前言

通过刷题拓宽自己的知识面


一、[NCTF2019]Fake XML cookbook

(1)打开后如图所示[NCTF2019]Fake XML cookbook_第1张图片
(2)尝试了一下万能密码,没啥用。回到题目,XML,百度一波。

XML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。
XML 指可扩展标记语言(eXtensible Markup Language)。
可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。它主要用到
的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。

(3)由此联想到XML中存在的XXE漏洞。

XXE是什么
XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击。由于程序在解析输入的XML数据时,
解析了攻击者伪造的外部实体而产生的。例如PHP中的simplexml_load 默认情况下会解析外部实体,有XXE漏洞的标志性函数为simplexml_load_string()。

XXE原理
有了 XML 实体,关键字 ‘SYSTEM’ 会令 XML 解析器从URI中读取内容,并允许它在 XML 文档中被替换。因此,攻击者可以通过实体将他自定义的值发送
给应用程序,然后让应用程序去呈现。 简单来说,攻击者强制XML解析器去访问攻击者指定的资源内容(可能是系统上本地文件亦或是远程系统上的文件)

(4)利用XXE

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE note [
  <!ENTITY admin SYSTEM "file:///etc/passwd">
  ]>
<user><username>&admin;</username><password>123</password></user>

经过测试后发现可以利用
[NCTF2019]Fake XML cookbook_第2张图片(5)找到flag
[NCTF2019]Fake XML cookbook_第3张图片

flag{677da155-d74d-4117-9633-777173dd225c}

总结

这道题目所涉及的知识点为XXE 的利用

你可能感兴趣的:(xml,安全)