csrf漏洞

什么是csrf?

csrf跨站请求伪造,也被称为one-click attack 或者 session riding ,通常 缩写为CSRF或者XSRF,是一种挟持用户在当前已登录的WEB应用程序上执行 非本意的操作的攻击方法。
跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF利用的是网站对用户网页浏览器的信任。最大的区别就是CSRF没有盗取用户的cookie,而是直接的利用了浏览器存储的cookie让用户去执行某个动作。
例如:http://www.xx.com/pay.php?uname=xiaozhang&money=10

有什么危害?

简单总结CSRF漏洞就是利用网站权限校验方面的漏洞在用户不知觉的情况下发送请求,达到“伪装”用户的目的,攻击者利用CSRF实现的攻击主要有以下几种:
攻击者能够欺骗受害用户完成该受害者所允许的任一状态改变的操作,比如:更新账号细节,完成购物,注销甚至登录等操作。
获取用户的隐私数据
配合其他漏洞攻击
CSRF蠕虫

CSRF与XSS的区别

最大的区别就是CSRF没有盗取用户的cookie,而是直接的利用了浏览器的cookie让用户去执行某个动作。

GET型和POST型

GET型
GET类型的CSRF是CSRF中最常见,危害最大,但也是最简单的一种类型了,只要一个http请求就可以了。这种类型又可以分为手动型和自动型,手动型就是需要我们自己去点击才会发生攻击,比如各种URL链接,各种a标签包裹的DOM元素。自动型的不需要我们点击,只要当我们访问具有某些标签的网站的时候就会自动发生攻击,比如网页中有

<img src="http://www.xx.com/transation.php?id=3&amount=1000"/>
<script src="http://www.xx.com/transction.php?id=3&amount=1000"></script>

因为这些标签需要访问指定的URL才能发挥作用,所以会发送http请求,又因为这些标签是网页加载的时候就会自动发送http请求,所以当网页加载的时候CSRF就会自动发生,要实现这种CSRF就必须实现跨域访问,比如利用上面这两个可以发送跨域请求的标签,AJAX是不能实现这种CSRF的,因为AJAX有同源策略。
POST型
post请求和GET请求是不同的,POST请求是要把参数放在HTTP的请求体里发送给服务器,所以POST类型的CSRF需要用POST的方式发送请求,我们常用的POST请求方式一般就两个,AJAX和表单,当正如我上面所说,AJAX是有同源策略的,所以不能用AJAX的方式发送POST请求,所以就剩下表单的方式了。没错,表单是支持跨域发送请求的。通常的方法就是创建一个自动提交的表单,比如静态创建一个自动提交的表单。

<form action="http://www.xx.com/transction/php" method="post">
<input type="text"name="id"value="3"/>
<input type="text"name="amount"value="1000"/>
<input id="form" type="sumbit">
</form>
<script>document.getElementByld("form"). click()</script>

GET型和POST型转换
通过Repeater中change request method模块,可进行get和post之间的相互转换。

CSRF漏洞原理

在这里插入图片描述在这里插入图片描述

漏洞条件

1、被害用户已经完成身份认证
2、新请求的提交不需要重新身份认证或确认机制
3、攻击者必须了解Web APP请求的参数构造
4、诱使用户触发攻击的指令(社工)

挖掘技巧

各种功能点:密码修改处 点赞 转账 注销 删除 …

csrf漏洞修复方法:

1、检验referer来源
2、添加随机token
3、身份确认机制

CSRF靶场实战

打开DVWA,调好等级出现了一个修改密码的功能点
在这里插入图片描述
设置个密码,然后提交后,发现url地址栏就是修改的参数密码
在这里插入图片描述
进阶攻击,csrf+xss组合拳,利用burp生成poc,构造自动提交
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值