WEB安全
00-HTTP协议
01-前端基础【HTML】
02-前端基础【CSS】
03-后端基础【PHP速通】
04-后端基础【PHP面向对象】
05-MySQL基础操作
06-前后端联动【代码练习】
07-SQL注入
08-SQL注入 Labs
09-跨站脚本攻击【XSS】
09-XSS Labs
10-CSRF
11-SSRF
12-XML 外部实体注入【XXE】
13-代码执行漏洞
14-命令执行漏洞
15-文件包含漏洞
16-文件上传漏洞
17-反序列化漏洞
18-业务逻辑漏洞
19-未授权访问漏洞集合
20-跨源资源共享【CORS】
21-SSTI模板注入
22-并发漏洞
23-点击劫持【Clickjacking 】
24-请求走私
25-路径遍历
26-访问控制
27-身份验证漏洞
28-WebSocket
29-Web缓存中毒
30-HTTP 主机头攻击
31-信息泄露漏洞
32-原型污染
33-API概述
34-API分类类型
35-API交换格式
36-API身份验证
37-API常见漏洞
38-crAPI靶场
39-JWT
40-DVGA靶场
41-服务器端参数污染
42-API Labs
43-OAuth Labs
44-GraphQL API Labs
45-JWT Labs
46-小程序抓包
47-云存储
48-对象存储OSS
49-存储桶
50-存储桶漏洞
51-STS访问OSS
-
+
31-信息泄露漏洞
浏览
1
## 概述 信息泄露漏洞(Information Disclosure Vulnerability),其核心在于:系统无意中向未经授权的用户透露了敏感信息,这些信息可能被攻击者利用来进一步攻击系统(如用户隐私、系统配置、源代码等)。 这类漏洞本身可能不直接导致系统被控制,但泄露的信息往往会成为后续攻击的 “跳板”(如利用泄露的密码登录后台、通过配置信息找到其他漏洞),最终引发更严重的安全事件。 ## 漏洞原理 当应用程序、服务器或网络基础设施由于设计缺陷、配置错误或代码错误,将本应保密的数据暴露给外部用户时,就发生了信息泄露。 # 错误消息中的信息泄露 靶机地址:https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-in-error-messages 任务:获取并提交此框架的版本号。 1、访问靶机,发现是一个类似于购物网站。  2、浏览网站,任意点击商品页面,发现productId参数后面的值可以控制不同的商品页面。   3、如果填写的不是数字呢?  4、获取到框架名称和版本号,点击靶机页面上面的【submitSolution】,填入版本号即可。 ``` Apache Struts 2 2.3.31 ``` 5、过关。  # 调试页面上的信息泄露 靶机地址:https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-on-debug-page 任务:获取并提交SECRET_KEY环境变量。 1、同样是一个购物网站,浏览网站并通过burp的http历史请求记录数据。 2、在burp的站点地图中,发现了访问phpinf.info的敏感信息。  3、复制完整的URL,到浏览器中。  4、寻找 SECRET_KEY 的变量。  ```txt 96nueb5pc2zhfza7xqfnzr8eafrtv0lz ``` 5、输入key值,过关。  # 通过备份文件泄露源代码 靶机地址:https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-via-backup-files 任务:识别并提交数据库密码,该密码硬编码在泄露的源代码中。 1、浏览网站,并没有什么发现,访问根下的tobots文件,发现了备份文件。  2、是一个java文件的备份。  3、访问bak文件。  4、找到硬编码,过关。 ```txt gegy3fmq3ptxe7apyl5ymvtq7ulzcv0f ```  # 信息泄露的常见来源 信息泄露漏洞的核心风险是敏感数据被未授权访问、窃取或泄露,其常见来源可从技术配置、应用设计、人为操作、第三方依赖四大维度拆解。 ### 技术配置层面 > 服务器配置错误 目录遍历漏洞:服务器未限制对敏感目录的访问(如 /backup/、/log/、/.git/),攻击者可直接下载备份文件(含数据库密码、源码)、日志文件(含用户 Cookie、请求参数)或 Git 版本控制文件(暴露完整源码)。 敏感端口开放:未关闭不必要的端口(如数据库 3306 端口、远程桌面 3389 端口),且未限制访问 IP,导致攻击者可通过弱口令登录数据库,窃取全量用户数据(如手机号、身份证、支付信息)。 默认配置未修改:使用服务器 / 软件的默认账号密码(如 Tomcat 默认账号 admin/admin、MongoDB 默认无密码访问),攻击者通过扫描工具批量探测后直接获取权限。 > 云服务配置不当 公开存储桶:AWS S3、阿里云 OSS 等对象存储服务设置为 “公开访问”,未添加访问控制策略(ACL),导致存储的用户数据(如用户头像、订单记录、内部文档)可被任何人通过 URL 直接下载。 云服务器安全组过宽:安全组规则设置为 “允许所有 IP 访问所有端口”,而非仅开放业务必需的 80/443 端口,为攻击者扫描漏洞、窃取信息提供入口。 ### 应用设计层面 这类来源因应用程序(Web/APP)的开发缺陷导致,敏感数据在功能逻辑或代码实现中被 “无意暴露”,攻击者可通过正常访问或简单构造请求获取。 > 错误处理与调试信息泄露 详细错误堆栈:应用未屏蔽后端错误信息(如 PHP 的 error_reporting = E_ALL、Java 的 StackTrace),当发生异常时(如数据库查询失败),页面直接返回数据库连接地址、账号密码、代码路径等核心信息。 调试模式未关闭:开发环境的调试模式(如 Django 的 DEBUG=True、Spring Boot 的 debug=true)在线上环境未关闭,攻击者可通过调试页面查看路由配置、数据库结构甚至执行简单代码。 > 前端代码硬编码敏感数据 客户端源码暴露:前端 JS 文件、APP 反编译后的代码中,硬编码 API 密钥、OAuth 令牌、数据库连接字符串等(如 “const apiKey = "abc123xyz";”),任何人通过 “查看页面源码” 或反编译工具即可获取。 隐藏字段 / 注释泄露:HTML 中通过 hidden 字段存储敏感信息(如用户 ID、订单金额),或代码注释中遗留测试账号(如 “<!-- 测试账号:test/123456 -->”),均可能被攻击者发现并利用。 > API 接口设计缺陷 接口未授权 / 权限过宽:API 未验证用户身份(如未校验 Token),或授权逻辑漏洞(如通过修改 URL 中的 userID=1 为 userID=2 即可查看其他用户的个人信息),导致批量泄露用户数据。 接口返回冗余数据:API 为图开发便捷,返回超出业务需求的敏感数据(如获取用户昵称时,同时返回手机号、身份证号、银行卡后 4 位),即使前端不显示,攻击者通过抓包(如 Fiddler、Charles)仍可获取。 ### 人为操作层面 这类来源因人员安全意识不足或操作失误引发,属于 “人为可控但易疏忽” 的场景,占信息泄露事件的 30% 以上(据 Verizon 数据泄露报告)。 > 内部人员失误 敏感数据误公开:员工将内部文档(如用户数据 Excel、服务器配置手册)上传至公开平台(如 GitHub、百度网盘、知乎),或通过公共邮箱(如 QQ 邮箱)发送给外部人员。 设备丢失 / 被盗:员工的笔记本电脑、U 盘、手机等设备丢失,且未加密(如未开启 BitLocker、苹果 FileVault),设备中的客户数据、内部资料被他人获取。 > 社会工程学攻击 钓鱼攻击:攻击者伪装成 “公司 IT 部门”“合作商” 发送钓鱼邮件(如 “需更新账号密码,请点击链接”),诱导员工输入账号密码、验证码,进而登录内部系统窃取信息。 ### 第三方依赖与供应链 > 第三方库与框架 来源:使用的第三方JavaScript库、NPM包、PHP Composer包等可能包含已知漏洞,其版本号可能被探测。 泄露内容:通过识别库的版本,攻击者可以寻找对应的公开漏洞进行利用。 > 第三方服务集成 来源:集成第三方统计、客服、支付、广告等SDK。 泄露内容:这些SDK可能会向其服务器报告数据,如果其本身存在安全问题,可能导致数据泄露。 # 防护措施 根本原则:实施最小信息原则——只向用户(包括潜在的攻击者)暴露其完成操作所必需的最少信息,其他一切细节都应当被隐藏。定期进行安全审计和渗透测试是发现这些泄露点的最佳实践。
毛林
2026年11月15日 18:27
转发文档
收藏文档
上一篇
下一篇
评论(0)
登录
后可发表评论
还没有评论,来抢沙发~
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
还没有评论,来抢沙发~