webgoat-Request Forgeries 请求伪造

news2024/10/7 20:26:11

(A8:2013) Request Forgeries

Cross-Site Request Forgeries

跨站请求伪造,又称一键攻击或会话骑乘,简称CSRF (有时发音为 sea-surf)或 XSRF,是一种恶意利用网站,其中传输未经授权的命令 来自网站信任的用户。与跨站点脚本 (XSS) 不同,XSS 利用用户对特定站点的信任,CSRF 利用网站对用户浏览器的信任。
这是最简单的 CSRF 攻击。例如,您会收到一封电子邮件,其中包含以下内容:

View my Pictures!

如果用户仍然登录到 bank.com 的网站,这个简单的GET请求会将资金从一个账户转移到另一个账户。 当然,在大多数情况下,网站可能很多控制来限制这样的请求

框架支持xsrf

大多数框架现在都默认支持防止 CSRF。例如,在 Angular 中,默认情况下,拦截器会从 cookie 中读取 XSRF-TOKEN,并将其设置为 HTTP 头 X-XSRF-TOKEN。由于只有运行在您的域上的代码才能读取 cookie,因此后端可以确定 HTTP 请求来自您的客户端应用程序,而不是攻击者。

为了实现此功能,后端服务器在cookie中设置令牌。由于cookie的值应该由Angular(JavaScript)读取,因此此cookie不应标记为http-only标志。在每次向服务器发出请求时,Angular会将令牌作为HTTP标头放入X-XSRF-TOKEN中。服务器可以验证这两个令牌是否匹配,这将确保服务器上的请求运行在相同的域上。
(服务端给请求发token,并将token存放在cookie上,客户端请求时需要带上token,攻击者不知道token,当然就无法请求。)

custom header是不安全的

另一种防御措施是在每次调用中添加自定义请求标头。如果与服务器进行的所有交互都是用JavaScript执行的,这将起作用。在服务器端,您只需检查是否存在此标头,如果不存在,则拒绝请求。一些框架默认提供此实现,但研究人员Alex Infuhr发现,此实现也可以被绕过。

0x03

点击提交按钮,看到接口,修改请求头中的referer字段(相当于从其他网站向目标请求发送请求),发送请求,获得flag。
在这里插入图片描述

0x07

<form name="attack" enctype="text/plain" action="http://10.100.33.188:8080/WebGoat/csrf/feedback/message" METHOD="POST">
<input type="hidden" name='{"name": "Testf", "email": "teddst1233@163.com", "subject": "service", "message":"' value='dsaffd"}'>
</form>
<script>document.attack.submit();</script>

新建文件a.html如上,提交到wold中,然后访问wolf该文件对应的url。
在这里插入图片描述
在这里插入图片描述
原理是请求wolf返回的html,向webgoat发送了请求提交了表单。该请求的origin和referer都是wolf的地址,所以实现了跨域请求。

Login CSRF attack

攻击者使用自己的账户,让用户登录,然后收集用户在网站上操作的活动。

0x08

注册个csrf-开头的用户,比如我的用户名为tntaxin,然后我再注册一个csrf-tntaxin,然后登录csrf-tntaxin访问这道题目,点击solved就过了,当然这题的真实目的是希望你构建一个csrf 恶意链接,然后访问这个链接就会自动登录csrf-tntaxin这个账户,这样受害者的访问记录你就都知道了。

CSRF 影响

影响仅受登录用户可以执行的操作的限制(如果站点/功能/操作未得到适当保护)。 真正容易受到 CSRF 攻击的领域是物联网设备和“智能”设备。可悲的是,许多消费级路由器 也被证明容易受到 CSRF 的影响。

CSRF解决方案

  • cookie的Same site属性
    这是现代浏览器支持的新扩展,它限制了 cookie 的范围,使其仅 如果这些请求是“同一站点”,则附加到请求 例如,如果请求是从 发起的,则请求将附加同一站点 cookie。 有两种模式,严格和宽松。第一个不允许跨站点请求,
    SameSite的Strict和Lax选项在处理跨站点请求时具有不同的行为。

SameSite的Strict选项是最严格的设置,它禁止在任何跨站点请求上发送cookie。这意味着,如果黑客从他的网站去访问你网站的资源,如果你的网站的某些Cookie设置了SameSite = Strict,那么在黑客网站上的Cookie是不会发送到你的网站上的,只有你从你的站点去请求你站点的资源,才会带上这些Cookie。

相比之下,SameSite的Lax选项相对宽松。在跨站点的情况下,从第三方站点的链接打开和从第三方站点提交Get方式的表单这两种方式都会携带Cookie。但如果使用Post方法或在第三方站点中使用img、iframe等标签加载的URL,这些场景都不会携带Cookie。

