目录遍历
import requests url = "http://challenge-6225e10eca4ac8d8.sandbox.ctfhub.com:10080/flag_in_here" for i in range(1,5): for j in range(1,5): url_final = url + "/" + str(i) + "/" + str(j) r = requests.get(url_final) r.encoding = "utf-8" get_file=r.text if "flag.txt" in get_file: print(url_final)
PHPINFO
备份文件下载
网站源码
一开始想用御剑的,但是我的御剑出不来
import requests url="http://challenge-5ad2f4033d481510.sandbox.ctfhub.com:10080/" list1=['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp'] list2=['tar', 'tar.gz', 'zip', 'rar'] for i in list1: for j in list2: url_f=url+i+"."+j r=requests.get(url_f) if(r.status_code == 200): print(url_f)
bak文件
dirsearch扫描有个index.php.bak,flag在里面
vim缓存
vim在编辑文档的过程中如果异常退出,会产生缓存文件,第一次产生的缓存文件后缀为.swp,后面会产生swo等.
.index.php.swp
.DS_Store
直接在url后面打上就行
abd33077a2ef5551750fd1574e47b542.txt
Git泄露
Log
都说了是.git泄露,我偷懒就不dirsearch扫描了,直接githack
出来了俩文件,啥也没有
应该是被隐藏了 ,我们可以在克隆的文件夹页面执行git log 命令 查看历史记录
应该在 add flag里
Stash
stash的相关知识 :stash
stash 用于保存 git 工作状态到 git 栈,在需要的时候再恢复。
还是偷懒,不扫描,直接githack,然后在他那个目录下
执行 git stash list 发现有 stash
执行 git stash pop 发现从 git 栈中弹出来一个文件,这个文件的内容就是 flag
Index
SVN泄露
知识点
SVN导致文件泄露 Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。 简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。 在使用SVN管理本地代码过程中,会自动生成一个隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使隐藏文件夹被暴露于外网环境,这使得渗透工程师可以借助其中包含版本信息追踪的网站文件,逐步摸清站点结构。
下载工具
git clone https://github.com/kost/dvcs-ripper
配置组件
sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl
解题
rip-svn.pl用法: ./rip-svn.pl -u http://xxx.com/.svn/
如果没有tree命令的话
sudo apt-get install tree
经过几番波折,
HG泄露
这题和之前的git和SVN同样的方法。这里用dirsearch扫出.hg,说明存在HG泄露。
然后用dvcs-ripper里的rip-hg.pl来获取.hg。
看看拿到了什么
查看.hg/store/fncache
手工打开
前面题难度简单,后几个值得学习。