Web 扫描神器:Gobuster 保姆级教程(附链接)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: Web 扫描神器:Gobuster 保姆级教程(附链接)

一、介绍

Gobuster 是一款用于目录和文件枚举的开源工具。它主要用于在Web应用程序或网站上查找隐藏的目录和文件,从而进行信息收集或渗透测试。以下是 Gobuster 的一些主要特点和功能:

  1. 快速且高效: Gobuster 被设计为快速、高效的工具,能够迅速扫描目标网站上的目录和文件。
  2. 多种扫描模式: 支持多种扫描模式,包括目录枚举、子域名枚举等。用户可以根据需要选择合适的模式。
  3. 多种字典支持: Gobuster 支持使用自定义字典文件进行扫描,用户可以根据需要选择合适的字典来提高扫描效果。
  4. 多线程支持: 工具使用多线程技术,能够同时处理多个请求,提高扫描效率。
  5. HTTP 头部支持: Gobuster 允许用户指定自定义的 HTTP 头部信息,以便更好地模拟不同的请求场景。
  6. 递归扫描: 可以进行递归扫描,深度探索目标网站的目录结构。
  7. 指定 HTTP 方法: 用户可以指定使用的 HTTP 方法,如 GET、POST 等。
  8. 结果输出: 扫描结果可以输出到终端或保存到文件中,支持多种输出格式。
  9. 代理支持: 可以配置代理,用于在扫描中使用代理服务器。
  10. 自动化和集成: 可以通过脚本或其他工具集成 Gobuster 进行自动化扫描任务。

Gobuster 是一个通用的目录和文件枚举工具,适用于多种场景,包括渗透测试、漏洞评估以及网站信息搜集。在使用 Gobuster 进行扫描任务时,请确保遵循法律和道德准则,并在有授权的范围内使用。


二、安装 Gobuster

apt-get install gobuster


三、使用 Gobuster

参考文章

https://blog.csdn.net/B_l_a_nk/article/details/135109164

3.1 全局参数

--debug                                              打开debug模式(调试模式)
--delay duration          每个线程在请求之间等待的时间(举例:--delay 1500ms)
--no-color                                                      禁用颜色输出
--no-error                                                        不显示错误
-z,--no-progress                                                 不显示进度
-o,-output string                                             输出结果到文件
-p,--pattern string                                        包含替换模式的文件
-q,--quiet                                      不打印banner信息和其他无用信息
-t,--threads int                                        指定线程数量(默认10)
-v,--verbose                                    详细输出日志(错误信息也会展示)
-w,--wordlist string                   指定字典路径,指定-可以通过标准输入中读取
--wordlist-offset int           从字典的指定位置继续(默认偏移量为0,从第一个开始)

3.2 模式

dir         经典目录暴力破解模式

dns        DNS子域暴力破解模式

s3         枚举打开的 S3 存储桶并查找是否存在和存储桶列表

gcs        枚举打开的谷歌云存储桶

vhost     虚拟主机暴力破解模式(与DNS不同!)

fuzz        使用模糊测试模式。替换URL、Headers和请求体中的关键词FUZZ

tftp          暴力破解 tftp 文件

3.2.1 dir 模式

-f,--add-slash                                        为每个请求添加/
    --client-cert-p12 string                           用于配置TLS客户端证书的p12文件
    --client-cert-p12-password string                  p12文件的密码
    --client-cert- PEM string                          可选TLS客户端证书的PEM格式公钥
    --client-cert-pem-key string                       可选TLS客户端证书的PEM格式私钥(这个密钥不需要密码)
-c,--cookies string                                   请求使用的cookie
-d,--discovery -backup                                通过追加多个备份扩展名搜索备份文件
    --exclude-length string                            排除以下内容长度(完全忽略状态)可以用逗号分隔多个长度,它也支持像203-206这样的范围
-e,--expanded                                         扩展模式,打印完整的url
-x,--extensions string                                要搜索的文件扩展名
-X,--extensions-file string                           从文件中读取要搜索的文件扩展名
-r,--Follow -redirect Follow                          重定向
-H,--headers stringArray                              指定 HTTP 标头,-H 'Header1: val1' -H 'Header2: val2'
-h,--help                                             dir帮助
    --hide -length                                     在输出中隐藏正文的长度
-m, --method string                                    使用以下HTTP方法(默认"GET")
    --no-canonicalize-headers                          不规范化HTTP头名称。如果设置的报头名称按原样发送。
