CSRF
CSRF 跨站请求伪造
一般来说,攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。常用于盗取账号、转账、发送虚假消息等。攻击者利用网站对请求的验证漏洞而实现这样的攻击行为,网站能够确认请求来源于用户的浏览器,却不能验证请求是否源于用户的真实意愿下的操作行为。
1.CSRF攻击攻击原理及过程如下:
其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。
-
用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
-
在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
-
用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
-
网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
-
浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
2、CSRF漏洞检测
检测CSRF漏洞最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
随着对CSRF漏洞研究的不断深入,不断涌现出一些专门针对CSRF漏洞进行检测的工具,如CSRFTester,CSRF Request Builder等。
以CSRFTester工具为例,CSRF漏洞检测工具的测试原理如下:使用CSRFTester进行测试时,首先需要抓取我们在浏览器中访问过的所有链接以及所有的表单等信息,然后通过在CSRFTester中修改相应的表单等信息,重新提交,这相当于一次伪造客户端请求。如果修改后的测试请求成功被网站服务器接受,则说明存在CSRF漏洞,当然此款工具也可以被用来进行CSRF攻击。
3、防御CSRF攻击:
目前防御 CSRF 攻击主要有三种策略:
-
验证 HTTP Referer 字段;
-
在请求地址中添加 token 并验证;
-
在 HTTP 头中自定义属性并验证。
4.总结
①CSDF : 跨站脚本攻击。 ②原理: 用户A先访问了正常网站B,然后访问不安全网站C时,网站C伪造了用户A的行为请求网站B,导致网站B以为是用户A访问。实际是危险网站C伪造的访问,C就能乔办A访问和攻击A网站 ④处理办法: ==检验refer, ==添加字段token == 放到Http的boy里
SSRF
服务器请求伪造
1.造成ssrf的原因
有些web网站会提供从其他服务器上传数据的功能,会使用用户指定的url获取数据。由于对远程的url没有进行严格的过滤,所以攻击者可以通过该漏洞控制该web网站作为代理服务器攻击远程服务器或者该web的本地服务器。
危害:探测端口 读文件 甚至可以写文件
过滤:文件过滤
CSRF和SSRF的区别
CSRF 是跨站请求伪造攻击,由客户端发起;
SSRF 是服务器端请求伪造,由服务器发起;