CSRF跨站请求伪造

CSRF漏洞原理

  1. 漏洞网站 => a 站点 存在csrf漏洞的 (http://192.168.0.31/bluecms/user.php?act=my_info)

  2. 恶意网站 => B 站点 ( http://127.0.0.1/csrf.html )

  1. 用户登录a站,浏览器保存有 cookie

  2. 用户去访问b站,b站中的js脚本对a站的某个功能接口发起请求

  3. 浏览器会把a站的cookie填充到请求包中,让这次接口请求可以完成

  4. 用户在不知情的时候,访问了不相关的功能接口,且数据不确定

借助了用户的cookie来完成某个固定的操作。简单来说就是借助用户a站的cookie 在用户访问b站后 修改a站内容

CSRF的局限性:

  1. 攻击的点都是a网站中已经存在的功能, 不能执行其他代码或者功能

  2. 只能借助用户的cookie,无法获取到用户的cookie

3.这个数据包可以重复发送

有的网站一个数据包 只能使用一次 再次发送时 会提示数据包异常 不在处理数据包的请求

数据包需要携带某个特定的数据(出现在body里 或者是请求头)

如何清除网站cookie

1.手动在用户页面点击退出

2.关掉浏览器 (有些网站长久保存cookie 关掉浏览器也有 例如bilibili)

对比xss漏洞:

xss漏洞: 漏洞网站 => 将恶意代码插入到漏洞网站中 (代码执行 ,执行js代码)

csrf: 借助用户的权限完成攻击

一定要诱导用户去访问恶意网站,才能完成

钓鱼, 难度非常大

组合漏洞利用 通过xss稳定触发csrf

如果无法诱导用户访问b站点 可以再用户常访问的c站通过xss漏洞插入csrf恶意代码 就是在用户访问c站时盗用a站的cookie

管理员优先级别高.

# csrf漏洞的挖掘思路

a 网站已知的功能

  1. 功能的接口会传传递那些参数 ( 修改用户信息\ 修改收货地\ 支付接口\ 绑定邮箱)

  2. 这个数据包可以重复发送

通过请求包,构建恶意攻击代码

<form id="a" action="http://192.168.0.31/bluecms/user.php">

</form>

<script>

document.findElementByID("a").submit();

</script>

构建恶意代码需要前端编写能力 可以尝试burp的工具

burp会自动生成代码

默认使用的ajax来完成请求发送

ajax 用来完成网络请求的模块

copy html 后把这段代码插入到要让用户访问的b站 就可修改数据

test in browser burp会帮你生成一个网址 自己开代理点击这个网址 就可简单尝试这个漏洞

存在限制:

​ 以前csrf非常难防 现在浏览器会对js请求进行限制。通过js发起请求时,没法直接完成交互

​ Access-Control-Allow-Origin: 拦下了攻击

​ 访问不同源的站点时,需要看目标站点是否允许用户访问。通过另一个站修改这个站内的数据

​ burpsuit

http://192.168.0.31 服务器同意 burpsuit来访问,才可以访问成功

限制的js直接发送请求。

如果被拦 可通过form表单发起请求

修改body的内容

然后再次test in bro 访问这个网址 点击按钮 会发现数据已经更改(攻击成功)

可以在代码后加上 form.submit(); 点击链接 会完成自动提交

如何预防CSRF

可以强行用验证码(强制用户必须和应用进行交互,但是体验性太差了) 请求中加随机Token值

实战靶场

不同版本的cms源码有问题。可能不通用。

从后台往前台找 =>

信任机制 => 后台使用 => 企业内部人员

webshell:

​ 通过web应用管理操作系统。

​ eval($_REQUEST['8']); 执行用户传入的代码

​ webshell 管理工具

http://newcsrf.zs.aqlab.cn/uploads/fl.php 8

需要根据网站的编写语言, 需要使用对应的语言写后门文件

php 的一句话木马

java (jsp) java的一句话木马

蚁剑\哥斯拉\冰蝎 (webshell 管理工具)

相关推荐
白兰地空瓶2 小时前
🚀你以为你在写 React?其实你在“搭一套前端操作系统”
前端·react.js
爱上妖精的尾巴2 小时前
6-4 WPS JS宏 不重复随机取值应用
开发语言·前端·javascript
似水流年QC3 小时前
深入探索 WebHID:Web 标准下的硬件交互实现
前端·交互·webhid
陪我去看海3 小时前
测试 mcp
前端
speedoooo4 小时前
在现有App里嵌入一个AI协作者
前端·ui·小程序·前端框架·web app
全栈胖叔叔-瓜州4 小时前
关于llamasharp 大模型多轮对话,模型对话无法终止,或者输出角色标识User:,或者System等角色标识问题。
前端·人工智能
三七吃山漆4 小时前
攻防世界——wife_wife
前端·javascript·web安全·网络安全·ctf
用户47949283569154 小时前
面试官问"try-catch影响性能吗",我用数据打脸
前端·javascript·面试
GISer_Jing4 小时前
前端营销技术实战:数据+AI实战指南
前端·javascript·人工智能
GIS之路5 小时前
使用命令行工具 ogr2ogr 将 CSV 转换为 Shp 数据(二)
前端