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 管理工具)

相关推荐
布列瑟农的星空25 分钟前
WebAssembly入门(一)——Emscripten
前端·后端
贵州数擎科技有限公司28 分钟前
一批优质 AI 域名转让(.ai)|适合 AI 创业 / 产品 / 公司品牌
前端
小二·34 分钟前
微前端架构完全指南:qiankun 与 Module Federation 双方案深度对比(Vue 3 + TypeScript)
前端·架构·typescript
EndingCoder1 小时前
枚举类型:常量集合的优雅管理
前端·javascript·typescript
Electrolux1 小时前
[wllama]纯前端实现大语言模型调用:在浏览器里跑 AI 是什么体验。以调用腾讯 HY-MT1.5 混元翻译模型为例
前端·aigc·ai编程
sanra1231 小时前
前端定位相关技巧
前端·vue
起名时在学Aiifox1 小时前
从零实现前端数据格式化工具:以船员经验数据展示为例
前端·vue.js·typescript·es6
oMcLin2 小时前
如何在Manjaro Linux上配置并优化Caddy Web服务器,确保高并发流量下的稳定性与安全性?
linux·服务器·前端
码途潇潇2 小时前
JavaScript 中 ==、===、Object.is 以及 null、undefined、undeclared 的区别
前端·javascript
之恒君2 小时前
Node.js 模块加载 - 4 - CJS 和 ESM 互操作避坑清单
前端·node.js