信息泄露
持续更新
文章目录
目录遍历
原理
在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能变的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“…/”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。
实例
[CTFHub 技能树 目录遍历]
逐个打开目录找出flag
PHPINFO
原理
PHPInfo函数信息泄露漏洞常发生一些默认的安装包,比如phpstudy等,默认安装完成后,没有及时删除这些提供环境测试的文件,比较常见的为phpinfo.php、1.php和test.php,虽然通过phpinfo获取的php环境以及变量等信息,但这些信息的泄露配合一些其它漏洞将有可能导致系统被渗透和提权。
实例
[CTFHub 技能树 PHPINFO]
打开环境,用CTRL+f搜索flag,找到flag
备份文件下载
原理
- 当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
- 当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。第一次产生的缓存文件后缀为.swp,后面会产生swo等.
- .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
实例
[CTFHub 技能树 网站源码]
-
御剑装载常见网站备份文件名字典,扫描,发现
www.zip
-
下载后解压,打开flag_326233961.txt并没有发现flag,随后查看另外两个html文件也没有flag
-
修改url,得到flag
/flag_326233961.txt
[CTFHub 技能树 bak文件]
- 御剑装载常见网站备份文件名字典,扫描,发现
index.php.bak
- 下载后用记事本打开,发现flag
[CTFHub 技能树 vim缓存]
- 御剑装载常见网站备份文件名字典,扫描,发现
.index.php.swp
- 下载后用记事本打开,发现flag
[CTFHub 技能树 .DS_Store]
-
根据题目提示,直接修改url
/.DS_Store
-
下载后用记事本打开,空格很多,用替换清除所有空格后发现一个特殊文件
4acd9c6781ebaa0a64a983e2af285c1c.txtnoteustr
-
修改url
/4acd9c6781ebaa0a64a983e2af285c1c.txt
-
得到flag
Git泄露
git log 显示从最近到最远的提交日志。
git diff 简单的来说就是查看不同,具体用法如下:
- git diff:是查看working tree与index的差别的。
- git diff --cached:是查看index与repository的差别的。
- git diff HEAD:是查看working tree和repository的差别的。其中:HEAD代表的是最近的一次commit的信息。
git reset 可用于回退版本库
git checkout 切换分支或恢复工作树文件
git stash 的作用
git stash用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上.
通过git stash存储的修改列表,可以通过git stash list查看.git stash show用于校验,git stash apply用于重新存储.直接执行git stash等同于git stash save.
git stash pop 从 git 栈中弹出来一个文件
原理
-
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
-
攻击者可以利用该漏洞下载git文件夹里的所有内容。如果文件夹内有敏感信息比如站点源码、数据库账户密码等,攻击者可能直接控制服务器。
-
1.通过泄露的
.git
文件夹下的文件,还原重建工程源代码2.解析
.git/index
文件,找到工程中所有的(文件名,文件sha1)3.去
.git/objects
文件夹下下载对应的文件4.
zlib
解压文件,按原始的目录结构写入源代码
(危害:渗透测试人员、攻击者,可以进一步代码审计,挖掘:文件上传,sql注入等安全漏洞)
实例
[CTFHub 技能树 Log]
-
打开之后进行dirsearch扫描,发现存在git泄露,在kali环境下使用GitHack
python githack.py http://challenge-6bf007a99a31c506.sandbox.ctfhub.com_10080/.git
-
之后进入githack下的dist里的本题的目录。
-
打开终端,输入命令
git log
我们可以看到有三次操作,一次是init初始化现有仓库,经过这次命令就会产生.log文件。之后执行了add flag和remove flag。可以判断,flag应该是在add flag的那个版本,我们现在是在remove flag。所以,这题有两种解法,第一种是回退到之前的版本,git reset可以实现。第二种是直接查看add flag和remove flag这两个版本的不同,git diff可以实现。
-
使用命令
git diff HEAD^
找到flag,或者使用命令git reset --hard HEAD^
后打开对应txt文件
[CTFHub 技能树 Stash]
-
打开之后进行dirsearch扫描,发现存在git泄露,在kali环境下使用GitHack
python githack.py http://challenge-6bf007a99a31c506.sandbox.ctfhub.com_10080/.git
-
之后进入githack下的dist里的本题的目录。
-
打开终端,输入命令
git log
,再使用命令git reset --hard HEAD^
-
打开终端,输入命令
git stash list
,查看stash了哪些存储 -
执行
git stash pop
-
打开txt文件获取flag
[CTFHub 技能树 Index]
-
打开之后进行dirsearch扫描,发现存在git泄露,在kali环境下使用GitHack
python githack.py http://challenge-6bf007a99a31c506.sandbox.ctfhub.com_10080/.git
-
之后进入githack下的dist里的本题的目录。
-
打开终端,输入命令
git log
-
输入命令
git checkout
,看到有如下三个文件D 2390327672762.txt D 50x.html D index.html
-
输入命令
git checkout 2390327672762.txt
,打开该文件获取flag·
SVN泄露
原理
当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。
实例
[CTFHub 技能树 SVN泄露]
-
打开kali环境下的dvcs-ripper,打开终端,输入如下命令
./rip-svn.pl -v -u http://challenge-fb13f9afd9ee3b28.sandbox.ctfhub.com:10080/.svn/
-
查看当前目录下的.svn文件夹(如果没有显示就按CTRL+H显示隐藏文件)
-
逐个文件查看找出flag
HG泄露
原理
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。
实例
[CTFHub 技能树 HG泄露]
-
打开kali环境下的dvcs-ripper,打开终端,输入如下命令
./rip-hg.pl -v -u http://challenge-fb13f9afd9ee3b28.sandbox.ctfhub.com:10080/.hg/
-
查看当前目录下的.hg文件夹(如果没有显示就按CTRL+H显示隐藏文件)
-
打开终端,输入如下命令
grep -r ctfhub *
-
无结果,输入如下命令
grep -r flag *
-
发现
store/fncache:data/flag_61093721.txt.i
-
猜想网页上有对应的txt文件,修改url得到flag
/flag_61093721.txt
参考链接
1.https://blog.youkuaiyun.com/rfrder/article/details/108391077
2.https://www.cnblogs.com/anweilx/p/12455850.html
3.https://www.cnblogs.com/carr0t/p/svnleak.html