颖师傅博客学习了新姿势。题目给了一个输入框,输入网址可以把其转为pdf供下载。

下载完是这样的:

在buu上用小号开了个靶机(174.0.35.177),监听然后在题目的框上输入ip和端口,看下此题的请求:

有一个非常惹眼的UA:

User-Agent: WeasyPrint 51 (http://weasyprint.org/)

问题就出在了<link>标签上。WeasyPrint会把所有你给它的东西(前提是它支持的)都请求一遍然后放在PDF里,虽然有些东西可能不可见,但是确实是存在的。于是就有了这样的攻击方式:

它不会渲染 js,但是加载file://可以实现SSRF+任意文件读取。在靶机里写一个简单的html,引入payload:

<html>
<body>
<link rel='attachment' href='file:///flag'>
</body>
</html>

使用pdfdetach查看flag。它是Xpdf工具包的命令行工具之一,可以从PDF文件中提取附件。