网络安全筑基篇——CSRF、SSRF

前言

本篇文章相对于来说比较水,大家看不懂的话,多去百度,去了解相关的知识

大家一定要多去理解这个原理,理解的同时去打打靶场,就能很快上手啦

什么是CSRF?

CSRF(即跨站请求伪造)是指利用受害者尚未失效的身份认证信息、(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害人的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(转账,改密码等)。

CSRF的原理

CSRF原理:
CSRF 跨站点请求伪造。攻击者盗用了受害者的身份,以受害者的名义发送恶意请求,对
服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作。

CSRF漏洞的危害:

1 、对网站管理员进行攻击
2 、修改受害网站上的用户账户和数据
3 、账户劫持
4 、传播 CSRF 蠕虫进行大规模攻击
5 、利用 csrf 进行拖库
6 、利用其他漏洞进行组合拳攻击
7 、针对路由器的 csrf 攻击

挖掘CSRF漏洞的思路

CSRF漏洞的常见的触发点

  1. 论坛交流
  2. 用户中心
  3. 反馈留言
  4. 交易管理
  5. 后台管理

根据请求方式的不同,可以分为

  • 资源包含(GET)
  • 基于表单(POST)
  • XMLHttpRequest

挖掘技巧

  •         最简单的方法就是抓取一个正常请求的数据包,如果没有Referer字段和token,那么极有可能存在CSRF漏洞。
  •         如果有Referer字段,但是去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

CSRF漏洞如何防护:

尽量使用 POST ,限制 GET
浏览器 Cookie 策略;
加验证码;

什么是SSRF?

SSRF (Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。一般情况下,SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统)。

SSRF的原理

SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。例如,黑客操作服务端从指定URL地址获取网页文本内容,加载指定地址的图片等,利用的是服务端的请求伪造。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

SSRF的攻击方式

当攻击者想要访问服务器B上的服务,但是由于存在防火墙或者服务器B是属于内网主机等原因导致攻击者无法直接访问。如果服务器A存在SSRF漏洞,这时攻击者可以借助服务器A来发起SSRF攻击,通过服务器A向主机B发起请求,达到攻击内网的目的。

SSRF的危害有哪些?

  1. 访问内部系统:SSRF漏洞可以被用于访问内部网络中的其他服务和系统,包括数据库服务器、文件系统、管理控制台等。攻击者可以通过绕过防火墙和其他网络安全措施来直接访问这些系统,并以其身份执行恶意操作。

  2. 内网端口扫描:攻击者可以使用SSRF漏洞来扫描目标服务器所在内网中的其他主机和端口,以便发现其他潜在的漏洞和攻击路径。

  3. 获取敏感信息:利用SSRF漏洞,攻击者可以请求内部系统上的敏感信息,例如配置文件、用户凭据、API密钥等。这些信息可能会被利用来进一步攻击系统或者进行个人数据泄露。

  4. 攻击本地服务:SSRF漏洞可以被用于攻击服务器上运行的本地服务,例如HTTP代理、DNS服务器等。攻击者可以通过对这些服务发送恶意请求,来导致服务拒绝服务(DoS)或者进一步攻击。

  5. 资源耗尽:攻击者可以利用SSRF漏洞来发送大量请求,并将服务器资源用尽,从而导致拒绝服务或系统崩溃。

CSRF和SSRF的区别

  1. 目标:CSRF漏洞主要针对用户,攻击者试图通过利用受害者的身份进行未经授权的操作。SSRF漏洞则主要针对服务器,攻击者试图通过操纵服务器发起攻击。

  2. 攻击方式:CSRF攻击通常涉及通过欺骗用户来执行恶意操作,比如在受害者在登录状态下访问一个恶意网站,从而利用他们的身份进行操作。SSRF攻击涉及通过操纵服务器来发起请求,攻击者会构造特定的请求,使服务器发送到非预期的目标。

  3. 影响范围:CSRF攻击的影响范围主要是用户级别的信息和操作,攻击者可能会利用受害者的身份执行操作,如发送电子邮件、修改密码等。SSRF攻击的影响范围更加广泛,攻击者可以通过服务器发起网络扫描、访问内部系统、读取敏感数据等。

  4. 防御措施:对于CSRF漏洞,常见的防御措施包括使用CSRF令牌(token)、检查Referer头等。对于SSRF漏洞,防御措施包括限制服务器可以发起请求的目标和端口、验证用户提交的URL等。

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

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

相关文章

conda下安装32位版本python

前言:当前主流的系统为64bit系统,conda软件为64bit软件,因此使用conda创建虚拟环境安装python时默认安装的python为64bit版本,但部分研发场景需要调用32bit依赖,只能使用32bit的python,因此需要安装32bit的…

在 Ubuntu 下使用 rabbitmq-c 库进行 RabbitMQ 消息收发的完整示例代码如下

在 Ubuntu 下使用 rabbitmq-c 库进行 RabbitMQ 消息收发的完整示例代码如下。这个示例将包括声明队列、绑定路由键、发送消息、消费消息等步骤,并且会包含错误处理。 安装 rabbitmq-c 库 首先确保已经安装了 rabbitmq-c 库。可以通过以下命令在 Ubuntu 上安装: sudo apt-get …

git创建子模块

有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。 Git …

【因果推断python】44_评估因果模型2

目录 累积弹性曲线 累积增益曲线 考虑差异 关键思想 累积弹性曲线 再次考虑将价格转换为二元处理的说明性示例。我们会从我们离开的地方拿走它,所以我们有弹性处理带。我们接下来可以做的是根据乐队的敏感程度对乐队进行排序。也就是说,我们把最敏感…

spring中@Conditional

多环境切换 java配置使用profile Profile设置在某个环境下,spring注入对应的bean public class JavaConfig {BeanProfile("dev")DataSource devDs(){DataSource ds new DataSource();ds.setUrl("dev");ds.setUsername("dev");ret…

2024年了,C++还值得学吗?6个C++的就业方向打消你的疑虑

C语言是一种广泛应用于计算机编程的高级编程语言,自从其首次问世以来,就在软件开发领域取得了广泛的应用和成功。作为一种强大的编程语言,C语言不断发展和改进,也在不断地适应新的技术和需求。在未来几年,C语言将继续保…

计算机视觉全系列实战教程:(十一)边缘检测(差分、Roberts、Sobel、Prewitt、LoG、基于形态学的边缘检测等)

1.边缘检测概述 (1)What 边缘检测:找到有差异的相邻像素锐度:边缘的对比度图像锐化:增加边缘的对比度边缘点:图像中灰度显著变化的点边缘段:边缘点坐标及方向的总和,边缘的方向可以是梯度角轮廓&#xff…

手把手!从头构建LLaMA3大模型(Python)

1. 前期准备 让我们先来想一想大概需要做什么。 首先是模型架构的选择。原工作用的是 GPT Neo 架构(可以看他们的 config),这个算是很老的模型了,最初是 EleutherAI 用来复现追踪 GPT-3 的工作的,现在用的也比较少了…

洛谷 P1726:上白泽慧音 ← Tarjan算法

【题目来源】https://www.luogu.com.cn/problem/P1726【题目描述】 在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新…

鸿蒙开发组件:【创建DataAbility】

创建DataAbility 实现DataAbility中Insert、Query、Update、Delete接口的业务内容。保证能够满足数据库存储业务的基本需求。BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert、Query、Update、Delete接口逻辑,来实现数据的批量处理。…

redis复习

redis知识点 redis持久化redis 订阅发布模式redis主从复制哨兵模式redis雪崩,穿透缓存击穿(请求太多,缓存过期)缓存雪崩 redis持久化 redis是内存数据库,持久化有两种方式,一种是RDB(redis dat…

【计算机网络】[第4章 网络层][自用]

1 概述 (1)因特网使用的TCP/IP协议体系(四层)的网际层,提供的是无连接、不可靠的数据报服务; (2)ATM、帧中继、X.25的OSI体系(七层)中的网络层,提供的是面向连接的、可靠的虚电路服务。 (3)路由选择分两种: 一种是由用户or管理员人工进行配置(只适用于规…

图解Linux内核(基于6.x):解读Linux内存反向映射之匿名映射

文章目录 📑前言一、匿名映射的mapping二、推荐阅读2.1 一图速览2.2 内容简介 📑前言 内存映射中,我们经常讨论的是由虚拟内存定位物理内存(也就是folio或者page),实际上在很多场景中(比如内存回…

linux写代码环境和工具

基础指令 目录 前言 二、yum工具的使用 1.yum是什么? 2.查看软件包 3.配置sudo 4.如何卸载软件 三、vim的使用 1. vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4.简单vim配置 四、Linux编译器-gcc/g使用 1、格式 2、gcc选项 3.gcc/g工作和…

浅谈Java23种设计模式之11种行为型模式的使用场景(第三部分)

前言 行为型设计模式实际使用场景第三部分; 1.状态模式(State) 概念: 它允许对象在其内部状态改变时改变它的行为,对象看起来好像修改了它的类。这种模式主要用于当一个对象的行为依赖于它的状态(对象的状态改变,行…

专业技能篇--算法

文章目录 前言经典算法思想总结一、贪心算法二、动态规划三、回溯算法四、分治算法 前言 这篇简单理解一些常见的算法。如果面试的时候问到相关的算法,能够应付一二。 经典算法思想总结 一、贪心算法 思想:贪心算法是一种在每一步选择中都采取在当前状…

Python——Gradio

什么是 Gradio? Gradio 是一个开源的 Python 库,用于创建用户友好的、交互式的网页界面。这个界面可以用来展示和测试机器学习模型,或者任何需要用户输入的 Python 应用程序。Gradio 的目标是让开发者快速地将他们的机器学习模型部署为可供他…

Vue CLI,Vue Router,Vuex

前言 Vue CLI、Vue Router 和 Vuex 都是 Vue.js 生态系统中的重要组成部分,它们在构建 Vue 应用程序时扮演着关键角色。 Vue CLI Vue CLI 介绍 Vue CLI 是 Vue.js 的官方命令行工具,用于快速搭建 Vue.js 项目。它提供了一个图形界面(通过…

Effective C++ 改善程序与设计的55个具体做法笔记与心得 1

一. 让自己习惯C 1. 视C为一个语言联邦 2. 尽量以const, enum, inline替换#define #define CALL_WITH_MAX(a,b) f((a) > (b) ? (a) : (b))int a 5 , b 0;CALL_WITH_MAX(a,b); // a 6, b 0 CALL_WITH_MAX(a,b10); // a 8, b 0你观察到的这个现象是由于宏替换(C prep…

工程打包与运行

黑马程序员Spring Boot2 文章目录 先点击cean,确保打包之前是个干净的环境点击package进行打包,打包成功之后可以看到target文件夹下的文件 到项目目录下使用终端打开,并使用以下命令运行打包好的程序 如果遇到没有主清单属性的问题&#xff…