深入理解CSRF与SSRF攻击原理及防御措施

news2024/9/9 0:28:43

一、CSRF攻击原理及实例

  1. CSRF简介

CSRF(Cross-Site Request Forgery),即跨站请求伪造,是一种常见的网络攻击手段。攻击者利用已登录用户的cookie,在用户不知情的情况下,伪造请求执行特定操作。

  1. CSRF攻击实例
(1)GET类型攻击

首先,我们通过抓包获取到以下请求:

GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=abc&phonenum=18666666666&add=%17&email=l11%40qq.com&submit=submit HTTP/1.1
Host: 192.168.10.111

然后,构造恶意链接:

http://192.168.10.111/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=cba&phonenum=66666666&add=%17&email=6666@qq.com&submit=submit
(2)POST类型攻击

首先,抓包获取表单数据,然后构造以下前端代码:

<form action="http://192.168.10.111/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="post">
    <input type="text" name="sex" value="girl">
    <input type="text" name="phonenum" value="1396969696">
    <input type="text" name="add" value="+76">
    <input type="text" name="email" value="6666@pikachu.com">
    <input type="submit" name="submit" value="submit" id="postsubmit">
</form>
<script>
    document.getElementById("postsubmit").click();
</script>

二、SSRF攻击原理及实例

  1. SSRF简介

SSRF(Server-Side Request Forgery),即服务器端请求伪造,攻击者通过构造特定的请求,让服务器端去访问其他网站资源。

  1. SSRF攻击实例

使用curl工具进行攻击,例如:

curl dict://192.168.10.143:21

这个请求可以探测服务器开启的服务和版本。

三、防御措施

  1. CSRF防御

为防止CSRF攻击,可以在表单中增加一个token字段,用于身份验证。

  1. SSRF防御
(1)白名单:只允许访问固定资源。
$_GET['url'] == 'http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php'
(2)黑名单:禁止访问部分资源。
$_GET['url'] != '.....'
(3)限制curl函数可访问的协议。
curl_setopt($CH, CURLOPT_PROTOCOLS, CURLPROTO_HTTP|CURLPROTO_HTTPS);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++选择题带答案

1&#xff0e;下列关于定义一个指向double型变量的指针&#xff0c;正确的是&#xff08; B &#xff09;。 A&#xff0e;int a(5)&#xff1b;double *pda&#xff1b; B&#xff0e;double d(2.5)&#xff0c;*pd&d&#xff1b; C&#xff0e;dou…

uniapp时间戳转时间

