CTFHUB-技能树-Web-信息泄露

地址: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(黑客的武器库,建议在虚拟机里装一个)里面自带。

  在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容
  以 index.php 为例:第一次产生的交换文件名为 .index.php.swp,再次意外退出后,将会产生名为 .index.php.swo 的交换文件,第三次产生的交换文件则为 .index.php.swn
 
wget:一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合。
常用命令:
下载单个文件-----wget http://ip:port/file
指定保存名称-----wget -O 名称 http://ip:port/file
 
题解:在kali中用wget命令下载交换文件.index.php.swp,然后用vim打开,R恢复就可以看到flag
补充:利用curl访问即可直接看到flag,因为vim使用的缓存存储为一种固定格式的二进制文件。而我们一般编辑的可见字符在vim的缓存中会原样保留

四:.DS_Store

预备知识

.DS_Store 文件利用 .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。

题解:这里先给出官方writeup:

https://writeup.ctfhub.com/Skill/Web/%E4%BF%A1%E6%81%AF%E6%B3%84%E9%9C%B2/%E5%A4%87%E4%BB%BD%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD/28aeaed6.html

我的方法:在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

转载请注明出处✔

原文地址:https://www.cnblogs.com/Web-Fresher/p/12813816.html