web入门
敏感目录泄露
git泄露
git常规泄露
工具:
https://github.com/denny0223/scrabble
语法:
1 | scrabble url |
git回滚
git作为一个版本控制工具,会记录每次提交(commit)的修改,存在git泄露时,flag可能在修改中被删除,可以使用git reset
先得源码,后使用git reset --hard HEAD^
命令跳到上一个版本。(HEAD表示当前版本,HEAD^表示上一个版本)
还可以使用git log -stat
命令查看每一个commit修改了哪些文件,再用
git diff HEAD commit-id
比较在当前版本与想查看得commit之间的变化。
git分支
每次提交时,git都会自动把它们串成一条时间线,这条就是一个分支。git允许使用多个分支,如果没有新建分支,那么只有一条时间线,默认master分支。
使用git log
只能查看当前的分支修改,所以引入之前常用的GitHacker。
进入githack生成的文件夹,执行
git log --all
或
git branch -v
只能查看master分支,需要执行
git reflog
就能看见一些checkout的记录。
假如还有一个分支,我们需要手动下载这个分支的head信息,保存到
.git/refs/heads/其他分支名
恢复heads信息后,我们使用GitHacker的部分代码,以实现自动恢复分支的效果。
使用的是: https://github.com/WangYihang/GitHacker
在GitHacker的代码中,先下载ojbect文件,再使用git fsck检测,并继续下载缺失的文件。
修改代码如下:
1 | if __name__=="__main__" |
修改后运行,再次进入文件夹,执行
git log --all
或git branch -v
即可恢复。
其他的利用:.git/config文件夹中可能含有access_token 信息,从而通过访问这个用户的其他仓库。
SVN泄露
SVN是源代码版本管理软件,造成SVN源代码漏洞主要原因是管理员操作不规范将SVN隐藏文件夹暴露于外网环境,可以利用.svn/entries或wc.db文件获得服务器源码,推荐使用两个工具:
https://github.com/kost/dvcs-ripper
还有 Seay-svn
HG泄露
.hg
工具:
https://github.com/kost/dvcs-ripper
以上的源码泄露,可以直接使用目录扫描工具:
https://github.com/maurosoria/dirsearch
有可能存在重定向一类问题,访问.git返回403,访问.git/config,如果有文件返回,说明存在.git泄露。
在SVN泄露,一般是在entries中爬取源代码,但有时为空,注意wc.db文件存在与否,便可通过其中的checksum在pristine文件夹中获取源代码。
敏感备份文件
1、gedit备份文件
在Linux下,用gedit编辑器保存后,当前目录会生成一个后缀为“”的文件,访问带有的文件,得到flag。
2、vim备份文件
vim是当前linux运行最多的linux编辑器,如果遇到卡死意外退出,会生成一个备份文件,
.flag.swp
使用命令 vim -r
恢复文件内容,要先生成flag文件,再恢复文件。
vim flag
vim -r flag
3、常规文件
robots.txt:记录一些目录和CMS版本信息。
readme.txt:记录CMS版本信息,甚至有Github地址。
以上特殊的关键字,我们可以构造成一个字典,后续用burp进行爆破。
Banner识别
Banner信息:服务器对外显示的一些基础信息
1、自行收集指纹库
github上有大量成型且公开的CMS指纹库,借鉴一些成型扫描器对网站进行识别。
2、使用已有工具
Wappalyzer工具
除了使用工具,还可以随意输入一些参数,可能会出现404或302跳转出一些信息。