时间戳转时间 utils页面 function timestampToTime(time) { const date new Date(time); const year date.getFullYear(); const month String(date.getMonth() 1).padStart(2, 0); // 月份从0开始&#xff0c;所以要加1&#xff0c;并补齐0 const day String(date…

系统架构师考点--系统架构设计(下)

大家好。今天总结一下系统架构设计的最后一部分知识点。 一、软件系统的质量属性 软件系统的质量属性 软件系统的质量属性可分为开发期质量属性和运行期质量属性2个部分。 1、开发期质量属性主要指在软件开发阶段所关注的质量属性&#xff0c;主要包含6个方面&#xff1a; …

联想电脑怎么重装系统_联想电脑U盘重装win10详细图文教程

联想电脑怎么重装系统&#xff1f;在当今科技发展迅猛的时代&#xff0c;联想电脑已经成为了人们生活中不可或缺的一部分。然而&#xff0c;随着时间的推移&#xff0c;我们可能会遇到一些问题&#xff0c;例如系统崩溃或者需要更换操作系统。这时&#xff0c;使用U盘来重新安装…

57页PPT智慧水利数字孪生综合解决方案

实现“全局一盘棋”的智慧水利综合管理&#xff0c;关键在于整合水利大数据、数字孪生与人工智能技术&#xff0c;通过“一图、一库、一平台”的构建&#xff0c;为水利工作提供全面、科学、智能的管理和决策支持。以下是对这一目标的详细解读和实现路径&#xff1a; 知识星球…

C/C++进阶 (8)哈希表(STL)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 本文着重于模拟实现哈希表&#xff0c;并非是哈希表的使用。 实现的哈希表的底层用的是线性探测法&#xff0c;并非是哈希桶。 目录 一、标准库中的哈希表 1、unordered_map 2、unordered_set 二、模…

【计算机毕设论文】基于SpringBoot线上学习平台的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 感兴趣的可以先收藏起来&#xff0c;同学门有不懂的毕设选题&#xff0c;项目以及论文编写等相…

「数组」实现动态数组的功能(C++)

概述 动态数组&#xff0c;顾名思议即可变长度的数组。数组这种数据结构的实现是在栈空间或堆空间申请一段连续的可操作区域。 实现可变长度的动态数组结构&#xff0c;应该有以下操作&#xff1a;申请一段足够长的空间&#xff0c;如果数据的存入导致空间已满&#xff0c;则…

CentOS7安装最新版vim;vim自动补齐配置

想练习一会vim&#xff0c;结果发现敲代码没有空号自动补齐和缩进很难受&#xff0c;所以想配置一下。 配置vim&#xff1a; 可以通过 vim ~/.vimrc 来给 vim 加启动的设定&#xff08;比如set nu&#xff0c;这样就会在每次启动的时候都加上行号。当然过程中可以在底行模式输…

基于SpringBoot+Vue的学生考勤管理系统(带1w+文档)

基于SpringBootVue的学生考勤管理系统(带1w文档) 系统为了数据库结构的灵活性选择MySQL来设计&#xff0c;而java技术&#xff0c;B/S架构则保证了较高的平台适应性。本文主要介绍了系统开发背景&#xff0c;需要完成的功能与开发过程&#xff0c;说明系统设计重点与设计思想。…

如何在linux系统中用conda安装R环境及R包

一、miniconda3的安装不再赘述 二、安装R环境 1. 提前准备好conda的R单独环境 conda env list #查看已有环境 查看R的最新版本&#xff1a;r-project ##创建环境和激活环境 conda create -n R4.4.1 conda activate R4.4.1 备注&#xff1a;激活环境Linux&#xff0c;OS X…

企业如何保证公司内网安全

1. 加强网络安全防护 部署防火墙和入侵检测系统&#xff1a;作为内网安全的第一道防线&#xff0c;防火墙和入侵检测系统能够有效阻止外部攻击和恶意软件的入侵。 数据加密&#xff1a;采用先进的加密技术保护敏感数据&#xff0c;确保数据在传输和存储过程中的安全性。 访问…

【Android面试八股文】荣耀面试算法题: 输出一个给定的字符串的最长回文子序列及其长度!

文章目录 一、真题链接二、如何解决2.1算法思路2.2 算法步骤2.3 Java算法实现 一、真题链接 还好我以前刷过这道题&#xff0c; 其实题目就是LeetCode的 516.最长回文子序列&#xff0c; 地址&#xff1a;https://leetcode.cn/problems/longest-palindromic-subsequence/des…

哈希表专题

题解之前&#xff1a; 1.有关unordered_map的count功能&#xff1a;查询key&#xff01; Leetcode 1.两数之和 解题思路&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> res;// key:具体的数值(便…

AI需求海量涌现,Scaleway如何用Spectrum-X 网络从容应对?

“没有好网络&#xff0c;别玩AIGC。” 如今&#xff0c;随着AI需求的大量涌现&#xff0c;越来越多用户意识到网络在AI集群中的重要性。一个超大规模、超高带宽、超强可靠的网络&#xff0c;可以为AI训练提供强有力支撑&#xff0c;从而节约训练成本、缩短训练时间&#xff0…

VBA快速对比数据行

实例需求&#xff1a;对于存在多行数据&#xff08;示例中为双行&#xff09;的项目&#xff0c;对比同一个项目的每列数据&#xff0c;高亮显示数据不同的单元格。 示例代码如下。 Function GetDiff(ByRef rng1 As Range, ByRef rng2 As Range) As RangeDim i As LongFor i …

dpdk发送udp报文

dpdk接收到udp报文后&#xff0c;自己构造一个udp报文&#xff0c;将收到的报文中的源mac&#xff0c;目的mac&#xff0c;源ip&#xff0c;目的ip&#xff0c;源端口和目的端口交换下顺序填充到新的udp报文中&#xff0c;报文中的负载数据和收到的udp保持一致。 注&#xff1…

CATIA V5R21安装包下载及图文安装教程

大家好&#xff0c;今天给大家分享下catia安装教程 注意安装前请退出杀毒软件&#xff0c;防止误报影响安装进程 下载链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;ypc6 01 在电脑D盘新建文件夹命名为CATIA,将下载的软件压缩包放置在该文件夹。 鼠标右击【C…

进行良好的文献综述能否提高学术研究的可信度

VersaBot一键生成文献综述 进行良好的文献综述 对于从多个方面提高学术研究的可信度至关重要&#xff1b; 1. 展示专业知识&#xff1a; 全面的回顾表明您对您所在领域的现有知识和相关理论有深入的了解。这将使您成为权威&#xff0c;并将您的研究置于更广泛的背景下。 2.…

初步入门C ++之类的概念

文章目录 0 Hello World!1 编译过程2 类2.1 类的概念2.2 构造函数与析构函数 0 Hello World! #include <iostream> //相当于#include <stdio.h>int main(int argc, char argv[]) {char c;std::cout << "Hello World!\n" <<…