一般在Web服务搭好了,需要对暴露的Web资产进行扫描,从而确定并没有未授权的URL暴露给攻击者。
比如一些注册页面、系统初始化页面,正常情况下我们是通过页面上的链接来访问的。但如果页面上的链接被去掉了,这个页面就变成了隐形页面,URL可以直接访问,但通过正常途径不会访问到。这时URL遍历扫描就可以将这些被遗漏的资源扫出来。
dirsearch 就是这样一款Web暴露面扫描工具,通过对站点进行遍历扫描可以获得可访问的资源。而这些Web资源如果存在漏洞就会给攻击者提供入侵目标。作为防守方则可以利用这款工具了解Web站点暴露出来的资源,从而移除或通过WAF(web application firewall)进行有效防御。
dirsearch 工具的 github 项目地址为:
https://github.com/maurosoria/dirsearch
我们使用它来简单地探测一下 WordPress 暴露出来的资源:
$ dirsearch -u http://192.168.10.200/it -e php --exclude-status 403,301

通过 dirsearch 扫描发现站点下有不应该出现的.git目录,并且初始化页面和注册页面都可访问:
[11:25:08] 200 - 676B - /it/wp-admin/install.php[11:25:09] 200 - 20B - /it/wp-config.php[11:25:09] 302 - 20B - /it/wp-signup.php
通过直接访问这些页面提示功能已经关闭,如果功能没有关闭那么用户就可以直接注册进去了。


通过对站点进行检查可以提前发现一些未知的风险,因为很多站点上挂了什么页面我们直接通过前台页面是很难发现的。比如一些不需要登陆就可以使用的页面,dirsearch 如果返回的 HTTP 状态码为 200,则说明这些页面可直接访问。
我们可以什么额外参数都不加先对Web站点进行一轮粗略的扫描,看一下站点上都有什么资源,然后再根据应用类型,比如 php 或 html 对子目录进行扫描。
dirsearch -u http://192.168.10.200dirsearch -u http://192.168.10.200/it -e php,html,js

比如这个站点暴露出来的服务有:
dirsearch -u http://192.168.10.200[11:11:55] 200 - 2KB - /download/[11:12:14] 200 - 2KB - /phpmyadmin/[11:12:24] 401 - 345B - /svn/

HTTP 的常用状态码有:
# HTTP 状态码200 OK 请求成功。401 Unauthorized 请求要求用户的身份认证301 Moved Permanently 请求的资源已被永久的移动到新URI# 更多状态码,请查阅https://www.runoob.com/http/http-status-codes.html
dirsearch 的使用可以直接参考 github 项目主页,上面都有写好的示例,直接套参数即可。dirsearch 的安装在项目主页上也有描述,我主要介绍下Windows下的安装和使用。
在Windows下直接使用 pip 进行安装即可,安装时会下载大量的依赖。
pip install dirsearch

使用 pip 安装完后会多出一个 dirsearch.exe 的可执行文件出来,使用 where 可以定位 dirsearch 的位置:
C:\> where dirsearchC:\Python\Python311\Scripts\dirsearch.exeC:\> dirsearch -hUsage: dirsearch [-u|--url] target [-e|--extensions] extensions [options]Options:--version show program's version number and exit-h, --help show this help message and exitMandatory:-u URL, --url=URL Target URL(s), can use multiple flags
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。




