wab服务扫描工具:
kali自带
可选参数:
-h, --help 显示此帮助消息并退出
-u URL, --url URL 定义扫描范围的基础URL 默认扫描范围是folder
–scope {page, folder, domain, url, punk} 设置扫描范围
-m MODULES_LIST, --module MODULES_LIST 加载模块列表
–list-modules 列出Wapiti攻击模块并退出
-l LEVEL, --level LEVEL 设置攻击等级
-p PROXY_URL, --proxy PROXY_URL 设置HTTP(S)代理 支持HTTP(S), SOCKS
–tor 使用Tor监听器 (127.0.0.1:9050)
-a CREDENTIALS, --auth-cred CREDENTIALS 设置HTTP认证凭据
–auth-type {basic, digest, kerberos, ntlm} 设置认证类型
-c COOKIE_FILE, --cookie COOKIE_FILE 设置json格式的Cookie文件
–skip-crawl 不恢复之前会话记录的扫描进程
–resume-crawl 即使先前曾进行过某些已停止的攻击也可以恢复扫描进程
–flush-attacks 放弃当前会话的攻击历史和漏洞信息
–flush-session 放弃所有之前发现的当前目标的所有信息包括爬取的URL和漏洞等
–store-session PATH 存储攻击历史记录和会话数据的目录
-s URL, --start URL 添加起始扫描URL
-x URL, --exclude URL 添加要排除的URL
-r PARAMETER, --remove PARAMETER 删除URL中的给定的参数
–skip PARAMETER 不攻击给定的参数
-d DEPTH, --depth DEPTH 设置扫描深度
–max-links-per-page MAX 设置扫描范围内每一页面提取的链接数
–max-files-per-dir MAX 设置每一目录探索的页面数
–max-scan-time MINUTES 设置扫描持续时间float分钟数
–max-parameters MAX 拥有超过最大输入参数的URL和表单在攻击前会被删除
-S FORCE, --scan-force FORCE 减少扫描和攻击的URL的简单办法 可选值: paranoid, sneaky, polite, normal, aggressive, insane
-t SECONDS, --timeout SECONDS 设置请求超时时间
-H HEADER, --header HEADER 设置每次请求的首部
-A AGENT, --user-agent AGENT 设置每次请求的User-Agent
–verify-ssl {0, 1} 是否检查SSL 默认不检查
–color 使用颜色美化输出
-v LEVEL, --verbose LEVEL 设置详细度 (0: quiet, 1: normal, 2: verbose)
-f FORMAT, --format FORMAT 设置输出格式 支持: json, html(default), txt, openvas, vulneranet, xml
-o OUPUT_PATH, --output OUPUT_PATH 输出文件或目录
–external-endpoint EXTERNAL_ENDPOINT_URL Url serving as endpoint for target
–internal-endpoint INTERNAL_ENDPOINT_URL Url serving as endpoint for attacker
–endpoint ENDPOINT_URL Url serving as endpoint for both attacker and target
–no-bugreport 当攻击模块失败时不发送Bug报告
–version 打印程序版本号
名称
wapiti- Python 中的 Web 应用程序漏洞扫描器
概要
wapiti-u BASE_URL [选项]
描述
Wapiti 允许您审核 Web 应用程序的安全性。
它执行“黑盒”扫描,即它不研究应用程序的源代码,但会扫描已部署的 web 应用程序的网页,寻找可以注入数据的脚本和表单。
一旦得到这个列表,Wapiti 就会像一个模糊器一样,注入有效载荷来查看脚本是否易受攻击。
Wapiti 仅用于发现漏洞:它不是一种利用工具。一些众所周知的应用程序可用于开发部分,如推荐的 sqlmap。
选项摘要
这是选项的摘要。这基本上就是您在没有任何争论的情况下启动 Wapiti 时所得到的。有关每个选项的更多详细信息,请参见以下部分。
目标规格:
-u 网址
–scope {页面,文件夹,域,网址,朋克}
攻击规格:
-m 模块列表
–list-modules
-l 等级
代理和认证选项:
-p PROXY_URL
-a 证书
–auth-type {基本,摘要,ntlm,post}
-c COOKIE_FILE_OR_BROWSER_NAME
–drop-set-cookie
会话选项:
–skip-crawl
–resume-crawl
–flush-attacks
–flush-session
–store-session 小路
–store-config 小路
扫描和攻击调整:
-s 网址
-x 网址
-r 范围
–skip 范围
-d 深度
–max-links-per-page MAX_LINKS_PER_PAGE
–max-files-per-dir MAX_FILES_PER_DIR
–max-scan-time MAX_SCAN_TIME
–max-attack-time MAX_ATTACK_TIME
–max-parameters 最大限度
-S,–scan-force{偏执,偷偷摸摸,礼貌,正常,好斗,疯狂}
–tasks 任务
HTTP 和网络选项:
-t 秒
-H 标题
-A 代理人
–verify-ssl {0,1}
输出选项:
–color
-v 等级
报告选项:
-f {json,html,txt,xml}
-o 输出路径
其他选项:
–no-bugreport
–version
–update
-h
目标规格
-u, --url URL
将用作扫描基础的 URL。扫描期间找到的每个 URL 都将根据基本 URL 和相应的扫描范围进行检查(有关详细信息,请参阅 --scope)。
这是唯一需要的参数。URL 的方案部分必须是 http 或 https。
–scope SCOPE
定义扫描和攻击的范围。有效的选择是:
url :只会扫描和攻击使用 -u 选项给出的确切基本 URL。
page :将攻击与基本 URL 路径匹配的每个 URL(每个查询字符串变体)。
folder : 将扫描和攻击从基本 URL 值开始的每个 URL。这个基本 URL 应该有一个尾部斜杠(没有文件名)。
domain :将扫描并攻击其域名与基本 URL 中的域名匹配的每个 URL。
punk :将扫描并攻击在任何域中找到的每个 URL。在使用该范围之前要三思。
攻击规格
-m, --module MODULE_LIST
设置攻击模块列表(模块名称用逗号分隔)以针对目标启动。
默认行为(未设置该选项时)是使用最常见的模块。
也可以使用“common”关键字指定通用模块。
如果您想将通用模块与 XXE 模块一起使用,您可以传递 -m common,xxe。
可以使用“all”关键字激活所有模块(虽然不推荐)。
要在不发起任何攻击的情况下启动扫描,只需提供一个空值 (-m “”)。
您也可以过滤 http 方法(仅获取或发布)。例如 -m “xss:get,exec:post”。
–list-modules
打印可用的 Wapiti 模块列表以及简短说明,然后退出。
-l, --level LEVEL
在以前的版本中,Wapiti 曾经在查询字符串中注入攻击载荷,即使原始 URL 中没有参数。
虽然它可能会成功地以这种方式发现漏洞,但它导致了太多的请求而没有足够的成功。
此行为现在隐藏在此选项后面,可以通过将 -l 设置为 2 来重新激活。
当开发人员必须自己解析查询字符串时,它可能对 CGI 很有用。
此选项的默认值为 1。
代理和认证选项
-p, --proxy PROXY_URL
给定的 URL 将用作 HTTP 和 HTTPS 请求的代理。此 URL 可以采用以下方案之一:http、https、socks。
–tor
让 Wapiti 使用 Tor 侦听器(与 --proxy socks://127.0.0.1:9050/ 相同)
-a, --auth-cred CREDENTIALS
设置用于在目标上进行身份验证的凭据。
给定值应采用 login%password 形式(% 用作分隔符)
–auth-type TYPE
设置要使用的身份验证机制。有效的选择是 basic、digest、ntlm 和 post(网络登录表单)。
NTLM 身份验证可能需要您安装额外的 Python 模块。“发布”身份验证可以与-s指定在哪里找到登录表单结合使用。
-c, --cookie COOKIE_FILE_OR_BROWSER_NAME
从 Wapiti JSON cookie 文件加载 cookie。有关更多信息,请参阅wapiti-getcookie (1)。
您还可以通过将“chrome”或“firefox”作为值(不支持 MS Edge)从浏览器导入 cookie。
–drop-set-cookie
忽略 HTTP 响应中给出的 cookie。使用已加载的 Cookie-c将被保留。
课程选项
从 Wapiti 3.0.0 开始,扫描的 URL、发现的漏洞和攻击状态都存储在用作 Wapiti 会话文件的 sqlite3 数据库中。
对于给定的基本 URL 和范围存在先前扫描会话时的默认行为是恢复扫描和攻击状态。
以下选项允许您绕过此行为/
–skip-crawl
如果之前的扫描已执行但未完成,请不要继续扫描。将对当前已知的 URL 进行攻击,而无需扫描更多。
–resume-crawl
如果先前已停止爬网并开始攻击,则默认行为是在恢复会话时跳过爬网。
使用此选项可继续扫描过程,同时在会话中保留漏洞和攻击。
–flush-attacks
忘记有关已发现漏洞以及哪个 URL 被哪个模块攻击的所有信息。
只会保留扫描(抓取)信息。
–flush-session
忘记关于给定范围的目标的所有内容。
–store-session PATH 指定用于存储会话(.db 和 .pkl)文件的替代路径。
–store-config PATH 指定用于存储特定模块(apps.json和nikto_db)文件的替代路径。
扫描和攻击调整
-s, --start URL
如果由于某些原因,Wapiti 没有从基本 URL 中找到任何(或足够多)的 URL,您仍然可以添加 URL 以开始扫描。
这些 URL 的深度为 0,就像基本 URL 一样。
可以多次调用此选项。
你也可以给它一个文件名,Wapiti 会从给定的文件中读取 URL(必须是 UTF-8 编码),每行一个 URL。结合–auth-type=post,Wapiti 将尝试在提供的第一个 URL 上找到登录表单,并使用给定的凭据进行身份验证。
-x, --exclude URL
防止给定的 URL 被扫描。常见用途是排除注销 URL 以防止破坏会话 cookie(如果您使用 --cookie 指定了 cookie 文件)。
此选项可以应用多次。作为参数给出的排除 URL 可以包含用于基本模式匹配的通配符。
-r, --remove PARAMETER
如果在扫描的 URL 中找到给定的参数,它将被自动删除(编辑 URL)。
此选项可以多次使用。
–skip PARAMETER
给定的参数将保存在 URL 和表单中,但不会受到攻击。
如果您已经知道非易受攻击的参数,则很有用。
-d, --depth DEPTH
当 Wapiti 抓取网站时,它会为每个找到的 URL 提供一个深度值。
基本 URL 和附加起始 URL (-s) 的深度为 0。
在这些 URL 中找到的每个链接的深度为 1,依此类推。
默认最大深度为 40 并且非常大。
此限制确保扫描将在某个时间停止。
对于快速扫描,建议使用低于 5 的深度。
–max-links-per-page MAX
这是能够减少爬虫发现的 URL 数量的另一个选项。
只会提取每个网页的前 MAX 个链接。
此选项并不是真正有效,因为相同的链接可能会出现在不同的网页上。
它应该在罕见的情况下很有用,例如当有很多没有查询字符串的网页时。
–max-files-per-dir MAX
限制在网络服务器上找到的每个文件夹下抓取的 URL 数量。
请注意,路径中带有斜杠的 URL 不一定是一个文件夹,Wapiti 会按原样对待它。
像前面的选项一样,它应该只在某些情况下有用。
–max-scan-time SECONDS 如果扫描仍在运行,则在 SECONDS 秒后停止扫描。应该有助于从另一个过程(连续测试)自动扫描。
–max-attack-time SECONDS 如果仍在运行,每个攻击模块将在 SECONDS 秒后停止。应该有助于从另一个过程(连续测试)自动扫描。
–max-parameters
在启动攻击模块之前,MAX URL 和具有超过 MAX 输入参数的表单将被丢弃。
-S, --scan-force FORCE
URL 或表单的输入参数越多,Wapiti 发送的请求就越多。
请求总数可能会迅速增长,攻击具有 40 个或更多输入字段的表单可能需要大量时间。
当参数数量增加时,Wapiti 使用数学公式来减少针对给定模式(相同变量名称)扫描的 URL 数量。
该公式是maximum_allowed_patterns = 220 / (math.exp(number_of_parameters * factor) ** 2) 其中因子是您作为选项提供的FORCE值的内部值控制器。
可用的选项有:偏执、偷偷摸摸、礼貌、正常、好斗、疯狂。
默认值是正常的(147 个 URL 代表 1 个参数,30 个代表 5 个,5 个代表 10 个,1 个代表 14 个或更多)。
疯狂模式只要去掉那些限制的计算,每一个 URL 都会被攻击。
偏执模式将攻击 30 个带有 1 个参数的 URL,5 个用于 2,只有 1 个用于 3 和更多)
–tasks 任务 设置 Wapiti 应该使用多少并发任务。
Wapiti 为此利用了 Python 的 asyncio 框架。
–endpoint URL 一些攻击模块使用 HTTP 端点来检查漏洞。
例如,SSRF 模块将端点 URL 注入网页参数,以检查目标脚本是否尝试获取该 URL。
默认端点是 http://wapiti3.ovh/。请记住,目标和您的计算机必须能够加入该端点,模块才能工作。
在内部渗透测试中,目标可能无法访问此端点,因此您可能更愿意设置自己的端点。
此选项会将内部和外部端点 URL 设置为相同的值。
–internal-endpoint URL 您可能希望指定一个不同于外部端点的内部端点。
Wapiti 使用内部端点来获取攻击结果。
如果您在 NAT 后面,它可能是本地服务器的 URL(例如 http://192.168.0.1/)
–external-endpoint URL 设置端点 URL(目标将在出现漏洞时获取的 URL)。
使用您自己的端点可能会降低被 NIDS 或 WAF 捕获的风险。
HTTP 和网络选项
-t, --timemout SECONDS
在考虑失败之前等待 HTTP 响应的时间(以秒为单位)。
-H, --header HEADER
设置自定义 HTTM 标头以注入 Wapiti 发送的每个请求。此选项可以多次使用。
值应该是标准的 HTTP 标头行(参数和值用 : 符号分隔)。
-A,–user-agent 代理
Wapiti 的默认行为是使用与 TorBrowser 相同的用户代理,使其在抓取标准网站或 .onion 网站时谨慎。
但是您可能需要更改它以绕过某些限制,因此此选项就在这里。
–verify-ssl VALUE
Wapiti 默认不关心证书验证。可以通过将 1 作为值传递给该选项来更改该行为。
输出选项
Wapiti 将其状态打印到标准输出。以下两个选项允许调整输出。
–color
输出将根据信息的严重程度进行着色(红色为严重,橙色为警告,绿色为信息)。
-v, --verbose LEVEL
设置输出的详细程度。可能的值是安静 (O)、正常 (1,默认行为) 和详细 (2)。
报告选项
Wapiti 将在攻击过程结束时生成报告。有多种报告格式可供选择。
-f, --format FORMAT
设置报告的格式。有效的选择是 json、html、txt 和 xml。
虽然重写了 HTML 报告以提高响应速度,但当发现大量漏洞时,它们仍然不切实际。
-o, --output OUTPUT_PATH
设置生成报告的路径。
其他选项
–version
打印 Wapiti 版本然后退出。
–no-bugreport
如果 Wapiti 攻击模块因未捕获的异常而崩溃,则会生成错误报告并发送进行分析,以提高 Wapiti 的可靠性。请注意,仅保留报告的内容。
您仍然可以使用该选项阻止发送报告。
–update 更新特定的 Wapiti 模块(下载apps.json和nikto_db文件的新版本)然后退出。您可以将它与–store-config指定存储下载文件的位置结合使用。
-h,–help
显示详细的选项说明。不过,在此联机帮助页中提供了更多详细信息。
执照
Wapiti 受 GNU 通用公共许可证 (GPL) 第 2 版的保护。请阅读 LICENSE 文件以获取更多信息。
版权
版权所有 © 2006-2021 Nicolas Surribas。
作者
Nicolas Surribas 是主要作者,但完整的贡献者列表可在单独的 AUTHORS 文件中找到。
网站
https://wapiti-scanner.github.io/
错误报告
如果您在 Wapiti 中发现错误,请将其报告给 https://github.com/wapiti-scanner/wapiti/issues
也可以看看
Wapiti 附带的 INSTALL.md 文件包含安装 Wapiti 所需的所有信息。
wapiti -u http://192.168.1.21:8100/ -o -f html