点击蓝字
关注我们
始于理论,源于实践,终于实战
老付话安全,每天一点点
激情永无限,进步看得见
什么是跨站请求伪造CSRF
攻击者能够利用受害者已经登录的状态,发送伪造的请求,从而达到恶意目的。其实主要依赖于Web应用程序对用户浏览器的信任。具体来说,CSRF攻击利用了用户在某个网站上的认证状态,诱使用户的浏览器向该网站发送未经用户授权的请求
CSRF攻击原理
-
用户登录受信任的网站:用户在受信任的网站(例如银行网站)上登录,并获得一个会话标识(如Cookie)。利用会话Cookie,应用程序使用会话Cookie来跟踪用户会话。当用户登录后,服务器会在用户浏览器中设置一个会话Cookie。
-
用户访问恶意网站:攻击者诱导用户访问一个恶意网站。恶意网站可以利用这一点,通过用户的浏览器发送请求,这些请求会自动附带用户的会话Cookie。
-
恶意网站发送请求到受信任的网站:恶意网站利用用户的登录状态,向受信任的网站发送一个请求(例如转账请求)。攻击者可以在恶意网站上放置一个隐藏的表单或JavaScript代码,这些代码会在用户访问恶意网站时自动提交请求到受信任的网站。例如,一个隐藏的表单可能会提交一个转账请求。
-
受信任的网站处理请求:由于请求中包含了用户的会话标识,受信任的网站认为这个请求是合法的,并执行相应操作。当用户访问恶意网站时,恶意网站会自动触发请求。由于浏览器会自动附带用户的会话Cookie,受信任的网站会认为这个请求是合法的,并执行相应操作。
CSRF 攻击能否成功是有条件的
-
应用程序中存在攻击者能够诱发的操作。这可能是特权操作(例如修改其他用户的权限)或对用户特定数据的任何操作(例如更改用户自己的密码)。
-
基于 Cookie 的会话处理,执行该操作涉及发出一个或多个 HTTP 请求,并且应用程序仅依赖会话 Cookie 来识别发出请求的用户。没有其他机制可用于跟踪会话或验证用户请求。
-
执行该操作的请求不包含攻击者无法确定或猜测其值的任何参数。例如,当导致用户更改其密码时,如果攻击者需要知道现有密码的值,则该函数不易受到攻击。
跨站点请求伪造攻击的传递机制与反射型 XSS 基本相同。通常攻击者会将恶意 HTML 放置在他们控制的网站上,然后诱使受害者访问该网站。或者通过电子邮件或社交媒体消息向用户提供网站链接来完成。亦或者如果攻击被放置在一个受欢迎的网站中(例如,在用户评论中),等待用户访问该网站即可。
END
老付
欢迎扫码
关注我们
网络安全
原文始发于微信公众号(老付话安全):跨站请求伪造 (CSRF)漏洞利用原理
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论