文章目录
-
目录
文章目录
一.什么是CSRF
二.CSRF漏洞工作原理
一.什么是CSRF
CSRF(Cross-Site Request Forgery)漏洞,也被称为跨站请求伪造漏洞,是一种Web应用程序安全漏洞。当受害者在已经登录了某个网站的情况下,访问了恶意网页或点击了恶意链接时,攻击者利用该漏洞可以在受害者不知情的情况下执行恶意操作。
攻击者在恶意网页中插入一段代码,该代码会向目标网站发送一个伪造的请求,该请求会以受害者的身份发送给目标网站。因为目标网站无法区分该请求是由受害者自己发起的还是攻击者伪造的,所以会执行该请求并可能导致安全问题,比如转账、修改密码等操作。
演示案例:
下面将通过转账系统演示CSRF攻击如何实现转账操作
转账登录页面:
转账页面:
后端数据库页面:
假设,当前登录的账号为 “无涯” 需要给账户 “麻辣” 转账1000源,对应的操作如下图:
成功转账后,后端数据库中,无涯账户的余额从898000变为897000,麻辣账户的余额变为12000,后端数据库效果如下:
在我们未点击安全退出前,浏览器访问该网页需要的cookie依然有效,假设此时电脑接收到恶意的URL地址(恶意弹窗/QQ发送/邮箱发送等),当用户点击该恶意链接时账户余额将被转移到黑客账户 “健刚” ,为什么点击链接后余额会突然消失?接下来让我们来了解一下CSRF漏洞工作原理
二.CSRF漏洞工作原理
下面是点击恶意URL链接后跳转页面的源代码:
<!<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><h1><font color="red">You are visiting Porn</>font</h1><img src="yello.jpg"><img src="http://superbank.com/bank/transfer.php?nameid=2022&balance=1000" width="0" height="0"><body align="conter"></body>
</html>
上述代码中,网页页面仅显示一张图片.而另一张图片的src地址是该转账系统的页面URL,由于图片的高度和宽度均为0,因此该图片将不会显示在网页上。
当用户点击该恶意链接,浏览器在加载恶意链接的html代码同时也会执下述恶意代码,恶意代码由转账系统的URL+恶意参数组成。
<img src="http://superbank.com/bank/transfer.php?nameid=2022&balance=1000" width="0" height="0">注:http://superbank.com/bank/transfer.php? 这是转账系统的URL地址nameid=2022:黑客账户建刚的userid=2022balance=1000:转账金额1000
当受害者在已经登录了该网站的情况下,点击恶意链接迫使浏览器解析恶意链接的HTML代码,从而迫使浏览在解析恶意HTML代码时访问已登录网站的URL,而浏览器访问该网站时会自动查找本地文件中能够用于验证身份的cookie,由于受害者未退出登录,因此cookie仍然有效。
请求登录的是受害者浏览器,cookie也是受害者的,因此服务器将会直接放行,无需密码登录,当成功进入转账系统后,转账系统的服务器会执行恶意参数(nameid=2022&balance=1000)给黑客账户2022转账1000.