CSRF(跨站请求伪造)漏洞 (带靶场演示+漏洞挖掘)

一、基本概念及原理

        什么是CSRF

                CSRF (Cross-Site Request Forgery) 是一种网络攻击,攻击者利用受害者的身份在受害者不知情的情况下执行未授权操作。这种攻击通常通过诱导受害者访问一个包含恶意请求的链接来实现,这些请求会被目标网站当作受害者的合法操作执行。

        CSRF攻击原理

                1、身份验证信任:用户在网站A上登录并具有有效的会话。
                2、诱导访问恶意网站:攻击者诱导用户访问恶意网站B。
                3、恶意请求:恶意网站B自动向网站A发送请求,利用用户的会话身份。
                4、操作执行:网站A接收并执行请求,认为这是合法用户的操作。

二、常见攻击方式

               1、 链接点击:攻击者通过邮件、社交媒体或其他方式发送包含恶意请求的链接,诱导用户点击。
                2、隐藏表单:在恶意网站上嵌入隐藏的表单,用户在不知情的情况下触发表单提交。
                3、自动提交表单:恶意网站使用JavaScript自动提交包含恶意请求的表单。
                4、图像加载:在恶意网站上嵌入图像标签,图像URL指向目标网站的恶意请求。
                5、跨域请求:利用XMLHttpRequest或Fetch API发送跨域请求,但这种方式在现代浏览器中通常会被同源策略和CORS限制。

三、防御措施

                1、CSRF Token:在每个敏感操作的请求中包含唯一的、不可预测的令牌。服务器验证该令牌以确保请求来自合法用户。

                2、SameSite Cookie 属性:设置 Cookie 的 SameSite 属性为 Strict 或 Lax,防止跨站请求携带 Cookie。

                3、双重提交 Cookie:在请求中发送一个 CSRF Token,同时在 Cookie 中存储相同的 Token,服务器验证这两个 Token 是否一致。

                4、验证 Referer 和 Origin 头:检查请求的 Referer 和 Origin 头是否来自可信任的域。

                5、定期重置 Session ID:减少会话被劫持的风险,确保会话令牌的安全性。

                6、用户交互确认:对敏感操作要求用户进行额外的确认,例如输入密码或验证码。

四、漏洞发现

        要判断一个网站是否存在CSRF漏洞,可以通过以下步骤进行测试:

                 1、检查敏感操作:识别网站中的敏感操作(如转账、修改密码、提交表单等)。

                 2、请求结构分析:分析这些操作的HTTP请求,尤其是POST请求,查看是否包含CSRF Token或其他防御措施。

                 3、构造恶意请求:构造一个恶意请求,尝试在用户已登录的情况下,利用另一个网站发送这个请求。例如,可以创建一个简单的HTML表单或JavaScript脚本,在提交时模拟敏感操作。

                4、测试恶意请求:

                        在浏览器中登录目标网站。
                        访问包含恶意请求的页面或脚本。
                        查看目标网站是否执行了恶意请求中的操作。
                5、检查CSRF防御:

                        如果敏感请求中没有CSRF Token,或者Token验证不严格,可能存在CSRF漏洞。
                        验证SameSite Cookie属性是否设置正确。
                        检查服务器是否验证Referer和Origin头。
                6、使用安全工具:使用专门的安全测试工具(如Burp Suite、OWASP ZAP等)进行自动化检测。

五、靶场演示

        pikachu实战

                打开pikachu靶场来到csrf(get),输入用户名和密码登录后发现修改密码出没有任何验证,可能存在csrf漏洞,利用csrf漏洞攻击修改用户资料(账户:Vince  密码:123456)                       
点击修改个人信息                                                                                                         ​​​​​​​点击submit,并且通过Burpsuite构造攻击,右键选择Engagement tools --> Generate CSRF Poc修改CSRF HTML 里面的信息 改成我们想要的。并且点击Test in browser复制url 并且在浏览器中打开(同一浏览器,新标签页)                                                                            关闭代理,查看用户修改后的内容                                                                                                        ​​​​​​​当用户点击了我们的恶意连接后,刷新一下你会发现用户信息改成我们想要的了,CSRF攻击成功                                          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值