总结来说,SameSite的Strict和Lax选项在处理跨站点请求时具有不同的规则,都旨在增强网站的安全性。

  • 其他保护措施
    幸运的是,许多(Web)应用程序框架现在都内置了处理CSRF攻击的支持。例如,Spring 和 默认情况下,Tomcat 会启用此功能。只要你不关闭它(就像在 WebGoat 中一样),你应该不会受到 CSRF 攻击。

有关 CSRF 保护的更多信息,请参阅以下内容:

https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html(预防/防御)

https://owasp.org/www-community/attacks/csrf(攻击)

https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CSRF_Prevention_Filter / https://tomcat.apache.org/tomcat-8.0-doc/config/filter.html#CSRF_Prevention_Filter (Tomcat)

https://docs.spring.io/spring-security/site/docs/current/reference/html5/#csrf

Server-Side Request Forgery

概念
在服务器端请求伪造 (SSRF) 攻击中,攻击者可以滥用服务器上的功能来读取或更新内部资源。攻击者可以提供或修改服务器上运行的代码将读取或提交数据的 URL。而且,通过仔细选择 URL,攻击者可能能够读取服务器配置(如 AWS 元数据)、连接到内部服务(如启用了 HTTP 的数据库)或对内部服务执行 POST 请求,而这些服务并不打算公开。

目标
在接下来的几页的练习中,您需要检查浏览器向服务器发送的内容,以及如何调整请求以从服务器获取其他内容。

SSRF 操作方法
https://www.hackerone.com/blog-How-To-Server-Side-Request-Forgery-SSRF

0x02

抓包,修改url为url=images%2Fjerry.png,发送请求。
在这里插入图片描述

0x03

抓包,修改url为http://ifconfig.pro
在这里插入图片描述

如何防止SSRF?

  • 使用允许的域、资源和协议的白名单,Web 服务器可以从中获取资源。

  • 如果从用户接受的任何输入与预期的正面规范不匹配,则应进行验证和拒绝。

  • 如果可能,请不要在控制 Web 服务器获取资源的位置的函数中接受用户输入。

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

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

相关文章

WebDAV之π-Disk派盘 + Keepass2Android

推荐一款密码管理器,允许人们使用复杂的组合进行登录,而不必记住所有的组合。 Keepass2Android可以支持大多数安卓互联网浏览器, Android设备上同步软件,还支持通过WebDAV添加葫芦儿派盘。 Keepass2Android 目前安全方面最大的问题之一是大多数人几乎在任何地方都使用通用…

第一百六十六回 如何创建以图片为背景的页面

文章目录 1. 概念介绍2. 实现方法2.1 整体思路2.2 具体步骤 3. 示例代码4. 内容总结 我们在上一章回中介绍了WheelChoose组件相关的内容&#xff0c;本章回中将介绍如何创建以图片为背景的页面&#xff0c;闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 在实际…

SQL注入漏洞及五大手法

SQL注入漏洞 文章目录 SQL注入漏洞万能用户名 SQL注入分类两大基本类型五大手法提交参数方式注入点的位置 注入点判断SQL注入的危害sql漏洞挖掘Mysql库中的注释 SQL注入基本手法联合查询条件 报错注入group byextractvalueupdataxml 布尔盲注延时注入 案例获取cms网站后台管理员…

k8s 目录和文件挂载

k8s生产中常用的volumes挂载方式有&#xff1a;hostPath、pv&#xff0c;pvc、nfs 1.hostPath挂载 hostPath是将主机节点文件系统上的文件或目录挂载到Pod 中&#xff0c;同时pod中的目录或者文件也会实时存在宿主机上&#xff0c;如果pod删除&#xff0c;hostpath中的文…

字符函数和字符串函数详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 字符分类函数 2. 字符转换函数 3. strlen的使用和模拟实现 3.1strlen的使用&#xff1a; 3.2strlen的模拟实现&#xff1a; 4. strcpy的使用和模拟实现 4.1strc…

YOLOv8-Cls推理详解及部署实现

目录 前言一、YOLOv8-Cls推理(Python)1. YOLOv8-Cls预测2. YOLOv8-Cls预处理3. YOLOv8-Cls推理 二、YOLOv8-Cls推理(C)1. ONNX导出2. YOLOv8-Cls预处理3. YOLOv8-Cls推理 三、YOLOv8-Cls部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX导出4. 源码修…

网络安全深入学习第八课——代理与端口转发

文章目录 一、什么是代理二、正向代理三、反向代理四、正向和反向代理模拟复现 一、什么是代理 代理服务器英文全称是Proxy Server&#xff0c;其功能就是代理网络用户去取得网络信息。 形象的说&#xff1a;它是网络信息的中转站。在一般情况下&#xff0c;我们使用网络浏览…

