实验室:用预先建造的小工具链利用php避难所
从业者
该实验室具有基于序列化的会话机制,该机制使用签名的cookie。它还使用常见的PHP框架。尽管您没有源代码访问,但您仍然可以利用本实验室的不安全的挑战使用预制的小工具链。
要解决实验室,请确定目标框架,然后使用第三方工具生成包含远程代码执行有效负载的恶意序列化对象。然后,找出如何生成包含恶意对象的有效签名的cookie。最后,将其传递到网站以删除beplay体育能用吗Morale.txt
从卡洛斯的主目录中归档。
您可以使用以下凭据登录到自己的帐户:维纳:彼得
解决方案
- 登录并发送包含您的会话cookie的请求到Burp Repeater。突出显示饼干,看看检查员控制板。
- 请注意,cookie包含一个基本64编码的令牌,并带有SHA-1 HMAC哈希。
- 从检查员并将其粘贴到解码器中。
- 在解码器中,突出显示令牌,然后选择解码为> base64。请注意,令牌实际上是一个序列化的PHP对象。
- 在Burp Repeater中,观察到,如果您尝试发送带有修改的cookie的请求,则会提出一个例外,因为数字签名不再匹配。但是,您应该注意到:
- 开发人员评论揭示了调试文件的位置
/cgi-bin/phpinfo.php
。
- 错误消息揭示了网站使用Symfony 4.3.6框架。beplay体育能用吗
- 请求
/cgi-bin/phpinfo.php
在Burp Repeater中提交并观察到它泄漏了有关网站的一些关键信息,包括beplay体育能用吗密钥
环境变量。保存此键;您需要它以稍后签名。
下载“ PHPGGC”工具并执行以下命令:
./phpggc symfony/rce4 exec'rm/home/carlos/morale.txt'|基础64
这将生成一个基本64编码的序列化对象,该对象利用Symfony中的RCE小工具链来删除Carlos的Morale.txt
文件。
- 现在,您需要构建一个有效的cookie,其中包含这个恶意对象,并使用您之前获得的秘密键正确签名。您可以使用以下PHP脚本来执行此操作。在运行脚本之前,您只需要进行以下更改:
- 将您在PHPGGC中生成的对象分配给
$对象
多变的。
- 分配您从
phpinfo.php
文件到$ SecretKey
多变的。
<?php $ object =“对象生成的by-phpggc”;$ secretKey =“泄漏 - 销售键from-phpinfo.php”;$ cookie = urlencode('{“ token”:“'。$ object。”,“ sig_hmac_sha1”:“'。hash_hmac('sha1',$ object,$ secretkey)。'}'}');Echo $ cookie;
这将向控制台输出有效的,签名的cookie。
- 在Burp Repeater中,将您的会话cookie替换为您刚刚创建的恶意饼干,然后发送请求以解决实验室。