0x00 前言
CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。
0x01 题目描述
vim缓存:
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
0x02 解题过程
根据上一题的经验总结,这题也是文件备份的泄露,但是由于对 vim 缓存的文件后缀不是很清楚,导致无法查看此题的备份文件,最后通过网上搜索对 vim 缓存的文件后缀有了一定的了解。与上一题方法一致,最终在记事本中查看到了此题 flag 。
Ⅰ浏览器访问网页
Ⅱ访问 .index.php.swp 查看网页留下的vim缓存文件备份
Ⅲ记事本打开查看网页留下的vim缓存文件备份,发现此题flag
0x03 vim缓存
网站设计者在使用 vim 时会自动创建一个临时缓存文件,当关闭 vim 时缓存文件会被删除。如果当 vim 因机器或环境等影响意外退出,那么 vim 缓存就会保留下来,网站设计者则可以通过 vim 缓存恢复到意外退出前的工作状态。
vim 交换文件机制:
1.第一次意外退出: .index.php.swp
2.第二次意外退出: .index.php.swo
3.第三次意外退出: .index.php.swn
4.第四次意外退出: .index.php.swm
在 ubuntu 虚拟机上测试发现,vim 交换机制每次意外退出从第一次开始,接着每次意外退出都是逆推字母表。在 vim 编辑器中使用 :swapname 命令可以查看当前意外退出交换名称。
启用/禁用交换名称:
:set swapfile #启用vim交换条件名称
:set noswapfile #禁用vim交换条件名称
0x04 总结
文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。