CSRF漏洞
CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery)
原理:
- 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
实现条件
- 受害者正在访问你要攻击的网站
- 同时受害者打开你的poc攻击连接
实例
推荐一个写的比较清楚的博客:https://blog.csdn.net/wst0717/article/details/81542289
开始初步用法,自己登录一个网站,抓包获取相应请求包字段。根据字段构建poc页面
- get请求的,直接改链接
简单构造链接地址如下:"http://127.0.0.1/DVWA-master/vulnerabilities/csrf/?password_new=test&password_conf=test&Change=Change#"
action(提交表单的URL地址)信息通过检查代码可得:
type=hidden 是隐藏的意思,不然其显示出来给用户发现
method:请求方式是post
应用思路
- 首先你要对目标网站系统自己研究、下载和分析,做代码审计,发现csrf漏洞后,构建poc
- 然后寻找目标使用所拥有的poc(0day)
- 获得你想要的数据、权限
实例2:
漏洞类型:csrf漏洞
漏洞详情:
-
用户登录,修改账户资料界面,提交抓包
-
根据当前页面的表单构建poc,也可以直接在bp上面构建。
- 根据表单值构建poc,生成HTML文件(记住一定要用Unicode编码,不要用记事本写,被记事本啃死了)
-
将构建的poc页面发送给受害者,受害者在没有退出页面情况下打开链接,点击按钮。成功