[FireshellCTF2020]URL TO PDF
题目给了一个输入框,我们可以把网址转为pdf下载
下载完
我们打开自己的服务器,监听,然后在提交框里输入ip和端口,看下此题的请求
我们发现user-agent非常奇怪
1 | User-Agent: WeasyPrint 51 (http://weasyprint.org/) |
WeasyPrint重新定义了一组html标签,包括img,embed,object等。根据我们之前的测试,我们已经知道javascript不是利用这一点的选项。在这一点上,我们的希望很低,我们开始认为PDF生成器不再可利用,直到我们发现对<链接>内部的几个文件的引用,包括pdf.py。这使我们能够通过使用 将任何网页或本地文件的内容附加到我们的 PDF 中。
问题就出在了<link>
标签上。WeasyPrint会把所有你给它的东西(前提是它支持的)都请求一遍然后放在PDF里,虽然有些东西可能不可见,但是确实是存在的。于是就有了这样的攻击方式:
它不会渲染js,但是加在file://可以实现ssrf+任意文件读取。我们在靶机里写入一个简单的html,引入payload
原文链接:https://blog.csdn.net/RABCDXB/article/details/122659054
1 | <html> |
下载得到pdf文件,然后我们用pdfdetach查看flag,它是Xpdf工具包的命令行工具之一,可以从PDF文件中提取附件。
1 | pdfdetach -list xxx.pdf |