csrf自动化检测调研
https://github.com/pillarjs/understanding-csrf/blob/master/README_zh.md
CSRF
攻击者在钓鱼站点,可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求:
<form action="https://my.site.com/me/something-destructive" method="POST"><button type="submit">Click here for free money!</button>
</form>
csrf防御
-
只接收JSON:通过只接收JSON数据作为API的输入,可以降低CSRF攻击的风险。因为JSON数据在请求中是作为数据负载(payload)的一部分发送的,而不是在URL参数或表单数据中。这使得攻击者无法通过构造恶意URL或表单来伪造请求。
-
禁用CORS(Cross-Origin Resource Sharing)是一种减轻CSRF攻击的方法之一。CORS是一种机制,用于控制浏览器在跨域请求时是否允许访问资源。默认情况下,浏览器会执行同源策略,即在一个域名下的页面只能请求同一域名下的资源。但是,通过CORS机制,服务器可以发送特定的响应头,告诉浏览器允许来自其他域名的请求访问资源。建议限制跨域请求只允许使用特定的HTTP方法,如OPTIONS、HEAD和GET。这是因为这些方法通常不会对服务器端产生副作用,即不会执行对数据的修改或删除等操作。 需要注意的是,禁用CORS并不能完全阻止CSRF攻击。因为在CSRF攻击中,攻击者利用用户在已登录状态下的身份执行操作,而不是直接通过JavaScript发起请求(使用JavaScript发起AJAX请求是限制跨域的)。因此,即使禁用了CORS,攻击者仍然可以通过其他方式欺骗用户执行恶意请求。
-
检验referer。检验referrer头部很麻烦, 但是你可以阻止那些referrer头部不是来自你的页面的请求。
-
代码编写者不要让get请求具体副作用,不要让get请求可以去增删改数据库。应该确保将GET请求用于无副作用的操作,仅用于获取资源的信息。对于具有副作用的操作,应使用POST、PUT、DELETE等方法
-
CSRF Tokens(跨站请求伪造令牌)是一种解决CSRF攻击的安全措施。以下是CSRF tokens的工作原理:
- 服务器向客户端发送一个令牌(token)。
- 客户端在提交表单时将该令牌包含在表单中。
- 如果该令牌不合法,服务器将拒绝该请求。
攻击者需要通过某种方式获取你站点的CSRF令牌,他们只能使用JavaScript来实现。因此,如果你的站点不支持CORS(跨域资源共享),攻击者无法获取到CSRF令牌,从而降低了威胁。
确保CSRF令牌无法通过AJAX访问!不要创建一个用于获取令牌的/CSRF路由,并且尤其不要在该路由上支持CORS!
因为web正在向JSON API转移,并且浏览器变得更安全,有更多的安全策略, CSRF正在变得不那么值得关注。 阻止旧的浏览器访问你的站点,并尽可能的将你的API变成JSON API, 然后你将不再需要CSRF token。
s0md3v/Bolt 自动化csrf
https://github.com/s0md3v/Bolt
https://pentesttools.net/bolt-cross-site-request-forgery-csrf-scanning-suite/
1、Crawling
Bolt 将目标网站抓取到指定的深度,并将找到的所有 HTML 表单存储在数据库中以供进一步处理。
2、Evaluating
Bolt 找出强度不够的令牌以及不受保护的表单。
3、Comparing
这一阶段的重点是检测重放攻击场景,从而检查令牌是否已发出多次。它还计算所有标记之间的平均编辑距离,以查看它们是否相似。
令牌还会与包含 250 多个哈希模式的数据库进行比较。
4、Observing
在此阶段,向单个网页发出 100 个同时请求,以查看是否为这些请求生成相同的令牌。
5、Testing
此阶段致力于主动测试CSRF保护机制。包括但不限于检查移动浏览器是否存在保护、使用自行生成的令牌提交请求以及测试令牌是否检查到一定长度。
6、Analysing
在此阶段执行各种统计检查,以查看令牌是否确实是随机的。在此阶段执行以下测试
其他maybe可以参考的项目:
https://github.com/0ang3el/EasyCSRF/blob/master/EasyCSRF.py
https://github.com/andresriancho/w3af/blob/master/w3af/plugins/audit/csrf.py
尝试分析
使用pikachu搭建环境

