CSRF漏洞,是指伪造跨站代码请求,来达到攻击目的。具体的攻击步骤如下:
黑客发现CSRF漏洞——伪造跨站代码——发送给用户——用户打开——用户执行伪造的代码——完
成攻击
本来是想以程序代码的安全审计来讲的,发现很多人不懂PHP代码。就懒得写代码的安全审计了。
简单来说,在用户进行正常的操作请求时,服务端并没有判断用户发送的请求是否是用户本身发送
的。服务端接受到了来自某个cookie用户发送来的请求,就当成一个正常的请求来执行了。但是可
能是网站本身存在CSRF漏洞。如下图所示:
CSRF,跨站请求伪造,在受害者通过浏览器打开某个恶意URL的时候,通过伪造请求达到跨站请求
伪造(常见于一些商城交互类网站或者自己开发的程序代码)
用我自己的理解来说一下这个漏洞,简单来说这个漏洞就是攻击者在网站的html页面里伪造了
一个表单,然后GET POST到存在漏洞的网站里。大部分网站都用用过cookies作为一个用户的判断
,大家听过cookie这个词吧?这是服务端判断用户身份的一个标识。下面来说一下CSRF攻击的形式
。Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站安全测试、于一体的安全服务提供商。
利用CSRF漏洞,会对网站以及用户有什么危害呢?
1. 配合XSS漏洞可造成蠕虫病毒攻击。
2. 可以更改用户的密码
3. 更改(商城ecshop等开源程序)用户收货地址
用户所有可以在网站操作的,黑客都可以利用CSRF漏洞去操作。只需要构造PoC代码,伪造请求
让受害者点击就可以执行漏洞。
简单点来说,B以A的身份执行了A可以执行的操作,当然,我们这里B是黑客,A是用户。
CSRF漏洞修复安全建议
通过token或者session来判断当前用户身份,检查POST来路Referer,在POST的信息中加
token机制。
用户的一些敏感操作需要验证码,更改密码需要验证之前的老密码。
验证HTTP Referer字段
在请求地址中添加token并验证
在HTTP头中自定义属性并验证