web-信息泄露基础知识总结(持续更新)
web-信息泄露
1、git泄露
Git是一个开源的分布式版本控制系统,在执行git init
初始化目录的时候,会在当前目录下自动创建一个.git
目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git
这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码
.git文件夹分析
hook:存放一些sheel的地方。
info:存放仓库的信息
objects:存放所有git对象的地方
refs:存放提交hash的地方
config:github的配置信息
description:仓库的描述信息,主要给gitweb等git托管系统使用
HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值
可以使用GitHack利用工具进行利用
工具地址https://github.com/zwshi/GitHack.git
使用方法:python GitHack.py http://www.example.com/.git/
还原后的文件在 dist/ 目录下
更详细原因参考:https://blog.csdn.net/qq_36869808/article/details/88909961?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
例题1:CTFHub-----log
1)扫描发现 .git 泄露
2)python GitHack.py 题目url/.git/
将源码clone到本地,然后进入该目录
3)执行 git log
查看历史记录
4)git diff
提交的记录码
注:
查看历史记录:git log
对比两次提交:git diff
切换版本:git reset
例题2:CTFHub----stash
同样先使用GitHack将git clone到本地,然后查看
去查了一下资料:
git stash
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
查看当前堆栈中保存的未提交的修改 使用git stash list
可看到add flag这个工作也被保存在了堆栈中,所以只需要知道如何恢复就可以了
使用git stash apply
恢复了一个txt文件,查看得到flag
例题3:CTFHub----index
这道题直接用上面的方法能直接得到flag,就是用过githack工具clone到源码就得到flag了
但参考了一下大佬的wp,发现考点其实是git的index暂存区文件
1)使用git ls-files
查看暂存区里面有哪些文件
2)需要查看27741192706094.txt文件对应的Blob对象,如下:
git ls-files -s -- 27741192706094.txt
或者直接 git ls-files -s
3)然后通过Blob对象,查询27741192706094.txt.txt
里面的内容:git cat-file -p 441a2
修复建议
删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。
2、SVN泄露
例题----ctfhub-svn
svn泄露,svn我们首先下载wc.db文件,主要知识点:
当svn使用了checkout命令后就会生成.svn文件,里面存储着备份信息。svn信息泄露漏洞主要利用了里面的entrist文件,通过.svn/entrist
可以下载里面的所有代码,但是只能作用在svn1.6之前的版本;第二个是作用在svn1.7后的版本,svn1.7后的版本引入一个名为wc.db的数据库数据存放文件来管理文件,通过访问.svn/wc.db
可以下载到本地。
这里是svn1.7之后的版本,我们下载wc.db文件,/.svn/wc.db
使用SQLiteStudio打开,发现flag_1831822206.txt
文件,访问之
访问的时候是404,应该是被删除了,我们使用dvcs-ripper工具:https://github.com/kost/dvcs-ripper
在linux的环境下使用,以及我们需要先下载svn环境,还有perl环境,不然会运行不了dvcs-ripper
然后我们使用
perl rip-svn.pl -u http://challenge-8cad6507cc3f2aca.sandbox.ctfhub.com:10080/.svn/
命令来clone svn文件
我们需要使用ls -al
才可以看到隐藏的文件夹.svn
cd进去再ls -al
因为之前我们已经尝试了wc.db
数据库里面的文件了,但是发现flag.txt
已经被删除了,所以我们到缓存文件夹pristine文件夹里面去寻找flag,在8f文件夹里面获取到flag
3、.hg源码泄露
例题---ctfhub-hg
Mercurial.hg
源码泄露 hg在初始化代码库的时候,会在当前目录下面产生一个.hg
的隐藏文件
eg:
http://www.example.com/.hg/
工具:
https://github.com/kost/dvcs-ripper
使用:
rip-hg.pl -v -u http://www.example.com/.hg/
如果没有设置系统变量,需要
perl rip-hg.pl -u http://www.example.com/.hg/
查看隐藏文件:ls -al
4、备份文件下载
常见的网站源码备份文件后缀
- tar
- tar.gz
- zip
- rar
常见的网站源码备份文件名
- web
- website
- backup
- back
- www
- wwwroot
- temp
也可以直接用御剑扫描后台
例题1----CTFHub---网站源码
御剑直接扫到www.zip
,下载,找到.txt文件,发现里面没有flag,后面看了wp才知道直接在浏览器访问该txt文件就得到flag了
例题2----CTFHub---bak
提示:Flag in index.php source code.
则直接访问index.php.bak
,下载得到flag
例题3----CTFHub---vim缓存
提示:
参考博客:https://www.cnblogs.com/leixiao-/p/9748685.html
vim会自动生成的备份文件以及临时文件
临时文件是在编辑文本时就会创建的文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp
,(第一次产生的交换文件名为“.filename.txt.swp
”;再次意外退出后,将会产生名为.filename.txt.swo
的交换文件;而第三次产生的交换文件则为.filename.txt.swn
)
所以直接访问.index.php.swp
下载打开得到flag
例题4----CTFHub---.DS_Store
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
提示是.DS_Store,则直接访问.DS_Store
,下载
打开发现里面有一句.txt,去掉中间的空格,访问该txt文件得到flag
5、phpinfo
phpinfo去过能被外部用户访问,可能会造成的危害有:
泄露网站真实ip
网站绝对路径泄漏或日志文件路径泄露,可以写入shell
泄露一些特殊的应用信息和服务
一些敏感配置,比如禁用的函数
php版本信息
详情可以百度谷歌。
例题1----CTFHub---phpinfo
发现进去直接就能访问到phpinfo,直接ctrl+f
搜flag,得到flag
6、目录遍历
目录遍历(路径遍历)是由于web服务器配置错误,或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以使web根目录以外的文件),甚至执行系统命令。
例题----CTFHub---目录遍历
这道题感觉出的有问题,直接随便点点文件夹就得到了flag