- 安全测试教程
- 安全测试 - 主页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试-恶意软件
- HTTP 协议基础知识
- HTTPS 协议基础知识
- 编码与解码
- 安全测试-密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客网络应用程序
- 安全测试-注入
- 测试损坏的身份验证
- 测试跨站脚本
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据暴露
- 缺少功能级别访问控制
- 跨站请求伪造
- 有漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax 安全
- 测试安全性 - Web 服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用的资源
- 安全测试 - 快速指南
- 安全测试 - 有用的资源
- 安全测试 - 讨论
跨站请求伪造(CSRF)
CSRF 攻击迫使经过身份验证的用户(受害者)向易受攻击的 Web 应用程序发送伪造的 HTTP 请求,包括受害者的会话 cookie,这使得攻击者可以强制受害者的浏览器生成请求,从而使易受攻击的应用程序将其视为来自攻击者的合法请求。受害者。
让我们借助简单的图表了解该缺陷的威胁代理、攻击向量、安全弱点、技术影响和业务影响。
例子
这是 CSRF 的经典示例 -
步骤 1 - 假设易受攻击的应用程序以未加密的纯文本形式发送状态更改请求。
http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243
步骤 2 - 现在,黑客构建了一个请求,通过将请求嵌入到存储在攻击者控制下的各个站点上的图像中,将资金从受害者的帐户转移到攻击者的帐户 -
<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#" width = "0" height = "0" />
动手
步骤 1 - 让我们通过将 Java 脚本嵌入到图像中来执行 CSRF 伪造。下面列出了问题的快照。
步骤 2 - 现在我们需要将传输模拟为 1x1 图像,并让受害者点击相同的图像。
步骤 3 - 提交消息后,消息将显示如下突出显示。
步骤 4 - 现在,如果受害者单击以下 URL,则会执行传输,可以发现使用 burp suite 拦截用户操作。我们可以通过在“获取消息”中发现传输来查看传输,如下所示 -
步骤 5 - 现在单击刷新后,将显示课程完成标记。
预防机制
可以通过在隐藏字段中创建唯一令牌来避免 CSRF,该令牌将在 HTTP 请求正文中发送,而不是在 URL 中发送,后者更容易暴露。
强制用户重新进行身份验证或证明自己是用户,以保护 CSRF。例如,验证码。