- The Guide to Finding and Reporting Web Vulnerabilities
- About the Author
- About the Tech Reviewer
- Foreword
- Introduction
- Who This Book Is For
- What Is In This Book
- Happy Hacking!
- 1 Picking a Bug Bounty Program
- 2 Sustaining Your Success
- 3 How the Internet Works
- 4 Environmental Setup and Traffic Interception
- 5 Web Hacking Reconnaissance
- 6 Cross-Site Scripting
- 7 Open Redirects
- 8 Clickjacking
- 9 Cross-Site Request Forgery
- 10 Insecure Direct Object References
- 11 SQL Injection
- 12 Race Conditions
- 13 Server-Side Request Forgery
- 14 Insecure Deserialization
- 15 XML External Entity
- 16 Template Injection
- 17 Application Logic Errors and Broken Access Control
- 18 Remote Code Execution
- 19 Same-Origin Policy Vulnerabilities
- 20 Single-Sign-On Security Issues
- 21 Information Disclosure
- 22 Conducting Code Reviews
- 23 Hacking Android Apps
- 24 API Hacking
- 25 Automatic Vulnerability Discovery Using Fuzzers
Mechanisms
Information disclosure occurs when an application fails to properly protect sensitive information, giving users access to information they shouldn’t have available to them. This sensitive information can include technical details that aid an attack, like software version numbers, internal IP addresses, sensitive filenames, and filepaths. It could also include source code that allows attackers to conduct a source code review on the application. Still other times, the application leaks private information of users, like a user’s age, bank account numbers, email addresses, and mailing addresses, to unauthorized third parties.
信息泄露发生在应用程序未能正确保护敏感信息时,使用户可以访问他们不应该拥有的信息。这些敏感信息可能包括技术详细信息,如软件版本号、内部 IP 地址、敏感文件名和文件路径。它还可能包括源代码,使攻击者可以对应用程序进行源代码审查。有时,应用程序还会泄漏用户的私人信息,例如用户的年龄、银行帐户号码、电子邮件地址和邮寄地址,传递给未经授权的第三方。
Most systems aim to hide development information, including software version numbers and configuration files, from the outside world, because it allows attackers to gather information about an application and strategize about how to most effectively attack it. For example, learning the exact software versions an application uses will allow attackers to look for publicly disclosed vulnerabilities that affect the application. Configuration files often contain information such as access tokens and internal IP addresses that attackers can use to further compromise the organization.
大多数系统的目标是隐藏开发信息,包括软件版本号和配置文件,以防止攻击者收集关于应用程序的信息并制定如何最有效地攻击它的策略。例如,了解应用程序使用的确切软件版本将使攻击者寻找影响该应用程序的公开披露的漏洞。配置文件通常包含访问令牌和内部 IP 地址等信息,攻击者可以使用它们来进一步破坏组织。
Typically, applications leak version numbers in HTTP response headers, HTTP response bodies, or other server responses. For example, the X-Powered-By
header, which is used by many applications, shows you which framework the application runs:
通常,应用程序会在 HTTP 响应头,HTTP 响应正文或其他服务器响应中泄漏版本号。例如,许多应用程序使用的 X-Powered-By 头会向您显示应用程序运行的框架:
X-Powered-By: PHP/5.2.17
On the other hand, applications leak sensitive configuration files by not applying proper access control to the files, or by accidentally uploading a sensitive file onto a public repository that outside users can access.
另一方面,应用程序通过未对文件应用适当的访问控制或意外地将敏感文件上传到外部用户可以访问的公共存储库中而泄漏敏感配置文件。
Another piece of information that applications should protect is their source code. When the backend code of an application is leaked to the public, the leaked code can help attackers understand the application’s logic, as well as search for logic flaw vulnerabilities, hardcoded credentials, or information about the company’s infrastructure, such as internal IPs. Applications can leak source code by accidentally publishing a private code repository, by sharing code snippets on public GitHub or GitLab repositories, or by uploading it to third-party sites like Pastebin.
应用程序应该保护的另一个信息是它们的源代码。当应用程序的后端代码泄露给公众时,泄露的代码可以帮助攻击者理解应用程序的逻辑,并搜索逻辑漏洞漏洞,硬编码凭据或有关公司基础架构的信息,例如内部 IP。应用程序可能会通过意外发布私有代码存储库,通过在公共 GitHub 或 GitLab 存储库上共享代码片段,或通过将其上传到 Pastebin 等第三方站点来泄漏源代码。
Finally, applications often leak sensitive information by including it in their public code. Developers might accidentally place information such as credentials, internal IP addresses, informative code comments, and users’ private information in public source code such as the HTML and JavaScript files that get served to users.
应用程序经常通过将敏感信息包含在其公共代码中泄漏。开发人员可能会意外地将信息(例如凭据、内部 IP 地址、信息性代码注释和用户的私人信息)放在公共源代码中,例如提供给用户的 HTML 和 JavaScript 文件中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论