渗透测试的本质就是信息收集,做好信息收集就扩大了攻击面,提高了挖洞、做题的成功率

源码泄露

git源码泄露

.git 文件后缀

工具

scrabble

# git 回滚
git reset --hard HEAD^

# 查看每个 commit 修改了那些文件
git log -stat

# 比较在当前版本与想看的 commit 之间的变化
git diff HEAD commit -id

GitHacker

支持分支

python GitHacker.pyhttp://127.0.0.1:8000/.git/

# 查看分支,只能看到 master 分支的信息
git log -all
或
git branch -v

# 查看其他分支
git reflog

# 恢复其他分支
1.手动下载其他分支(secret)head 信息,保存到.git/refs/heads/secret中(执行命令“wget http://127.0.0.1:8000/.git/refs/heads/secret”)
2.复用 githacker 的部分代码,以实现自动恢复分支的效果
在GitHacker的代码中可以看到,他是先下载object文件,再使用git fsck检测,并继续下载缺失的文件。此处可以直接复用检测缺失文件并恢复的fixmissing函数。我们注释掉程序最后调用main的部分
3.修改后重新执行 python githacker.py 命令,运行该脚本,再次进入生成的文件夹,执行
git log --all
或
git branch -v

除了源码的利用方式,泄露的 git 中也可能有其他有用的信息,如.git/config文件夹中可能含有access_token信息,从而可以访问这个用户的其他仓库

svn泄露

.svn/entries 或 wc.db 文件获取服务器源码

工具

  • https://github.com/kost/dvcs-ripper
  • Seay-svn(Windows下的源代码备份漏洞利用工具)
HG泄露

.hg 隐藏文件夹,其中包含代码和分支修改记录等信息

工具

  • https://github.com/kost/dvcs-ripper
经验

CTF 线上赛往往会有重定向一类问题

  • 访问 .git,便会返回 402,可以试探着 .git/config,如果有文件内容返回,就说明存在 git 泄露,反之一般不存在
  • 而在SVN泄露中,一般是在entries中爬取源代码,但有时会出现entries为空的情况,这时注意wc.db文件存在与否,便可通过其中的checksum在pristine文件夹中获取源代码

敏感备份文件

gedit备份文件

在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为“~”的文件,其文件内容就是刚编辑的内容

这个功能在设置中需要开启

vim备份文件

当用户在编辑文件但意外退出时,会在当前目录下生成一个备份文件,文件名格式为 .文件名.swp

针对SWP备份文件,可以用先建一个同名文件再用“vim-r”命令恢复文件的内容,如 flag.swp 就建一个 flag 再用命令恢复

经验
  • 在CTF线上比赛的过程中,出题人往往会在线运维题目,有时会因为各种情况导致SWP备份文件的生成,所以可以在比赛过程中可以编写实时监控脚本,对题目服务进行监控
  • vim在第一次意外退出时生成的备份文件为*.swp,第二次意外退出时的为*.swo,第三次退出时的为*.swn,以此类推。vim的官方手册中还有*.un.文件名.swp类型的备份文件
  • 在实际环境中,网站的备份往往可能是网站域名的压缩包

目录泄露

使用工具
dirsearch、御剑等等,可以收集一些ctf常用字典

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