Web安全 — 信息收集(上)

摘要

为了更好服务大家在课程中遇到问题,每期我们都会进行一些问题交流和解答。 启程2班人额现在已满,请加启程3班-工具系列 。如果在看视频过程中,遇到相关问题,可以关注我们公众号 sec-redclub ,把问题发给我们。

为了更好服务大家在课程中遇到问题,每期我们都会进行一些问题交流和解答。 启程2班人额现在已满,请加启程3班-工具系列 。如果在看视频过程中,遇到相关问题,可以关注我们公众号 sec-redclub ,把问题发给我们。

红日论坛

http://bbs.sec-redclub.com/hr/forum.php?mod=viewthread&tid=32&extra=page%3D1

信息收集一般都是渗透测试前期用来收集,为了测试目标网站,不得不进行各种信息收集。信息收集要根据不同目标进行不同方向收集,工具部分会在下节课程进行讲解,根据个人渗透测试经验总结文章。本文只是抛砖引玉,希望可以给大家一个好的思路。如果文章中有环境搭建部分,靶场后续会在公众号中发布。视频在关注公众号以后,回复我要视频,管理员会在最快时间进行回复。

首先公开上一节中一张图,开始今天主题讲解。

信息收集思维导图

Web安全 — 信息收集(上)

信息收集

1、robots.txt

当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在 robots.txt ,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

robots.txt 基本上每个网站都用,而且放到了网站的根目录下,任何人都可以直接输入路径打开并查看里面的内容,如 http://127.0.0.1/robots.txt ,该文件用于告诉搜索引擎,哪些页面可以去抓取,哪些页面不要抓取。

Web安全 — 信息收集(上)

robots.txt 防黑客,为了让搜索引擎不要收录 admin 页面而在 robots.txt 里面做了限制规则。但是这个 robots.txt 页面未对用户访问进行限制,可任意访问,导致可通过该文件了解网站的结构,比如admin目录、user目录等等。

怎样即使用 robots.txt 的屏蔽搜索引擎访问的功能,又不泄露后台地址和隐私目录呢?

有,那就是使用星号(/*)作为通配符。举例如下:

User-agent:* Disallow: /a*/

这个设置,禁止所有的搜索引擎索引根目录下a开头的目录。当然如果你后台的目录是 admin ,还是有可以被人猜到,但如果你再把 admin 改为 adminzvdl 呢?

2、网站备份压缩文件

管理员在对网站进行修改、升级等操作前,可能会将网站或某些页面进行备份,由于各种原因将该备份文件存放到网站目录下,该文件未做任何访问控制,导致可直接访问并下载。可能为 .rar、zip、.7z、.tar.gz、.bak、.txt、.swp 等等,以及和网站信息有关的文件名 www.rar、web、rar 等等

Web安全 — 信息收集(上)

3、Git导致文件泄露

由于目前的 web 项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码完全分离,隶属两个不同的项目。表态文件使用 git 来进行同步发布到服务器,然后使用 nginx 指向到指定目录,以达到被公网访问的目的。

在运行 git init初始化代码库的时候,会在当前目录下面产生一个 .git 的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把 .git 这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码

Web安全 — 信息收集(上) Web安全 — 信息收集(上)

4、DS_store导致文件泄露

.DS_StoreMacFinder 用来保存如何展示文件//文件夹的数据文件,每个文件夹下对应一个。由于开发/设计人员在发布代码时未删除文件夹中隐藏的 .DS_store ,可能造成文件目录结构泄漏、源代码文件等敏感信息的泄露。

我们可以模仿一个环境,利用 phpstudy 搭建 PHP 环境,把 .DS_store 文件上传到相关目录。

Web安全 — 信息收集(上)

然后利用工具进行相关检测

Web安全 — 信息收集(上)

工具下载地址: https://github.com/lijiejie/ds_store_exp

为了让实验更真实,我们在本地搭建环境,然后建立一个文件夹为admin和一个hello文件夹,利用该工具运行完以后,查看工具文件夹查看有什么结果。

Web安全 — 信息收集(上)

此文件和我们在一个文件夹内,如果是苹果用户,把文件copy到相关服务器目录以后,都会默认带一个文件 .DS_Store 。首先访问 test.php 文件,查看环境是否成功。

Web安全 — 信息收集(上)

环境搭建成功

Web安全 — 信息收集(上)

我们利用工具进行测试,运行完如上图,运行完以后我们可以到工具目录进行查看

Web安全 — 信息收集(上) Web安全 — 信息收集(上)

这是一个 .DS_Store 文件泄漏利用脚本,它解析 .DS_Store 文件并递归地下载文件到本地。

5、SVN导致文件泄露

Subversion ,简称 SVN ,是一个开放源代码的版本控制系统,相对于的 RCS、CVS ,采用了分支管理系统,它的设计目标就是取代 CVS 。互联网上越来越多的控制服务从 CVS 转移到Subversion。

Subversion 使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的 Subversion 仓库,另一端是 Subversion 的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层 (Repository Access,简称RA) 的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如 HTTP、SSH 等,或本地文件的方式来对仓库进行操作。

SVN漏洞在实际渗透测试过程中,利用到也比较多,由于一些开发管理员疏忽造成,原理类似DS_Store漏洞。我们这里不再进行搭建环境,给大家推荐工具,利用方法如下:

1) 漏洞利用工具: Seay SVN 漏洞利用工具

2) 添加网站url

在被利用的网址后面加 /.svn/entries,列出网站目录,甚至下载整站

Web安全 — 信息收集(上) Web安全 — 信息收集(上)

下载地址: https://pan.baidu.com/s/1jGA98jG

6、WEB-INF/web.xml泄露

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

6.1、环境搭建

我们需要利用jsp源码给大家进行示范,所以前提需要下载一个jsp环境,这里我们选取jspstudy进行示范。下载地址: http://www.phpstudy.net/phpstudy/JspStudy.zip

Web安全 — 信息收集(上)

另外一种方法就是直接下载webgoat然后执行文件中webgoat.bat文件即可

Web安全 — 信息收集(上)

下载地址: http://sourceforge.net/projects/owasp/files/WebGoat/WebGoat5.2/

Web安全 — 信息收集(上)

6.2、访问页面

访问地址: http://localhost/, 进入此页面,证明我们tomcat已经启动,我们查看一下web.xml目录在哪里,你可以练习此靶场,靶场在后续会进行讲解。这里我们只讲解此web.xml信息泄露漏洞。如果让用户设置权限不严格,造成一些目录列出,结果是非常严重,我们通过访问web.xml文件,可以查看一些敏感信息,如下图

Web安全 — 信息收集(上)

6.3、扫描

利用工具扫描,我们得知此目录下面有一些敏感文件,我们尝试去访问

Web安全 — 信息收集(上)