CSRF
(Cross-site request forgery,跨站请求伪造),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF称跨站请求伪造,XSS就是CSRF中的一种。二者区别,XSS利用的是用户对指定网站的信任,CSRF利用是网站对用户浏览器的信任。
发生条件
当用户在安全网站A登录后保持登录的状态,并在此时浏览了保存有恶意代码的另一个网站B。此时B站劫持用户的浏览器并以用户以登录的状态对A站发送非用户本人的操作。当服务端没有对这次请求验证的情况下,将这次操作作为可信任的用户的操作。
发生地点
攻击者可以将恶意网址或者代码藏在论坛博客等任何用户生成内容的网中。这意味着如果服务端没有适合的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。
防御
增加验证码机制,增加带有大量噪点的验证码,杜绝代码能够识别的简单验证码,当然了也经常被绕过验证referer,采用同源政策,referer记录着数据包的来源地址,来判断请求的合法性,但是这个可以伪造 使用Token,令牌是一种将表单value的加密算法生成不同的加密结果,在服务器端进行验证。在访问登录过一个网站,点击退出账户。
SSRF
(Server-side Request Forge, 服务端请求伪造)。由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务。有的大型网站在web应用上提供了从其他服务器获取数据的功能。使用户指定的URL web应用获取图片,下载文件,读取文件内容。攻击者利用有缺陷的web应用作为代理攻击远程和内网的服务器(跳板)
危害:
可对外网,服务器所在内网,受控服务器进行端口扫描,获取一些banner对内网web应用进行指纹识别,通过访问默认文件实现攻击内外网web应用,主要是使用get参数就可以实现分攻击利用file协议读取本地文件。
修复方案:
过滤返回信息,如果web应用数去获取某一类型文件,在把结果返回给用户之前先验证信息是否符合标准。 例如:当攻击者利用"识别图片"下的该漏洞远程包含一个文件,可以通过在服务器上验证返回数据是否是纯像素,来进行过滤。 统一错误页限制请求端口为http常用端口 80,443,8080,8090 内网IP黑名单,避免应用被用来获取内网数据,攻击内网