80,443 - Pentesting Web Methodology

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)arrow-up-righthashtag

支持HackTricks的其他方式:

如果您对黑客职业感兴趣并想要攻破不可攻破的系统 - 我们正在招聘!(需要流利的波兰语书面和口语表达能力)。

基本信息

Web服务是最常见和广泛的服务,存在许多不同类型的漏洞

默认端口: 80(HTTP),443(HTTPS)

Web API指南

Web API Pentestingchevron-right

方法概述

在这个方法论中,我们假设您将攻击一个域名(或子域名),仅限于此。因此,您应该将此方法应用于发现的每个域、子域或IP,其中包含未确定的Web服务器。

服务器版本(存在漏洞吗?)

识别

检查运行的服务器版本是否存在已知漏洞响应的HTTP标头和Cookie可能非常有用,可用于识别正在使用的技术和/或版本Nmap扫描可以识别服务器版本,但也可以使用工具whatwebarrow-up-rightwebtecharrow-up-righthttps://builtwith.com/arrow-up-right

搜索Web应用程序版本的漏洞

检查是否有任何WAF

Web技巧

一些用于查找不同知名技术中的漏洞的技巧:

请注意,同一域名可能在不同端口、文件夹和子域中使用不同的技术。 如果Web应用程序使用任何之前列出的知名技术/平台或其他任何技术,请不要忘记在互联网上搜索新的技巧(并告诉我!)。

源代码审查

如果应用程序的源代码在github上可用,除了自行对应用程序进行白盒测试外,还有一些信息对当前的黑盒测试可能有用:

  • 是否有通过Web访问的变更日志、自述文件或版本信息文件?

  • 凭证是如何保存的?是否有(可访问的)带有凭证(用户名或密码)的文件?

  • 密码是明文、加密还是使用了哪种哈希算法?

  • 是否使用了任何用于加密的主密钥?使用了哪种算法?

  • 您能否利用某些漏洞访问这些文件?

  • 在github的(已解决和未解决的)问题中是否有任何有趣的信息?或在提交历史中(也许在旧提交中引入了某些密码)?

Source code Review / SAST Toolschevron-right

自动扫描器

通用用途的自动扫描器

CMS扫描器

如果使用了CMS,不要忘记运行扫描器,也许会发现一些有趣的东西:

Clusterdarrow-up-right JBoss,ColdFusion,WebLogic, Tomcat,Railo,Axis2,Glassfish CMSScanarrow-up-right:为WordPressDrupalJoomlavBulletin网站查找安全问题(GUI) VulnXarrow-up-right Joomla Wordpress Drupal,PrestaShop,Opencart CMSMap(W)ordpress (J)oomla (D)rupal (M)oodle droopscanarrow-up-right Drupal Joomla Moodle,Silverstripe, Wordpress

到这一步,您应该已经获得了客户使用的Web服务器的一些信息(如果提供了任何数据),以及在测试过程中要牢记的一些技巧。如果幸运的话,您甚至可能已经找到了一个CMS并运行了一些扫描器。

逐步Web应用程序发现

从这一点开始,我们将开始与Web应用程序进行交互。

初始检查

具有有趣信息的默认页面:

  • /robots.txt

  • /sitemap.xml

  • /crossdomain.xml

  • /clientaccesspolicy.xml

  • /.well-known/

  • 还要检查主页面和次要页面中的注释。

强制错误

当向Web服务器发送奇怪的数据时,Web服务器可能会表现出意外行为。这可能会打开漏洞泄露敏感信息

  • 访问像/whatever_fake.php (.aspx,.html,等)这样的虚假页面

  • cookie值参数值中添加"[]", "]]"和"[["以创建错误

  • 通过在URL末尾输入**/~randomthing/%s**来生成错误

  • 尝试使用不同的HTTP谓词,如PATCH,DEBUG或错误的FAKE

检查是否可以上传文件(PUT谓词,WebDav

如果发现WebDav启用但您没有足够的权限在根文件夹中上传文件,请尝试:

  • 暴力破解凭据

  • 通过WebDav上传文件到Web页面内找到的其他文件夹。您可能有权限在其他文件夹中上传文件。

SSL/TLS漏洞

  • 如果应用程序在任何部分没有强制使用HTTPS,那么它容易受到中间人攻击

  • 如果应用程序使用HTTP发送敏感数据(密码)。那么这是一个高漏洞。

使用testssl.sharrow-up-right来检查漏洞(在Bug赏金计划中,这类漏洞可能不会被接受),并使用a2svarrow-up-right重新检查漏洞:

SSL/TLS漏洞信息:

爬虫

在网络中启动某种爬虫。爬虫的目标是从被测试应用程序中找到尽可能多的路径。因此,应使用网络爬行和外部来源来找到尽可能多的有效路径。

暴力破解目录和文件

从根目录开始暴力破解,确保暴力破解所有使用此方法找到的目录以及爬虫发现的所有目录(您可以递归进行此暴力破解,并在使用的字典的开头添加找到的目录的名称)。 工具:

推荐字典:

请注意,每当在暴力破解或爬虫过程中发现新目录时,应进行暴力破解。

每个找到的文件要检查的内容

特殊发现

执行爬行暴力破解时,您可能会发现一些有趣的 事物,您需要注意

有趣的文件

403 Forbidden/基本身份验证/401未经授权(绕过)

403 & 401 Bypasseschevron-right

502 代理错误

如果任何页面以该代码响应,那么可能是配置不良的代理如果您发送类似以下的HTTP请求:GET https://google.com HTTP/1.1(带有主机头和其他常见头),代理将尝试访问google.com,您将发现一个SSRF

NTLM身份验证 - 信息泄露

如果正在请求身份验证的运行服务器是Windows,或者您找到一个要求您凭证的登录(并要求 ),您可以引发信息泄露发送 头部“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”,由于NTLM身份验证的工作方式,服务器将在“WWW-Authenticate”头部中回复内部信息(IIS版本、Windows版本...)。 您可以使用nmap插件http-ntlm-info.nse”来自动化这个过程。

HTTP重定向(CTF)

可以在重定向放置内容。这些内容不会显示给用户(因为浏览器将执行重定向),但其中可能隐藏着一些内容。

Web漏洞检查

现在已经执行了对Web应用程序的全面枚举,是时候检查可能存在的许多漏洞了。您可以在这里找到检查清单:

Web Vulnerabilities Methodologychevron-right

在以下链接中查找有关Web漏洞的更多信息:

监控页面更改

您可以使用工具如https://github.com/dgtlmoon/changedetection.ioarrow-up-right来监视页面的修改,以防止可能插入漏洞。

如果您对黑客职业感兴趣并想要攻破不可攻破的系统 - 我们正在招聘!(需要流利的波兰语书面和口语表达能力)。

HackTricks自动命令

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)arrow-up-righthashtag

其他支持HackTricks的方式:

最后更新于