网安教育
培养网络安全人才
技术交流、学习咨询
CSRF漏洞( Cross-site request forgery )!!!
同XSS一样,但很多时候很多人经常把XSS与CSRF漏洞混淆,他们之间有着本质的不同,就从信任的角度来区分:
XSS:利用用户对站点的信任
CSRF:利用站点对已经身份认证的信任
实际上CSRF漏洞主要结合社会工程发起攻击。
漏洞利用条件:
1、被害用户已经完成身份认证
2、新请求的提交不需要重新身份认证或确认机制
3、攻击者必须了解Web APP请求的参数构造
4、诱使用户触发攻击的指令(社工)
需要至少以上的条件,才可能说存在CSRF漏洞。
下面详解介绍CSRF漏洞的主要利用过程:
工具:DVWA靶机、Kali、Burp suite。
#两种方法:Post / Get
首先:
准备好环境,将主机用于客户端当作普通用户,在Kali上作为攻击者和服务器架设,并在靶机为low与medium状态下进行操作。
初始登陆密码为:password,并调制low状态。
其次:
在kali上开启apache服务配备好服务器,同时在kali上使用同样账号密码登陆上dvwa(用作burp的抓包处理),并将dwva设置为low模式,打开burp进行截断代理,紧接着在CSRF选项中进行更改密码(改为123),成功截断后将内容drop掉,不让其在kali上将密码更改,接下来将我们截取到的数据取部分值配置为(http://1.1.1.1/dwva.....)一个2.html页面,将这个页面放入kali中的apache服务下的/var/www/html文件,后面就需要用社会工程学向客户端普通用户发送含有2.html这个链接,等待客户端普通用户点击,一旦点击,那么密码将被成功修改,客户端退出再次用password密码登陆时将不在生效,而当使用123登陆时才会登陆成功。
这样一个Get方法模式的漏洞利用已经完成。
而对于Posr方法来说,URL是找不到修改密码的参数,所以过去使用的方式就是查看页面源代码,通过对action元素一栏的参数和写法写出一个新的html页面。
但是这种方法过于复杂,所以当使用burp的时候就很方便,直接通过截断之后,drop掉当前操作,在http history中找到响应历史对内容右键选择转换保存内容为新的3.html并在其中修改当客户端点击后要修改成的密码即可,然后重复Get方法操作,社工、等待点击。
当客户端点击之后,密码就被修改完成。
对于low模式下来说,没有验证等机制存在,所以容易完成修改,但是当low变为medium的时候,medium就会存在本地验证机制,看看源码:
low模式
medium模式
很显然,medium多出了一个判断机制,也就是HTTP的REFERER中需要有127.0.0.1这个值才能进行下面的操作,所以在这里medium模式也不是足够安全,同样可以进行绕过:
我们将截取的内容进行重放,然后在referer中末尾加上127.0.0.1这个值,按照Post方法再生成新的html,其效果依然能达到目的。
实际上由low——>medium都是存在不完善的安全模式,但到了hight模式基本上已经做得比较完善了,通过源码就能知道:
在hight模式下更是多出了一个验证机制,所以相对来说是安全。
最后:
CSRF漏洞已经再逐渐防护的越来越好,但是相信上有政策下有对策,没有绝对安全的做法,这样的探索始终是一件有趣的事情;如果是初学者操作操作练练手还是挺好的。
文:Jeromeyoungh
原文链接:https://blog.csdn.net/Jack0610/article/details/88079140
如有侵权请联系删除
战疫期间,开源聚合网络安全基础班、实战班线上全面开启,学网络安全技术、升职加薪……有兴趣的可以加入开源聚合网安大家庭,一起学习、一起成长,考证书求职加分、升级加薪,有兴趣的可以咨询客服小姐姐哦!
加QQ(1271375291)找小姐姐私聊哦
本文始发于微信公众号(开源聚合网络空间安全研究院):老生常谈之CSRF漏洞详解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论