​软考-高级-信息系统项目管理师教程 第四版【第20章-高级项目管理-思维导图】​

软考-高级-信息系统项目管理师教程 第四版【第20章-高级项目管理-思维导图】 课本里章节里所有蓝色字体的思维导图

解决 win11 vmware 中centos 网络不能访问外网

解决 win11 vmware 中centos 网络不能访问外网 1、进入win11 高级设置&#xff0c;找到centos 虚拟机使用的网卡 2、看网卡的其他属性 3、按照红圈部分&#xff0c;配置成一样的就行 4、进入到虚拟机配置中&#xff0c;配置成如图一样的NAT模式 5、再进入编辑 -》虚拟网络编辑…

30道高频Vue面试题快问快答

面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过程中&#xff0c;面试官通常会使用快问快答的方式来快速评估面试者的基础知识、思维能力和反应速度。 这种情景下&#xff0c;面试官会提出一系列简短的问题&#xff0c;并期望面试者能够迅速做出回答或提供简洁明…

仿真实现lio_sam建图和ndt_matching定位

文章目录 一、仿真环境二、lio_sam建图1.修改配置文件2.开始建图 三、ndt_matching定位1.新建启动文件2.启动 总结 一、仿真环境 使用现有开源的仿真环境—从零开始搭建一台ROS开源迷你无人车&#xff0c;作者已经配置好小车模型以及gazebo环境&#xff0c;imu频率已改为200HZ…

Leetcode—2586.统计范围内的元音字符串数【简单】

2023每日刷题&#xff08;二十二&#xff09; Leetcode—2586.统计范围内的元音字符串数 实现代码 class Solution { public:int vowelStrings(vector<string>& words, int left, int right) {int ans 0;for(int i left; i < right; i) {string s words[i];i…

原子化 CSS 真能减少体积么?

前言 最近看到这样一篇文章&#xff1a;《要喷也得先做做功课吧&#xff1f;驳Tailwind不好论》 个人觉得说的还是有一定道理的&#xff0c;就是该作者的语气态度可能稍微冲了点&#xff1a; 不过他说的确实有道理&#xff0c;如果这种原子化工具真的如评论区里那帮人说的那么…

苹果手机的警示!电子产品无线升级=救命的机会

大家日常使用手机都知道&#xff0c;手机系统和软件三天两头就收到更新提醒。 只要用户手机联网&#xff0c;就可以想更新就更新&#xff0c;觉得原本使用顺手也可以不更新。 可各大厂商的初衷是好的&#xff0c;希望改善系统的一些bug问题&#xff0c;也会给我们带来一些全新功…

强化学习中的基本术语

0.引言 本篇文章主要介绍强化学习中最基本的术语&#xff08;不包含具体算法&#xff09;&#xff0c;主要提供给刚入门强化学习的朋友们&#xff0c;让大家快速掌握一些基本术语&#xff0c;之后对看强化学习算法内容有着更好地理解。 1.基本术语 1.1.state 中文称为“状态…

基于ssm企业人事管理系统

功能如图所示 摘要 基于SSM&#xff08;Spring SpringMVC MyBatis&#xff09;框架的企业人事管理系统是一种高效、可定制化的人力资源管理解决方案。该系统整合了现代企业的人力资源需求&#xff0c;提供了一套功能丰富的工具&#xff0c;用于管理员工信息、薪资、考勤、招聘…

C语言--typedef的使用

前言 在C语言中使用结构体时必须加上struct这个关键字,那有没有办法省略这个呢?要想达到这个目的就 需要用到关键字typedef,顾名思义”类型定义”。 typedef 数据类型 新的别名; 它是用来操作数据类型。其主要作用有两个: 1.给一个较长较复杂的类型取一个简单的别名。 2.给类…

python 之字典的相关知识

文章目录 字典的基本特点&#xff1a;1. 定义2. 键唯一性3. 可变性4. 键的类型 基本操作&#xff1a;字典的创建1. 花括号 {}2. dict() 构造函数3. 键值对的 dict() 构造函数使用 zip() 函数创建字典&#xff1a;注意事项访问字典中的值修改和添加键值对删除键值对 字典方法&am…

平衡树相关笔记

引入 二叉查找树 二叉查找树&#xff08;Binary Search Tree&#xff09;&#xff0c;又名二叉搜索树。满足以下性质&#xff1a; 对于非空的左子树&#xff0c;左子树点权值小于根节点。对于非空的右子树&#xff0c;左子树点权值大于根节点。二叉查找树的左右子树均是二叉…

Android修行手册 - 模板匹配函数matchTemplate详解,从N张图片中找到是否包含五星

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…