IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> WEB安全 | CSRF的原理及防御 -> 正文阅读

[PHP知识库]WEB安全 | CSRF的原理及防御

作者: 1e0n
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

0x00 前言

之所以写CSRF是因为最近都是各种RCE,偶然看到CSRF,觉得大脑一片空白,于是赶紧恶补了一下,写下来也算是加深一下印象。话不多说,进入正题。WEB安全 | CSRF的原理及防御

1.CSRF的原理

2.CSRF简单实验

3.CSRF的防御

0x01 CSRF漏洞的原理

1.1 什么是CSRF?

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

通俗的来就是攻击者盗用正常用户的身份,以正常用户的名义执行攻击者想发送的恶意请求。

1.2 必要条件

CSRF也并不是不需要特定条件的,它的基本需要至要少满足以下两点。

1.正常用户登录受信任的网站,并生成Cookie。

2.在不登出受信任网站(或Cookie仍有效)时登录恶意网站。

1.3 CSRF的原理分析

WEB应用通过会话ID来认定访问请求是否来自正常用户,正是这样的认证机制存在漏洞。假设攻击者冒充或利用正常用户对WEB应用发起请求,WEB应用就没办法判断是否是正常用户。CSRF利用这个特性,通过各种手段,诱骗正常用户点击伪造的恶意请求。正常用户点击后携带自己的Cookie和会话ID在不知不觉中执行了攻击者的恶意请求。可能说着有点绕,画张图更加形象。
在这里插入图片描述
简单来说就是五个步骤:

1.正常用户用自己的合法身份登录WEB应用。

2.WEB应用认证成功后,向正常用户返回一个会话ID。

3.正常用户在会话ID和Cookie有效期内,访问了攻击者构造的恶意网站。

4.攻击者在WEB网页中嵌套恶意脚本(脚本的目的是发起恶意请求,如转账、发信等)。

5.恶意脚本在正常用户的浏览器上被执行,继而发送恶意请求到WEB应用。由于是正常用户发起的请求,所以请求会被成功发送并执行操作。

0x02 CSRF的简单实验

借用了某靶场环境,攻击手段切勿用于未授权真实环境。

下图为靶场环境,提示按钮里是多个账户密码。
在这里插入图片描述
随便登录一个,这里是模拟正常用户登录,也就是上面五个步骤的第一步和第二步。
在这里插入图片描述
这里可以修改个人信息,点进去尝试修改住址信息。这里需要抓个包查看发送的请求具体参数。
在这里插入图片描述
如图中burp抓到的get请求。攻击者提前构造好恶意脚本(执行恶意请求),比如把地址改成其他信息。再诱骗正常用户点击恶意脚本,恶意脚本就会在正常用户的浏览器上发送恶意请求成功后如下图。
在这里插入图片描述
PS:恶意请求的构造必须要知道完整的请求参数!

0x03 CSRF的防御

CSRF的防御主要有以下几点。

1.验证Referer字段

简单来说就是验证该网页是从哪个页面链接来的。

2.添加Token验证

这种方式是当前最常见的一种CSRF防御方式,在发送的请求字段里添加一个随机Token值,如果发送的请求里没有或值不正确,请求则无效。

3.二次验证

在转账等关键操作之前提供当前用户的密码或者验证码。这个已经很常见了,比如支付密码,手机验证码等。

0x04 了解更多安全知识

欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 13:39:24  更:2022-01-01 13:41:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:23:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计