实验室:PHP中的任意物体注入
从业者
该实验室使用基于序列化的会话机制,因此很容易受到任意对象注入的影响。要解决实验室,创建并注入恶意的序列化对象来删除Morale.txt
从卡洛斯的主目录中归档。您将需要获取源代码访问以求解此实验室。
您可以使用以下凭据登录到自己的帐户:维纳:彼得
暗示
您有时可以通过附加tilde读取源代码(〜)
到文件名来检索编辑器生成的备份文件。
解决方案
- 登录到您自己的帐户,并注意会话Cookie包含一个序列化的PHP对象。
- 在网站图中,请注意网站引用文件beplay体育能用吗
/libs/customtemplate.php
。右键单击文件,然后选择“发送到中继器”。
- 在Burp Repeater中,请注意,您可以通过附加tilde读取源代码(
〜
)到请求行中的文件名。
- 在源代码中,请注意
定制板
类包含__DESTRUCT()
魔法方法。这将调用unlink()
方法lock_file_path
属性,将在此路径上删除文件。
在Burp解码器中,使用正确的语法用于序列化PHP数据创建一个定制板
对象与lock_file_path
属性设置为/home/carlos/morale.txt
。确保使用正确的数据类型标签和长度指标。最终对象应该看起来像这样:
O:14:“ CustomTemplate”:1:{s:14:“ lock_file_path”; s:23:“/home/home/carlos/morale.txt”;}
- base64和URL对此对象进行编码,然后将其保存到剪贴板上。
- 将包含会话曲奇的请求发送到Burp Repeater。
- 在Burp Repeater中,用剪贴板中的修改后的cookie替换会话cookie。
- 发送请求。这
__DESTRUCT()
魔术方法会自动调用,并将删除Carlos的文件。