- 安全测试教程
- 安全测试 - 首页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试 - 恶意软件
- HTTP协议基础
- HTTPS协议基础
- 编码和解码
- 安全测试 - 密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客攻击Web应用程序
- 安全测试 - 注入
- 测试身份验证漏洞
- 测试跨站脚本攻击
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据泄露
- 缺少函数级访问控制
- 跨站请求伪造
- 存在漏洞的组件
- 未验证的重定向和转发
- 安全测试 - Ajax安全
- 安全测试 - Web服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用资源
- 安全测试 - 快速指南
- 安全测试 - 有用资源
- 安全测试 - 讨论
安全测试 - 缓冲区溢出
当程序试图将超过其设计容量的数据存储到临时数据存储区(缓冲区)中时,就会发生缓冲区溢出。由于缓冲区被创建为容纳有限数量的数据,因此额外信息可能会溢出到相邻的缓冲区,从而破坏其中存储的有效数据。
示例
这是一个经典的缓冲区溢出示例。它演示了一个简单的缓冲区溢出,该溢出是由第一种情况引起的,该情况依赖于外部数据来控制其行为。无法限制用户输入的数据量,程序的行为取决于用户输入的字符数量。
... char bufr[BUFSIZE]; gets(bufr); ...
动手操作
步骤1 - 我们需要使用用户名和房间号登录才能访问互联网。以下是场景快照。
步骤2 - 我们还将在Burp Suite中启用“显示隐藏表单字段”,如下所示:
步骤3 - 现在我们在用户名和房间号字段中输入。我们还尝试在房间号字段中注入一个很大的数字。
步骤4 - 隐藏字段显示如下。我们点击接受条款。
步骤5 - 攻击成功,由于缓冲区溢出,它开始读取相邻的内存位置并显示给用户,如下所示:
步骤6 - 现在让我们使用显示的数据登录。登录后,显示以下消息:
预防机制
- 代码审查
- 开发者培训
- 编译器工具
- 开发安全函数
- 定期扫描
广告