CTFShow刷题小结(信息搜集)


划了好久的水了,恰巧最近空余时间还算多,就开始刷CTFshow 上的web入门

web源码泄露

印象比较深的是源码泄露的几道题,之前偶尔碰到过,今天才知道是源码泄露。

搬运自:https://blog.csdn.net/Fly_hps/article/details/82821857?utm_source=blogxgwz7

vim临时文件

程序员使用vim编辑器编写一个index.php文件时,会有一个.index.php.swp文件,如果文件正常退出,则该文件被删除,如果异常退出,该文件则会保存下来,该文件可以用来恢复异常退出的index.php,同时多次意外退出并不会覆盖旧的.swp文件,而是会生成一个新的,例如.swo文件。

恢复文件

vim -r 恢复的文件名
前提是.index.php.swp存在于该目录下

vim备份文件

默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,某些情况下可以对其下载进行查看;

以 index.php 为例 第一次产生的缓存文件名为 .index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次产生的缓存文件则为 .index.php.swn
注意:index前有 “ . “

漏洞利用:直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件。

PHPSTORM

使用phpstorm新建项目时,会生成一个.idea文件夹,这个文件夹有一个workspace.xml,访问可以得到一些信息。

网站备份压缩文件

在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。

漏洞成因及危害

该漏洞的成因主要有以下两种:

服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。
编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。

漏洞检测

该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄露,造成巨大的损失。被泄露的源代码还可能会被用于代码审计,进一步利用而对整个系统的安全埋下隐患。

常见备份压缩文件

.rar
.zip
.7z
.tar.gz
.bak
.swp
.txt
.html

常见备份文件后缀:

.index.php.swp
index.php.swp
index.php.bak
.index.php~
index.php.bak_Edietplus
index.php.~
index.php.~1~
index.php
index.php~
index.php.rar
index.php.zip
index.php.7z
index.php.tar.gz
www.zip
www.rar
www.zip
www.7z
www.tar.gz
www.tar
web.zip
web.rar
web.zip
web.7z
web.tar.gz
web.tar
wwwroot.rar
web.rar

漏洞利用:使用disearch扫描

python dirsearch.py -u url -e *

git源码泄漏

git在初始化项目的时候, 会在项目的根目录(可用git rev-parse --show-toplevel查看)创建一个名为.git的隐藏文件夹, 里面包含了本地所有commit的历史记录. 如果无意间将这个目录置于WEB的路径下让用户可以访问,那么这也就泄露了几乎所有的源代码和其他其他敏感信息.

该文件可以来恢复源代码

fuzz:

http://url/.git/config

若存在该页面,可以看到配置信息,说明存在该漏洞

漏洞利用:

工具:GitHack

python GitHack.py http://url/.git/

git log可以查看提交历史
git diff查看git提交的不同处
stash命令可用于临时保存和恢复修改,可跨分支
git stash list查看所有保存的记录列表
git stash pop,从 git 栈中弹出来一个文件

工具:dvcs-ripper

rip-hg.pl -v -u http://url/.git

hg泄露

与git类似, hg在初始化项目时, 会在项目的根目录下创建一个名为.hg的隐藏文件夹,里面包含了代码和分支的修改记录和开发人员的相关信息. 当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。

http://www.example.com/.hg/

fuzz:

http://url/.hg/

漏洞利用:

工具:dvcs-ripper

rip-hg.pl -v -u http://url/.hg

SVN泄露

svn同样在项目根目录下会创建一个名为.svn隐藏文件夹, 包含了所有分支commit信息和代码记录.

fuzz:

http://url/.svn/entries

漏洞利用:

工具:dvcs-ripper

rip-svn.pl -v -u http://www.example.com/.svn/

bzr/Bazaar泄露

bzr在初始化项目时(bzr init/init-repo), 会在项目根目录产生名为.bzr隐藏目录, 同样暴露了源代码和用户信息.

漏洞利用:

工具:dvcs-ripper

rip-bzr.pl -v -u http://www.example.com/.bzr/

CVS泄漏

cvs项目在初始化(cvs checkout project)的时候, 会在project目录下创建一个名为CVS的目录,
其中保存了各个文件的修改和commit记录. 通过此目录可以获取代码的历史版本. 其中两个关键文件为:
CVS/RootCVS/Entries, 分别记录了项目的根信息和所有文件的结构

fuzz

http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构

漏洞利用

取回源码的命令,这个命令的意思就是把远端一个名为name的repo clone到本地名为dir的目录下。

bk clone http://url/name dir

查看所有的改变的命令,转到download的目录

bk changes

.DS_Store文件泄漏

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果开发/设计人员在发布代码时未删除文件夹中隐藏的.DS_store,则有可能会造成文件泄露

fuzz:

http://url/.DS_Store

漏洞利用:

工具:dsstoreexp

python ds_store_exp.py http://url/.DS_Store

WEB-INF/web.xml泄露

WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。

WEB-INF主要包含一下文件或目录:

  • /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
  • /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
  • /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
  • /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
  • /WEB-INF/database.properties:数据库配置文件漏洞检测以及利用方法

漏洞检测以及利用方法

通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。

http://url/WEB-INF/web.xml

reference

https://0clickjacking0.github.io/2019/04/17/web常见源码泄露/
https://www.secpulse.com/archives/55286.html
WEB中的敏感文件泄漏

Unicode编码

web18中新接触到了一种新的编码,unicode,其特征为:\uxxxx


文章作者: Ab4nd0n
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ab4nd0n !
评论
  目录