概述
本模块有十道题
目录遍历
phpinfo
备份文件下载(4道)
网站源码
bak文件
vim缓存
.DS_Store
Git泄露
SVN泄露
HG泄露
1、目录遍历
直接一个个目录翻,直到找到一个flag的文件
2、phpinfo
点进去一脸懵逼,全是php版本的描述,页面很长,看下flag会不会藏在里面,搜索下,发现存在flag
3、备份文件下载
网站源码
-
点击去,页面显示
-
提示:文件后缀 + 备份文件名,这两个有啥子用?
- 会不会是进行拼凑,得到一个链接下载?
-
用.py写一个脚本,将题目自带的链接url + 备份文件名 + 备份文件后缀名拼凑在一起,并输出
-
找到一个状态码为200的链接,进行访问
-
得到一个压缩包,访问里面带有“flag”的文件,发现为空
-
换个方式,将文件名平凑在url上,访问下,发现可以
.py代码如下
"""
Author:Lucky_bacon
Tool:Pycham、python3
"""
import requests
url = "http://challenge-b7df70c1e0eafb5c.sandbox.ctfhub.com:10800/"
li1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
li2 = ['tar', 'tar.gz', 'zip', 'rar']
for i in li1:
for j in li2:
url_final = url + "/" + i + "." + j
r = requests.get(url_final)
print(str(r)+"+"+url_final)
bak文件
【问题描述】
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
- 点击链接,看到这条消息 Flag in index.php source code.
- 它告诉我们flag在index.php里面
- 将index.php加到链接后面看看,发现没啥用
- 回去再看看题目,它讲到备份文件是bat,结合上面的话,意思就是bat文件再index.php里面了
- 马上将index.php.bak加到链接上,发现可行
vim缓存
【题目描述】
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
- 题目搜索
- vim缓存遗留,是会遗留什么文件——.swp隐藏文件
- 所以就跟上一道一样,拼凑链接:url + index.php.swp,访问下
- 发现没啥用,查了下资料,发现.swp是隐藏文件,需要index前加个"."
- 成功下载到.swp文件,打开访问下,发现乱码
- 这个是vim文件,需要在linux环境下打开,直接导入虚拟机上,并改成隐藏文件,用vim指令访问
- 思考
- 关键词:备份文件,在index.php
- 直接拼凑给url,访问下,看下有没有文件
- 如果是隐藏文件,就在前面加个点号,再访问
- 下载好的文件,需要判断是在哪里运行,linux还是win,隐藏文件就改成隐藏文件
.DS_Store
【题目描述】
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
- 跟上一道的隐藏文件swp类似,直接再url后面加上“/.DS_Store ”访问下载文件
- 拖到linux,使用cat查看,可以得到一串数字
- 直接访问这个文件就可以了
4、Git泄露
Log
【参考材料】
【问题描述】
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题
(1)题目解析
在这里你需要用到一个git泄露脚本工具—— GitHack.py**,**这个脚本可以查找到.git文件上传记录
- 先用githack.py还原线上环境的.git文件;
python GitHack.py http://challenge-fc045376d74f3445.sandbox.ctfhub.com:10800/.git
- 在收集到的.git文件路径上,使用"git log"指令,查看下git文件上传记录;
- 在这里你会发现到有三条记录,分别是初始化init、添加flag、移除remove
- 将“add flag”的commit识别码,用git diff 查看下当前记录“add flag”和上一条记录“init”的差别,也就是有无flag的添加;
(2)个人思考
- git泄露的原因有哪些?其中的原理是什么?有什么危害?
- 原因:配置不当,错将git文件部署到线上,原本只需要部署线上运行文件即可
- 危害
- Git是一个可以实现有效控制应用版本的系统;
- 如果一不小心将.git文件泄露出去,攻击者或者黑客可以利用.git文件夹中的所有内容。
- 如果文件夹中存在敏感信息(数据库账号密码、源码等),
- 通过白盒的审计等方式就可能直接获得控制服务器的权限和机会!
- 如何去避免git泄露漏洞
- 需要避免将.git文件部署到线上环境?
(3)注意事项
- 在python2环境下使用githack.py脚本
- 因为我们提前知道了这个环境是存在git泄露漏洞,所以可以直接得出漏洞接口url/.git,并使用githack进行还原git历史版本。
- 如果我们一开始不知道是git泄露的话,需要使用开源的目录爆破工具dirsearch,这个需要在python3环境下运行,它的作用是通过目录爆破,通过状态码,寻找到一些可能泄露的接口,如果是.git接口泄露,便使用githack.py脚本
Stash
【参考资料】
【问题描述同上】
(1)题目解析
- 重复了上道题log的解题,发现不行,它返回了个“where is flag?”
- 回看下题目讲到“Stash”,搜索下,发现Stash与log类似,用于存储所有未提交的修改记录
- Stash恢复之前的修改记录,一般是使用这两条指令:
- git stash list——查看存储的记录
- git stash pop——恢复之前的记录
- 这时候,便多了一个文件,打开就可以了
(2)个人思考
- 为什么会出现上道题目,使用git log就可以查到flag,而这次不行,需要用stash查看?其中的原理是什么?
- 首先你需要理解到,什么是flag?flag代表一种隐私信息;
- 在log题目中,通过git log即可查到flag,说明进行commit时,私密信息一同上传了;
- 这一次不可以,说明了在commit环节中没有信息泄露,而是在其他环节泄露了
- 了解下git上传的步骤
- 新建库、连接远程库、查看远程库地址正确否+文件状态、文件暂存、提交到版本库、上传
- 对于的漏洞:
- log——commit出错
- stash——在存储指令时出错
- index——内部文件出错
- svn——
Index
题目描述同上
超级简单
只需要用githack还原一下git版本就可以获得flag
SVN泄露
【参考材料】
【问题描述】
当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将**.svn文件夹直接部署到线上**环境。这就引起了 SVN 泄露漏洞。
(1)题目解析
- 象征性用dirsearch扫描下url的目录,会发现.svn接口不是5XX,既是该接口存在漏洞
- 使用dvcs-ripper——perl的版本控制软件信息泄露利用工具,进行svn扫描链接url
- 指令格式:./rip-svn.pl -v -u http://challenge-2a218a0ce8b75239.sandbox.ctfhub.com:10800/.svn
- 扫描后,输入ls -al,可以看到一个文件夹.svn
- 进入.svn文件,点击文件夹pristine(意思是初始文件),会看到有一个文件(名字很长);
- 利用cat查看即可获得flag
(2)后续
如果要是那么简单就好了,步骤很简单,也就用工具扫一下,进入对应的文件查看,但过程中会遇到各种报错,在这里,我总结下自己报错的点,以及如何解决的
**报错1:Can’t locate LWP.pm in @INC **
这是提醒你:缺少Perl模块的一些东西
解决办法如下
1、输入下面指令 perl -MLWP::Simple -e 1
如果有内容输出,说明安装了;
若报错,说明没安装perl,走下一步
2、安装perl:perl -MCPAN -e'install "LWP::Simple"'
报错2:install_driver(SQLite) failed: Can’t locate DBD/SQLite.pm in @INC
这里提醒你:缺少SQLite模块了,需要安装
依次输入下面指令,即可
perl -MCPAN -e shell
install DBD::SQLite
exit
(3)扩展 知识
svn的定义、漏洞形成原因以及解决办法
HG泄露
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。
(1)题目解析
- 使用指令./rip-hg.pl -v -u http://challenge-0d1bfd329d7e5a58.sandbox.ctfhub.com:10800/.hg
- 查看.hg/store/fncache文件,发现flag文件名
- 用浏览器访问即可,访问链接url+flag文件名
(2)知识补充
- Hg泄露原理(Mercurial是一种轻量级分布式版本控制系统)
- HG在初始化代码库的时候会在当前文件夹下创建一个:.hg隐藏文件夹,
- 其中包括了代码和分支修改记录等信息,如果直接复制文件夹到web服务器,会把.hg文件夹也发布到线上。
总结
1、信息泄露由4部分组成
- 目录泄露——现阶段比较少
- phpinfo函数漏洞
- 隐藏文件
- 源码泄露:git、svn、hg
最后
以上就是震动大炮为你收集整理的CTFHUB之Web安全—信息泄露的全部内容,希望文章能够帮你解决CTFHUB之Web安全—信息泄露所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复