-n,--no-status                                        不打印状态码
-k,--no-tls-validation                                跳过TLS证书验证
-P,--password string                                  基本认证密码
    --proxy string                                     请求使用的代理[http(s)://host:port]或[socks5://host:port]
    --random-agent                                     使用随机的User-Agent字符串
    --retry                                            应该在请求超时时重试
    --retry-attempts int                               请求超时时重试的次数(默认为3)
-s,--status-codes                                     字符串正状态码(如果设置了status-codes-blacklist,将被覆盖)。也可以处理类似200,300-400,404的范围。
-b,--status-codes-blacklist string                    负面状态码(如果设置了,将覆盖状态码)。也可以处理类似200,300-400,404的范围。(默认值“404”)
    --timeout durationHTTP                             超时时间(默认为10秒)
-u,--url string                                       目标url
-a,--useragent string                                 设置用户代理字符串(默认为"gobuster/3.6")
-U,--username string                                  基本身份验证用户名


-w        指定字典

-t         指定线程

3.2.2 dns 模式

-d,--domain string                          目标域
-h,--help                                   DNS帮助
-r,--resolver string                        使用自定义DNS服务器(格式server.com或server.com:端口)
-c,--Show - CNAME                           显示CNAME记录(不能与-i选项一起使用)
-i,--Show -ips                              显示IP地址

3.2.3 Vhost 模式

--append-domain                       从URL添加主域名到wordlist中的单词。否则,完全限定域需要在            
                                      词表中指定。
-c,--cookies string                  请求使用的cookie
    --domain string                   使用IP地址作为URL时附加的域。如果是空的,你指定一个基于域            
                                      名的URL,从URL中提取主机名
    --exclude-length                  整数排除下面的内容长度(完全忽略状态)。多次供应以排除多个尺寸。
-r,--Follow -redirect Follow         重定向
-H,--headers stringArray             指定 HTTP 标头,-H 'Header1: val1' -H 'Header2: val2'
-h,--help                            vhost帮助
-m, --method string                   使用以下HTTP方法(默认"GET")
-k,--no-tls-validation               跳过TLS证书验证
-P,--password string                 基本认证密码
    --proxy string                    请求使用的代理[http(s)://host:port]
    --random-agent                    使用随机的User-Agent字符串
    --retry                           应该在请求超时时重试
    --retry-attempts int              请求超时时重试的次数(默认为3)
    --timeout duration                HTTP超时时间(默认为10秒)
-u,--url string                      目标url
-a,--useragent string                设置用户代理字符串(默认为"gobuster/3.6")
-U,--username string                 基本身份验证用户名

3.2.4 fuzz 模式

-B,--body                                        请求体
    --client-cert-p12 string                      用于配置TLS客户端证书的p12文件
    --client-cert-p12-password string             p12文件的密码
    --client-cert- PEM string                     可选TLS客户端证书的PEM格式公钥
    --client-cert-pem-key string                  可选TLS客户端证书的PEM格式私钥(这个密钥不需    
                                                  要密码)
-c,--cookies string                              请求使用的cookie
    --exclude-length string                       排除以下内容长度(完全忽略状态)可以用逗号分隔     
                                                  多个长度,它也支持像203-206这样的范围
-b,--excludestatuscodes                          字符串排除的状态码。也可以处理类似200,300-                                             
                                                  400,404的范围。
-r,--Follow -redirect                            重定向
-H,--headers stringArray                         指定 HTTP 标头,-H 'Header1: val1' -H 'Header2: val2'
-h,--help                                        fuzz帮助
-m, --method string                               使用以下HTTP方法(默认"GET")
    --no-canonicalize-headers                     不规范化HTTP头名称。如果设置的报头名称按原样 
                                                  发送。
-k,--no-tls-validation                           跳过TLS证书验证
-P,--password string                             基本认证密码
    --proxy string                                请求使用的代理[http(s)://host:port]或[socks5://host:port]
    --random-agent                                使用随机的User-Agent字符串
    --retry                                       应该在请求超时时重试
    --retry-attempts int                          请求超时时重试的次数(默认为3)
    --timeout durationHTTP                        超时时间(默认为10秒)
-u,--url string                                  目标url
-a,--useragent string                            设置用户代理字符串(默认为"gobuster/3.6")
-U,--username string                             基本身份验证用户名

FUZZ=test 是一个占位符,它表示将在每次请求中用字典文件(在下文中指定)中的不同值替换 FUZZ。所以,实际请求将是类似于 https://www.hubstc.com.cn?

剩余三个模式因为没有实验环境所以不干了!


相关文章
|
22天前
|
开发框架 前端开发 JavaScript
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
2月前
|
网络安全 开发工具 数据安全/隐私保护
|
1月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
3月前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
71 3
|
3月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
104 3
|
3月前
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
94 1
|
4月前
|
负载均衡 网络协议 安全
【Azure 应用服务】Azure Web App的服务(基于Windows 操作系统部署)在被安全漏洞扫描时发现了TCP timestamps漏洞
【Azure 应用服务】Azure Web App的服务(基于Windows 操作系统部署)在被安全漏洞扫描时发现了TCP timestamps漏洞
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
166 3
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
180 45