xctf-unagi
xctf-unagi
1.题目:
2.过程:
进入题目是一个网站导航,有一个上传点:
上传新用户到系统……here中是:
大概是一个xml的界面,演示了xml格式的用户数据,也就是需要我们上传类似的xml文件来上传新用户。
about中提示,应当读取/flag文件
我一直很困惑于DTD这个东西,即使实体,也是规范……
内部实体,规定了xml的几个元素,与元素的属性:
下面的xml数据需要根据DTD已有的定义(“规范”)来组织(这样的标签才会被正确解析?),DTD也可以是外部独立的,便于多个xml格式的文档引用
假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:
1 <!DOCTYPE 根元素 SYSTEM "文件名">eg:
(include?
xxe的朴素运用,就是利用实体,读取内部敏感文件:
根据提示的xml结构,构造数据:
除了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
如果目标网站能访问外网,访问个人服务器上的dtd,操作大概会更多一些?……