当测试者访问的到这个页面的时候,他就一定可以拿到一个正确的token
后面的逻辑就主要结合w3af和bolt
后续要基于的代码的话,应该就是完全基于bolt项目了
自动化检测CSRF(第二篇)
相关文章:
csrf自动化检测调研
https://github.com/pillarjs/understanding-csrf/blob/master/README_zh.md CSRF 攻击者在钓鱼站点,可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求: <form action"https://my.site.com/me/something-destructive" metho…...
记录一个Python鼠标自动模块用法和selenium加载网页插件的设置
写爬虫,或者网页自动化,让程序自动完成一些重复性的枯燥的网页操作,是最常见的需求。能够解放双手,空出时间看看手机,或者学习别的东西,甚至还能帮朋友亲戚减轻工作量。 然而,网页自动化代码编写…...
【数据库系统概论】第3章-关系数据库标准语言SQL(1)
文章目录 3.1 SQL概述3.2 学生-课程数据库3.3 数据定义3.3.1 数据库定义3.3.2 模式的定义3.3.3 基本表的定义3.3.4 索引的建立与删除3.3.5 数据字典 3.1 SQL概述 动词 分类 三级模式 3.2 学生-课程数据库 3.3 数据定义 3.3.1 数据库定义 创建数据库 tips:[ ]表…...
【Python】基于flaskMVT架构与session实现博客前台登录登出功能
目录 一、MVT说明 1.Model层 2.View层 3.Template层 二、功能说明 三、代码框架展示 四、具体代码实现 models.py 登录界面前端代码 博客界面前端代码(profile.html) main.py 一、MVT说明 MVT架构是Model-View-Template的缩写,是…...
为什么有的开关电源需要加自举电容?
一、什么是自举电路? 1.1 自举的概念 首先,自举电路也叫升压电路,是利用自举升压二极管,自举升压电容等电子元件,使电容放电电压和电源电压叠加,从而使电压升高。有的电路升高的电压能达到数倍电源电压。…...
【MCAL】TC397+EB-treso之MCU配置实战 - 芯片时钟
本篇文章介绍了在TC397平台使用EB-treso对MCU驱动模块进行配置的实战过程,主要介绍了后续基本每个外设模块都要涉及的芯片时钟部分,帮助读者了解TC397芯片的时钟树结构,在后续计算配置不同外设模块诸如通信速率,定时器周期等&…...
高级人工智能之群体智能:蚁群算法
群体智能 鸟群: 鱼群: 1.基本介绍 蚁群算法(Ant Colony Optimization, ACO)是一种模拟自然界蚂蚁觅食行为的优化算法。它通常用于解决路径优化问题,如旅行商问题(TSP)。 蚁群算法的基本步骤…...
【SpringBoot应用篇】【AOP+注解】SpringBoot+SpEL表达式基于注解实现权限控制
【SpringBoot应用篇】【AOP注解】SpringBootSpEL表达式基于注解实现权限控制 Spring SpEL基本表达式类相关表达式表达式模板 SpEL表达式实现权限控制PreAuthAuthFunPreAuthAspectUserControllerSpelParserUtils Spring SpEL Spring 表达式语言 SpEL 是一种非常强大的表达式语言…...
Java研学-HTTP 协议
一 概述 1 概念和作用 概念:HTTP 是 HyperText Transfer Protocol (超文本传输协议)的简写,它是 TCP/IP 协议之上的一个应用层协议。简单理解就是 HTTP 协议底层是对 TCP/IP 协议的封装。 作用:用于规定浏览器和服务器之间数据传输的格式…...
差生文具多之(二): perf
栈回溯和符号解析是使用 perf 的两大阻力,本文以应用程序 fio 的观测为例子,提供一些处理它们的经验法则,希望帮助大家无痛使用 perf。 前言 系统级性能优化通常包括两个阶段:性能剖析和代码优化: 性能剖析的目标是寻…...
【SPI和API有什么区别】
✅什么是SPI,和API有什么区别 ✅典型解析🟢拓展知识仓🟢如何定义一个SPI🟢SPI的实现原理 ✅SPI的应用场景SpringDubbo ✅典型解析 Java 中区分 API和 SPI,通俗的进: API和 SPI 都是相对的概念,他们的差别只…...
Day67力扣打卡
打卡记录 美丽塔 II(前缀和 单调栈) 链接 class Solution:def maximumSumOfHeights(self, maxHeights: List[int]) -> int:n len(maxHeights)stack collections.deque()pre, suf [0] * n, [0] * nfor i in range(n):while stack and maxHeights…...
什么是网站监控?
网站监控是跟踪网站的可用性和性能,以最小化宕机时间,优化性能并确保顺畅的用户体验。维护网站正常运行对于任何企业来说都是至关重要的,因而对大多数业务来说,网站应用监控都是一个严峻的挑战。Applications Manager网站应用监控…...
游戏软件提示d3dcompiler_43.dll的五个解决方法,亲测靠谱
在使用电脑进行工作,玩游戏的时候,我们常常会遇到一些错误提示,其中之一就是“D3DCompiler_43.dll丢失”的提示。D3DCompiler_43.dll是一个非常重要的动态链接库文件。它是由DirectX SDK提供的,用于编译和优化DirectX着色器代码的…...
python使用opencv提取视频中的每一帧、最后一帧,并存储成图片
提取视频每一帧存储图片 最近在搞视频检测问题,在用到将视频分帧保存为图片时,图片可以保存,但是会出现(-215:Assertion failed) !_img.empty() in function cv::imwrite问题而不能正常运行,在检查代码、检查路径等措施均无果后&…...
说说对React refs 的理解?应用场景?
先了解,是什么? React 中的 Refs提供了一种方式,允许我们访问 DOM节点或在 render方法中创建的 React元素。 本质为ReactDOM.render()返回的组件实例,如果是渲染组件则返回的是组件实例,如果渲染dom则返回的是具体的do…...
Pytorch 读取t7文件
Pytorch 1.0以上可以使用: import torchfileth_path r"./path/xx.t7" data torchfile.load(th_path)print(data.shape)若data的尺寸为0,则将torch版本降为0.4.1,并使用以下函数: from torch.utils.serialization im…...
【YOLOV8预测篇】使用Ultralytics YOLO进行检测、分割、姿态估计和分类实践
目录 一 安装Ultralytics 二 使用预训练的YOLOv8n检测模型 三 使用预训练的YOLOv8n-seg分割模型 四 使用预训练的YOLOv8n-pose姿态模型 五 使用预训练的YOLOv8n-cls分类模型 <...
[Linux] MySQL数据库之索引
一、索引的相关知识 1.1 索引的简介 索引是一个排序列表,包含索引值和包含该值的数据行的物理地址(类似于 c 语言链表,通过指针指向数据记录的内存地址)。 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索…...
【期末考试】计算机网络、网络及其计算 考试重点
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 计算机网络及其计算 期末考点 🚀数…...
5分钟快速掌握Windows右键菜单终极管理神器ContextMenuManager
5分钟快速掌握Windows右键菜单终极管理神器ContextMenuManager 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是不是经常在右键文件时,面对几十个…...
如何通过Jellyfin Android TV客户端打造家庭影院级媒体体验?
如何通过Jellyfin Android TV客户端打造家庭影院级媒体体验? 【免费下载链接】jellyfin-androidtv Android TV Client for Jellyfin 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-androidtv 想要在智能电视上享受专业的媒体管理体验吗?…...
YimMenu:GTA V终极游戏增强工具完整实战手册
YimMenu:GTA V终极游戏增强工具完整实战手册 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...
抖音批量下载神器:5分钟学会免费高效下载视频、音乐和直播
抖音批量下载神器:5分钟学会免费高效下载视频、音乐和直播 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...
开源机械爪控制库:从PID算法到ROS集成的全栈开发指南
1. 项目概述:一个开源的机械爪设计与控制库最近在机器人硬件开发的圈子里,开源项目“MeyerZhou/openclaw”引起了不少创客和机器人爱好者的注意。简单来说,这是一个专注于机械爪(或称机械手、夹爪)设计与控制的代码库和…...
5分钟掌握小红书无水印下载:让内容保存效率提升300%
5分钟掌握小红书无水印下载:让内容保存效率提升300% 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&#…...
MCP服务器开发指南:为AI助手构建安全可控的外部工具扩展
1. 项目概述:一个为AI助手赋能的MCP服务器最近在折腾AI应用开发的朋友,可能都绕不开一个词:MCP。全称是Model Context Protocol,你可以把它理解成一套标准化的“插件协议”。它让像Claude、Cursor这类AI助手,能够安全、…...
大语言模型与多模态生成融合:架构、工具与实践指南
1. 项目概述:当大语言模型遇见多模态生成最近两年,AI领域最激动人心的进展,莫过于大语言模型(LLMs)和多模态生成模型的“双向奔赴”。前者以ChatGPT、GPT-4为代表,展现了惊人的语言理解、推理和生成能力&am…...
智能游戏助手:League Akari如何彻底改变你的英雄联盟体验
智能游戏助手:League Akari如何彻底改变你的英雄联盟体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英雄选择阶段手…...
PAC技术演进与核心趋势:从多域控制到边缘智能的工业自动化平台
1. 项目概述:为什么今天还要聊PAC?如果你在工业自动化、楼宇控制或者任何涉及逻辑控制的领域工作,那么“PAC”这个词对你来说应该不陌生。但很多时候,它就像一个熟悉的陌生人——大家好像都知道它,但真要细说它现在发展…...
