OWASP Juice Shop 学习 二 主动侦察 1

主动侦察

作为 API 黑客,验证此信息的最佳方式是通过端口或漏洞扫描、ping、发送 HTTP 请求、进行 API 调用以及与目标环境的其他交互形式直接从目标获取信息。
检测扫描、动手分析和针对性扫描。 本章末尾的实验室将展示这些技术的实际应用。

主动侦察过程

本节中讨论的主动侦察过程应导致对目标进行有效而彻底的调查,并揭示可用于访问系统的任何弱点。每个阶段都使用前一阶段的信息来缩小您的关注范围:第一阶段,检测扫描,使用自动扫描来查找运行 HTTP 或 HTTPS 的服务;第二阶段,动手分析,从最终用户和黑客的角度审视这些服务,寻找兴趣点;第三阶段利用第二阶段的发现来增加扫描的重点是彻底探索发现的端口和服务。
此过程非常省时,因为它可以让您在后台运行自动扫描时与目标保持互动。每当您在分析中遇到死胡同时,请返回自动扫描以检查新发现。
该过程不是线性的:在每个阶段之后越来越有针对性扫描,您将分析结果,然后将您的发现用于进一步扫描。在任何时候,您都可能发现漏洞并尝试利用它。如果您成功利用该漏洞,您可以继续进行后期利用。如果不这样做,您将返回扫描和分析。
在主动侦察的整个阶段,包括使用 Nmap 进行检测扫描、使用 DevTools 进行动手分析以及使用 Burp Suite 和 OWASP ZAP 进行目标扫描。

零阶段:机会主义剥削

如果您在主动侦察过程中的任何时候发现漏洞,您应该借此机会尝试利用。 您可能会在扫描的最初几秒钟内、偶然发现部分开发的网页中留下的评论或经过数月的研究后发现该漏洞。 一旦你这样做了,就开始利用,然后根据需要返回到分阶段的过程。 凭借经验,您将了解何时避免在潜在的兔子洞中迷路以及何时全力以赴。

第一阶段:检测扫描

检测扫描的目标是揭示您调查的潜在起点。 从旨在检测主机、开放端口、正在运行的服务和当前使用的操作系统的常规扫描开始,如本章“使用 Nmap 进行基线扫描”部分所述。 API 使用 HTTP 或 HTTPS,因此一旦您的扫描检测到这些服务,让扫描继续运行并进入第二阶段。

第二阶段:动手分析

动手分析是使用浏览器和 API 客户端。旨在了解您可以与之交互的所有潜在杠杆并对其进行测试。实际上,您将检查网页、拦截请求、查找 API 链接和文档,并了解所涉及的业务逻辑。
您通常应该从三个角度考虑应用程序:访客、经过身份验证的用户和站点管理员。访客是可能第一次访问网站的匿名用户。如果站点托管公共信息并且不需要对用户进行身份验证,则它可能只有访客用户。经过身份验证的用户已经完成了一些注册过程,并被授予一定级别的访问权限。管理员有权管理和维护 API。
您的第一步是在浏览器中访问该网站,浏览该网站,然后从这些角度考虑。以下是每个方面的一些注意事项用户组:

访客

新用户将如何使用该网站?新用户可以API互动吗? API 文档是否公开?这个小组可以采取什么行动履行?

认证用户

认证后可以做什么客人不能做吗?可以上传文件吗?您能探索 Web 应用程序的新部分吗?可以使用 API 吗?应用程序是如何识别用户已通过身份验证?

管理员

站点管理员在哪里登录以管理应用程序?页面源代码是什么?围绕各个页面留下了什么评论?使用了哪些编程语言?网站的某些部分正在开发或试验中?

接下来,是时候通过拦截 HTTP 来将应用程序作为黑客进行分析了Burp Suite 的流量。当您使用网络应用程序的搜索栏或尝试要进行身份验证,应用程序可能正在使用 API 请求来执行请求的操作,您将在 Burp Suite 中看到这些请求。
当您遇到障碍时,是时候查看来自第一阶段扫描在后台运行并启动第三阶段:目标扫描。

第三阶段:有针对性的扫描

在目标扫描阶段,优化您的扫描并使用特定于目标的工具。虽然检测扫描覆盖广泛,但有针对性的扫描应关注特定类型的 API、版本、Web 应用程序类型、发现的任何服务版本、应用程序是在 HTTP 还是 HTTPS 上、任何活动的 TCP 端口以及收集的其他信息从理解业务逻辑开始。例如,如果您发现 API 在非标准 TCP 端口上运行,您可以将扫描仪设置为仔细查看该端口。如果您发现 Web 应用程序是使用 WordPress 制作的,请通过访问检查是否可以访问 WordPress API /wp-json/wp/v2。此时,您应该知道 Web 应用程序的 URL,并且可以开始暴力破解统一资源标识符以查找隐藏的目录和文件(参见本章后面的“使用 Gobuster 暴力破解 URI”)。一旦这些工具启动并运行,在结果流入时对其进行审查,以执行更有针对性的动手分析。

