Web 应用程序渗透测试指南第一部分

安全资讯 小布 711浏览 0评论

在本文中,我们将测试 HP 开发的用于扫描仪评估的 Web 应用程序。我们将演示从需求收集到报告的基本 Web 应用程序渗透测试的完整过程。这些是我们将要遵循的步骤:

  • 需求收集
  • 信息收集
  • 网址发现
  • 自动扫描仪配置
  • 手动测试
  • 报告

需求集合:这是我们与应用程序所有者沟通的第一步,并在我们获得 URL 后向他们询问应用程序 URL,然后确认它是实时生产环境还是测试/暂存环境。如果所有者提供生产环境,则首先通知他们备份数据库,并通知他们在渗透测试期间应用程序可能会因扫描而关闭。如果提供了测试/暂存环境,那么可以继续进行,但仍然提醒停机时间会很好。与应用程序开发团队讨论以了解应用程序功能,并询问他们有多少类型的用户角色?如果有,则要求他们提供所有类型的用户角色的测试凭据,以测试权限提升类型的漏洞。所以,http://zero.webappsecurity.com有一个凭证。

信息收集:一旦我们从第一步(需求收集)收到相关详细信息,我们就可以开始对应用程序进行渗透测试。首先,我们必须确定应用程序技术,例如开发应用程序的语言,即 PHP、Java、Asp.NET 等,然后检查应用程序是否是在任何框架上开发的,例如 CakePHP、CodeIgniter、Yii Framework, Django 等 现在如何识别这些技术?有一些简单的方法可以识别应用程序技术,例如语言和框架识别,我们可以从https://builtwith.com/查看它,只需复制粘贴应用程序 URL,它就会显示详细信息。

如上所示,我们扫描了一个 Web 应用程序,它显示语言是 PHP,框架是 CodeIgniter。因此,这种技术并不总是像在我们的情况下一样有效,我们无法找到http://zero.webappsecurity.com的应用程序技术。现在我们将探索语言识别的其他方式:

  • 检查文件扩展名,例如 .pup、.aspx、.jsp
  • 如果应用程序文件没有任何扩展名怎么办?查找显示所有内容的会话和 cookie 值。例如,会话是 PHPSESSID,表示它是基于 PHP 的站点,JSESSIONID 表示基于 Java 的站点,ASP.netsessid 表示基于 ASP.Net 的站点。如果 sessionid 对您来说是新的,并且您从未见过如下图所示的那种会话值:

例如 ci_session 是我们第一次看到,我们无法识别应用程序技术,所以我们只是在谷歌上搜索相同的会话 id 名称,让我们看看它显示了什么:

从上面可以看出,会话指的是 CodeIgniter 框架。我们将看到目标的示例。

在 cookie 会话中可以看到 JSESSIONID,这意味着它是基于 Java 的应用程序 URL,尽管文件扩展名显示的是 HTML。

URL 发现:这是渗透测试中最重要的部分,我们将通过触发应用程序的每个功能来浏览整个应用程序并捕获 Burp Suite 中的所有请求。

如上图所示,该应用程序具有帐户摘要、帐户活动、转移资金。Pay Bills、My Money Map 和 Online Statements 模块现在转到每个模块并单击每个链接(如果有任何表单),然后在表单字段中填写一些数据并提交。现在转到 Burp Suite > 站点地图部分,我们将能够看到所有浏览过的 URL 都在站点地图中。

之后我们将在站点地图上运行一个蜘蛛来自动抓取应用程序,如果我们在浏览过程中遗漏了任何功能,那么它会被 Burp Suite 抓取。

一旦我们完成了应用程序功能的浏览和抓取,我们将进行 Google 搜索。如果该应用程序在互联网上可用,则需要这件事,否则请跳过这一点。我们将使用 Google dorks 来查找 Google 应用程序的缓存 URL,只需输入以下站点即可:zero.webappsecurity.com

正如上面从谷歌搜索中可以看到的,我们可以看到我们所有的目标应用程序文件和目录,其中一些本质上是敏感的,不应在互联网上公开,例如管理目录。

我们刚刚访问了 admin 目录,它显示了所有用户名和密码。

正如我们可以通过简单的谷歌搜索了解问题的严重性,恶意用户如何在不运行任何工具的情况下破坏应用程序。

接下来将使用强力技术来查找应用程序的内部文件,为此我们将使用 DirBuster 工具。

从上面可以看出,我们已经暴力破解了我们的目标 URL,DirBuster 找到了一些我们在谷歌搜索和手动浏览中没有找到的目录。现在我们将检查所有具有 200 响应的目录,例如我们已经从 Google 搜索中找到的 admin,因此我们将查看其他目录。我们打开 /docs 路径,发现里面有 Apache Tomcat 文档,这是 Tomcat 安装时自带的默认目录。因此,我们可以将此报告为信息级漏洞,攻击者可以从中收集有关运行 Web 服务器及其版本的信息。

接下来,我们访问包含错误日志的 /errors 目录。

日志包含所有失败的登录尝试,可能是某些恶意用户试图暴力破解登录页面,或者某些有效用户忘记了他/她的帐户密码,因此我们可以将此问题报告为信息漏洞,攻击者可以通过该漏洞获取用户名。

我们移动到另一个目录 /web-services。

此目录包含不应公开和访问的 SOAP 服务 URL。攻击者可以访问 WSDL 文件并可以调用对应用程序的请求。

 

在文章的下一部分,我们将讨论扫描、手动测试和报告部分。

转载请注明:布尔云安的博客 » Web 应用程序渗透测试指南第一部分

头像
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址