码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vim缓存-交换文件


    Catf1agCTF靶场 web swp

    题目链接:http://catf1ag.cn/

    个人博客:https://sword-blogs.com/image-20230918190228337

    题目考点:

    vim在编辑文档的过程中如果异常退出,会产生缓存文件

    • vim 交换文件名
    参考文章:vim手册
    https://yianwillis.github.io/vimcdoc/doc/usr_11.html (中文)
    https://vimdoc.sourceforge.net/htmldoc/usr_11.html (英文)
    
    • 1
    • 2
    • 3

    在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容

    后缀是区分这些交换文件的方法同一个文件产生的多个交换文件的后缀是不一样的

    以 index.php 为例:第一次产生的交换文件名为 .index.php.swp

    再次意外退出后,将会产生名为 .index.php.swo 的交换文件

    第三次产生的交换文件则为 .index.php.swn

    image-20230918193151735

    以s 开头 第二位由 uvw 组成 第三位a-z

    使用vim -r可以查看交换文件

    image-20230918192600832

    使用 vim -r index.php可以恢复交换文件

    image-20230918192149399

    image-20230918192751943

    image-20230918192814048

    恢复之后需要删除交换文件·rm -rf .index.php.s*要不然下次打开文件的是还是会有提示

    image-20230918192923844

    解题思路

    code1:

    利用curl访问即可直接看到flag,因为vim使用的缓存存储为一种固定格式的二进制文件。而我们一般编辑的时明问可见字符,在vim的缓存中这些可见字符会原样保留

    code2:

    将缓存文件下载下来,使用vim编辑原有文件,例如下载的.index.php.swp,则说明之前编辑的文件名为index.php会提示是否恢复,选择R进行恢复即可看到原始内容

    code:3

    如果扩展名是 “.swp” 的文件已经存在,逐次递减最后的字母,直到找到没有现存文件的名字为止。如果过了 “.saa” 还找不到,不建立交换文件。
    
    • 1

    可以burp爆破所有可能性

    image-20230918195046850

    解题方法

    在浏览器url后面加上.index.php.swp会自动下载交换文件

    image-20230918195506384

    使用记事本打开可以看到flag 因为在vim的缓存中这些可见字符会原样保留

    image-20230918195624559

    在Linux系统种使用vim -r index.php.swp可以看到文件的完整内容

    image-20230918195822005

    image-20230918195731331

    CTFhub的技能树中也有一道相同的题目 VIM缓存

    image-20230918195943341

  • 相关阅读:
    nginx错误:unknown directive “锘? in F:\nginx/conf/nginx.conf:3
    Eclipse iceoryx™ - 真正的零拷贝进程间通信
    MongoDB磁盘空间占满,导致数据库被锁定,如何清理数据和磁盘空间
    小学生python游戏编程2----飞机大战1
    Java守护线程
    大数据Flink(八十九):Temporal Join(快照 Join)
    【Nginx】负载均衡
    华为:将在员工绩效考核中增加“伙伴满意度”选项;比尔·盖茨再批加密货币;.NET 7 Preview 5 发布|极客头条
    数据结构学习笔记 - 分块和莫队
    python 爬虫的开发环境配置
  • 原文地址:https://blog.csdn.net/xingjinhao123/article/details/133064370
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号