linzb 2020-05-01
地址:https://www.ctfhub.com/#/skilltree
目录遍历
题解:给了四个目录,遍历就可以找到flag
PHPINFO
预备知识
phpinfo:输出 PHP 当前状态的大量信息,包含了 PHP 编译选项、启用的扩展、PHP 版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息(License)。
phpinfo() 同时是个很有价值的、包含所有 EGPCS(Environment, GET, POST, Cookie, Server) 数据的调试工具。
题解:ctrl+f搜索flag就找到了
备份文件下载
漏洞产生原因:当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
一:网站源码
题解:在URL后面加上/备份文件名加.加后缀,一个一个试,最后试出来www.zip,打开后看到一个txt文件,打开却没有flag,于是在url后面加上/txt文件名.txt得到flag
二:bak文件
预备知识
bak文件泄露:有些时候网站管理员可能为了方便,会在修改某个文件的时候先复制一份,将其命名为xxx.bak。而大部分Web Server对bak文件并不做任何处理,导致可以直接下载,从而获取到网站某个文件的源代码。
题解:直接在url后面加上index.php.bak然后打开下载的文件就可以看到flag,或者使用上篇博客讲到的curl命令:curl url/index.php.bak
这里给出一道攻防世界的同样的题目:https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5064&page=1
三:vim缓存
预备知识
vim:一款功能强大、高度可定制的文本编辑器,kali(黑客的武器库,建议在虚拟机里装一个)里面自带。
四:.DS_Store
预备知识
.DS_Store 文件利用 .DS_Store
是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store
可以知道这个目录里面所有文件的清单。
题解:这里先给出官方writeup:
我的方法:在kali-linux里面做,先用wget命令下载.DS_Store文件:wget url/.DS_Store,cat命令查看内容:cat .DS_Store,然后看到txt文件名,用curl命令查看内容:curl url/txt文件名
注:可以直接在url的后面加上/.DS_Store下载文件,但是用cat命令查看的时候需要跳转到文件所在的目录下
Git泄露
漏洞产生原因:当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
预备知识:
GitHack:一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全漏洞。
git命令的使用,可以参考https://www.yiibai.com/git
一:Log
题解:在kali中用git clone https://github.com/BugScanTeam/GitHack下载GitHack,然后在GitHack目录下用python GitHack.py url/.git下载文件,然后跳转到GitHack/dist/challenge......../git目录下,使用git log查看日志文件名,git show展示内容就看到flag了
解释:git log命令用于显示提交日志信息;git show命令用于显示各种类型的对象。
二:Stash
题解:
-----python GitHack.py url/.git
然后跳转到下载的文件目录下
-----git stash list
-----git stash pop
-----cat txt文件名
解释:git stash命令用于将更改储藏在脏工作目录中。
git stash list显示git栈中的所有工作区内容的备份,git stash pop从git栈中获取到最近一次stash进去的内容,恢复工作区的内容,获取之后,会删除栈中对应的stash。
三:Index
题解:
-----python GitHack.py url/.git
跳转到下载文件目录下
-----git show
或者
-----ls
cat txt文件名
SVN泄露
漏洞产生原因:当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。
预备知识
dvcs-ripper的简单使用,可参考https://github.com/kost/dvcs-ripper
题解
//安装dvcs-ripper
-----git clone https://github.com/kost/dvcs-ripper.git
//安装相应的依赖包
-----sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite4-perl libclass-dbi-perl libio-all-lwp-perl
-----sudo apt-get install libparallel-forkmanager-perl libredis-perl libalgorithm-combinatorics-perl
-----sudo apt-get install cvs subversion git bzr mercurial
//漏洞利用
-----cd dvcs-ripper
-----rip-svn.pl -v -u url/.svn 注:如果输入命令后显示未找到命令,就在前面加上./,原因可能跟目录有关
-----ls -all
-----cd .svn进入.svn目录下
接下来进行目录遍历,找到flag在pristine目录的4b目录下的文件里
HG泄露
漏洞产生原因:当开发人员使用Mercurial进行版本控制,对站点自动部署。如果配置不当可能会将hg文件夹直接部署到线上环境。这就引起了hg泄露漏洞。
题解
-----rip-hg.pl -u url/.hg 注:如果输入命令后显示未找到命令,就在前面加上./,原因可能跟目录有关
-----ls -all
-----cd .hg
接着进行目录遍历,找到flag在fncache中的data/flag_xxxx.txt.i中,然后使用cat命令发现打不开,于是用curl命令查看url/flag_xxxx.txt看到flag
参考:
https://www.cnblogs.com/0yst3r-2046/p/12443346.html
https://www.cnblogs.com/anweilx/p/12421753.html
https://blog.csdn.net/qq_36898043/article/details/79431168
转载请注明出处?