首先,我们应该问,在 Web 应用程序安全的背景下,什么是内容?内容可以是很多东西,文件、视频、图片、备份、网站功能。当我们谈论内容发现时,我们并不是在谈论我们可以在网站上看到的显而易见的东西;这些东西并没有立即呈现给我们,而且并不总是供公众访问。
例如,此内容可以是供员工使用的页面或门户、网站的旧版本、备份文件、配置文件、管理面板等。我们将介绍在网站上发现内容的三种主要方式
*手动(Manually)
*自动(Automated)
*OSINT(开源情报)
探索网站
作为渗透测试人员,您在审查网站或 Web 应用程序时的职责是发现可能存在漏洞的功能并尝试利用它们来评估它们是否存在。这些功能通常是网站的一部分,需要与用户进行一些交互。
查找网站的交互部分就像发现登录表单以手动查看网站的 JavaScript 一样简单。一个很好的起点就是用您的浏览器浏览网站并记下各个页面/区域/功能,并为每个页面/区域/功能做一个总结。
查看页面源代码
页面源代码是每次我们发出请求时从 Web 服务器返回给我们的浏览器/客户端的人类可读代码。
返回的代码由 HTML(超文本标记语言)、CSS(层叠样式表)和 JavaScript 组成,它告诉我们的浏览器要显示什么内容,如何显示它并添加与 JavaScript 的交互元素。
出于我们的目的,查看页面源可以帮助我们发现有关 Web 应用程序的更多信息。
只需要右键->查看源代码(View source)
,或者快捷键(Ctrl + U)
即可查看页面源代码、
查看页面源代码往往是我们的第一步,这十分的重要,可能存在<!-- 内容-->
的内容,这是HTML
代码的注释,有些时候,开发人员为了做标记,会将一些用户测试信息添加到页面注释:例如网站默认密码。
在源代码中需要注意的有:
- 注释内容,可能存在敏感信息
- a标签、img标签、script标签可以发现隐藏的文件或路径,常见于
src、href、action
属性 - 引用JavaScript、CSS代码的地址
- 可能存在框架版本信息