以下部分描述了您将使用的工具和技术

使用 Nmap 进行基线扫描

Nmap 是一个强大的工具,用于扫描端口、搜索漏洞、枚举服务和发现活动主机。它是我首选的第一阶段检测扫描工具,但我也返回它进行有针对性的扫描。
你会找到专门介绍 Nmap 功能的书籍和网站,所以我不会在这里深入探讨。
对于 API 发现,您应该特别运行两次 Nmap 扫描:常规检测和所有端口。 Nmap 常规检测扫描针对目标使用默认脚本和服务枚举,然后以三种格式保存输出以供以后查看(-oX 用于 XML,-oN 用于 Nmap,-oG 用于 greppable,或 -oA 用于所有三种格式):

$ nmap -sC -sV <目标地址或网络范围> -oA nameofoutput

Nmap 全端口扫描将快速检查所有 65,535 个 TCP 端口是否正在运行服务、应用程序版本和正在使用的主机操作系统

nmap -sC -sV 192.168.31.202
Starting Nmap 7.91 ( https://nmap.org ) at 2022-04-16 22:45 ?D1ú±ê×?ê±??
Nmap scan report for 192.168.31.202 (192.168.31.202)
Host is up (0.00030s latency).
Not shown: 998 filtered ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
|   2048 2d:71:cb:09:e4:57:71:b0:ef:40:73:5e:4c:24:3c:7b (RSA)
|   256 20:c5:2a:81:61:3e:17:26:94:97:71:e7:d8:14:75:1f (ECDSA)
|_  256 f7:71:b6:74:83:ad:bd:f6:cd:02:6e:4f:4a:cd:98:3d (ED25519)
80/tcp open  http
| fingerprint-strings:
|   FourOhFourRequest, GetRequest:
|     HTTP/1.1 200 OK
|     Access-Control-Allow-Origin: *
|     X-Content-Type-Options: nosniff
|     X-Frame-Options: SAMEORIGIN
|     Feature-Policy: payment 'self'
|     Accept-Ranges: bytes
|     Cache-Control: public, max-age=0
|     Last-Modified: Sat, 16 Apr 2022 03:44:50 GMT
|     ETag: W/"7c3-180307931ec"
|     Content-Type: text/html; charset=UTF-8
|     Content-Length: 1987
|     Vary: Accept-Encoding
|     Date: Sat, 16 Apr 2022 14:45:30 GMT
|     Connection: close
|     <!--
|     Copyright (c) 2014-2022 Bjoern Kimminich & the OWASP Juice Shop contributors.
|     SPDX-License-Identifier: MIT
|     --><!DOCTYPE html><html lang="en"><head>
|     <meta charset="utf-8">
|     <title>OWASP Juice Shop</title>
|     <meta name="description" content="Probably the most modern and sophisticated insecure web application">
|     <meta name="viewport" content="width=device-width, initial-scale=1">
|     <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico
|   HTTPOptions, RTSPRequest:
|     HTTP/1.1 204 No Content
|     Access-Control-Allow-Origin: *
|     Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE
|     Vary: Access-Control-Request-Headers
|     Content-Length: 0
|     Date: Sat, 16 Apr 2022 14:45:30 GMT
|     Connection: close
|   X11Probe:
|     HTTP/1.1 400 Bad Request
|_    Connection: close
|_http-cors: HEAD GET POST PUT DELETE PATCH
| http-robots.txt: 1 disallowed entry
|_/ftp
|_http-title: OWASP Juice Shop
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port80-TCP:V=7.91%I=7%D=4/16%Time=625AD68D%P=i686-pc-windows-windows%r(
SF:GetRequest,962,"HTTP/1\.1\x20200\x20OK\r\nAccess-Control-Allow-Origin:\
SF:x20\*\r\nX-Content-Type-Options:\x20nosniff\r\nX-Frame-Options:\x20SAME
SF:ORIGIN\r\nFeature-Policy:\x20payment\x20'self'\r\nAccept-Ranges:\x20byt
SF:es\r\nCache-Control:\x20public,\x20max-age=0\r\nLast-Modified:\x20Sat,\
SF:x2016\x20Apr\x202022\x2003:44:50\x20GMT\r\nETag:\x20W/\"7c3-180307931ec
SF:\"\r\nContent-Type:\x20text/html;\x20charset=UTF-8\r\nContent-Length:\x
SF:201987\r\nVary:\x20Accept-Encoding\r\nDate:\x20Sat,\x2016\x20Apr\x20202
SF:2\x2014:45:30\x20GMT\r\nConnection:\x20close\r\n\r\n<!--\n\x20\x20~\x20
SF:Copyright\x20\(c\)\x202014-2022\x20Bjoern\x20Kimminich\x20&\x20the\x20O
SF:WASP\x20Juice\x20Shop\x20contributors\.\n\x20\x20~\x20SPDX-License-Iden
SF:tifier:\x20MIT\n\x20\x20--><!DOCTYPE\x20html><html\x20lang=\"en\"><head
SF:>\n\x20\x20<meta\x20charset=\"utf-8\">\n\x20\x20<title>OWASP\x20Juice\x
SF:20Shop</title>\n\x20\x20<meta\x20name=\"description\"\x20content=\"Prob
SF:ably\x20the\x20most\x20modern\x20and\x20sophisticated\x20insecure\x20we
SF:b\x20application\">\n\x20\x20<meta\x20name=\"viewport\"\x20content=\"wi
SF:dth=device-width,\x20initial-scale=1\">\n\x20\x20<link\x20id=\"favicon\
SF:"\x20rel=\"icon\"\x20type=\"image/x-icon\"\x20href=\"assets/public/favi
SF:con_js\.ico")%r(HTTPOptions,EA,"HTTP/1\.1\x20204\x20No\x20Content\r\nAc
SF:cess-Control-Allow-Origin:\x20\*\r\nAccess-Control-Allow-Methods:\x20GE
SF:T,HEAD,PUT,PATCH,POST,DELETE\r\nVary:\x20Access-Control-Request-Headers
SF:\r\nContent-Length:\x200\r\nDate:\x20Sat,\x2016\x20Apr\x202022\x2014:45
SF::30\x20GMT\r\nConnection:\x20close\r\n\r\n")%r(RTSPRequest,EA,"HTTP/1\.
SF:1\x20204\x20No\x20Content\r\nAccess-Control-Allow-Origin:\x20\*\r\nAcce
SF:ss-Control-Allow-Methods:\x20GET,HEAD,PUT,PATCH,POST,DELETE\r\nVary:\x2
SF:0Access-Control-Request-Headers\r\nContent-Length:\x200\r\nDate:\x20Sat
SF:,\x2016\x20Apr\x202022\x2014:45:30\x20GMT\r\nConnection:\x20close\r\n\r
SF:\n")%r(X11Probe,2F,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nConnection:\x
SF:20close\r\n\r\n")%r(FourOhFourRequest,962,"HTTP/1\.1\x20200\x20OK\r\nAc
SF:cess-Control-Allow-Origin:\x20\*\r\nX-Content-Type-Options:\x20nosniff\
SF:r\nX-Frame-Options:\x20SAMEORIGIN\r\nFeature-Policy:\x20payment\x20'sel
SF:f'\r\nAccept-Ranges:\x20bytes\r\nCache-Control:\x20public,\x20max-age=0
SF:\r\nLast-Modified:\x20Sat,\x2016\x20Apr\x202022\x2003:44:50\x20GMT\r\nE
SF:Tag:\x20W/\"7c3-180307931ec\"\r\nContent-Type:\x20text/html;\x20charset
SF:=UTF-8\r\nContent-Length:\x201987\r\nVary:\x20Accept-Encoding\r\nDate:\
SF:x20Sat,\x2016\x20Apr\x202022\x2014:45:30\x20GMT\r\nConnection:\x20close
SF:\r\n\r\n<!--\n\x20\x20~\x20Copyright\x20\(c\)\x202014-2022\x20Bjoern\x2
SF:0Kimminich\x20&\x20the\x20OWASP\x20Juice\x20Shop\x20contributors\.\n\x2
SF:0\x20~\x20SPDX-License-Identifier:\x20MIT\n\x20\x20--><!DOCTYPE\x20html
SF:><html\x20lang=\"en\"><head>\n\x20\x20<meta\x20charset=\"utf-8\">\n\x20
SF:\x20<title>OWASP\x20Juice\x20Shop</title>\n\x20\x20<meta\x20name=\"desc
SF:ription\"\x20content=\"Probably\x20the\x20most\x20modern\x20and\x20soph
SF:isticated\x20insecure\x20web\x20application\">\n\x20\x20<meta\x20name=\
SF:"viewport\"\x20content=\"width=device-width,\x20initial-scale=1\">\n\x2
SF:0\x20<link\x20id=\"favicon\"\x20rel=\"icon\"\x20type=\"image/x-icon\"\x
SF:20href=\"assets/public/favicon_js\.ico");
MAC Address: 00:0C:29:4F:78:AF (VMware)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 21.93 seconds

在 Robots.txt 中查找隐藏路径

Robots.txt 是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。 具有讽刺意味的是,它还可以告诉我们目标想要保密的路径。

# curl http://192.168.31.202/robots.txt
User-agent: *
Disallow: /ftp #不允许爬取/ftp目录

ASP Juice Shop 学习 二 主动侦察 1

OWASP Juice Shop 学习 二 主动侦察 2

OWASP Juice Shop 学习 二 主动侦察 2

OWASP Juice Shop 学习 三

OWASP Juice Shop 学习 四

OWASP Juice Shop 学习 五

OWASP Juice Shop 学习 六

OWASP Juice Shop 学习 七

OWASP Juice Shop 学习 八

OWASP Juice Shop 学习 九

OWASP Juice Shop 学习 十

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值