CSRF(跨站请求伪造)
攻击者盗取受害者的cookie凭证,以受害者的名义发送恶意请求,对服务器来说这个请求完全是合法的,让受害者亲自去执行攻击者所布置的操作,且真个过程受害者不会察觉
CSRF漏洞成因:网站的cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,之后只要访问这个网站,都会默认你已经登录的状态。在此期间,攻击者发送了构造好的csrf脚本,或包含csrf脚本的链接,诱使受害者去点击。
CSRF攻击过程
1受害者浏览登录存在CSRF漏洞的网站A,输入账号密码
2网站验证成功,并返回cookie给浏览器
3在第二步时,网站同时返回恶意的脚本或包含恶意脚本的链接,就会访问攻击者构造的恶意网站(用户未退出网站A,并在同一浏览器中访问望网站B)
4此时攻击者已经盗取了受害者的cookie凭证,网站B返回攻击性代码并要求受害者去访问存在漏洞的网站A
5受害者携带cookie信息访问网站A,并执行了攻击者希望你去执行的恶意操作
CSRF攻击所必须的条件:1 受害者在漏洞网站处于已登录状态;2受害者需要打开恶意站点
XSS与CSRF的区别
XSS:是攻击者盗取受害者cookie,并自己使用凭证进入系统,执行操作
CSRF:攻击者利用cookie凭证,是受害者自己进入系统,帮助攻击者执行各种操作且不会被察觉
CSRF漏洞检测方法:
网页操作功能,抓包,若没有token参数,将referer信息改为空值,重放请求,如果请求成功,则存在CSRF漏洞
dvwa中csrf漏洞的检测
修改密码,抓包,发现没有token参数,将包发送到Repeater,然后将referer改为空,发送请求,请求成功,存在漏洞
此时拷贝地址栏中的URL,修改其中的参数,并发送请求,可成功修改密码(两个值都修改)
CSRF利用(get请求)
方式一
1 get请求,直接发送链接 (t.im 短链接生成网站)
2 诱导用户访问
3 显示结果
方式二
方式三
1 结合XSS,用户出发XSS漏洞
2 XSS脚本执行<script src=“指向有CSRF漏洞的系统”><script>
操作过程:
首先发现当前网站存在CSRF漏洞,然后在找一个存在XSS漏洞的网站,将<script src="http://127.0.0.1:8086/dvwa/vulnerabilities/csrf/?password_new=666666&password_conf=666666&Change=Change"></script>埋入该网站中(IP是CSRF漏洞网站的IP)。当访问该XSS站点时,就会执行script脚本,从而密码被修改 。
CSRF利用(post请求)