xctf-unagi

xctf-unagi

1.题目:
2.过程:

进入题目是一个网站导航,有一个上传点:

image-20210305175148141

上传新用户到系统……here中是:

image-20210305175416023

大概是一个xml的界面,演示了xml格式的用户数据,也就是需要我们上传类似的xml文件来上传新用户。

image-20210309171219845

about中提示,应当读取/flag文件

我一直很困惑于DTD这个东西,即使实体,也是规范……

image-20210309171739424

内部实体,规定了xml的几个元素,与元素的属性:

image-20210309171912700

下面的xml数据需要根据DTD已有的定义(“规范”)来组织(这样的标签才会被正确解析?),DTD也可以是外部独立的,便于多个xml格式的文档引用

假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

1
<!DOCTYPE 根元素 SYSTEM "文件名">

eg:

image-20210309172332031

(include?

xxe的朴素运用,就是利用实体,读取内部敏感文件:

image-20210309172756732

根据提示的xml结构,构造数据:

image-20210309173533674

除了intro标签其他都有长度限制

intro标签可以在User界面找到

cred标签么有显示,大概是php代码不对这个标签识别

上传后发现有waf阻挡

绕过WAF保护的XXE中介绍了编码绕过,有效waf不支持一些编码,可以轻松绕过

https://mohemiv.com/tags/xxe/ 这个更详细,可惜全英……

1
iconv -f utf8 -t utf16 1.xml>2.xml

转换后上传,即得到flag

xxe深度学习

如果目标网站能访问外网,访问个人服务器上的dtd,操作大概会更多一些?……

作者

inanb

发布于

2021-03-09

更新于

2021-08-23

许可协议


:D 一言句子获取中...