网站重新建设的请示,单页网站制作程序,网站 68,南昌市做网站公司漏洞名称#xff1a;跨站请求伪造#xff08;CSRF#xff09;
漏洞描述#xff1a;
跨站请求伪造攻击#xff0c;Cross-Site Request Forgery#xff08;CSRF#xff09;#xff0c;攻击者在用户浏览网页时#xff0c;利用页面元素#xff08;例如img的src#xf…漏洞名称跨站请求伪造CSRF
漏洞描述
跨站请求伪造攻击Cross-Site Request ForgeryCSRF攻击者在用户浏览网页时利用页面元素例如img的src强迫受害者的浏览器向Web应用服务器发送一个改变用户信息的HTTP请求。CSRF攻击可以从站外和站内发起。从站内发起CSRF攻击需要利用网站本身的业务比如‚自定义头像‛功能恶意用户指定自己的头像URL是一个修改用户信息的链接当其他已登录用户浏览恶意用户头像时会自动向这个链接发送修改信息请求。从站外发送请求则需要恶意用户在自己的服务器上放一个自动提交修改个人信息的htm页面并把页面地址发给受害者用户受害者用户打开时会发起一个请求。
威胁描述攻击者使用CSRF攻击能够强迫用户向服务器发送请求导致用户信息被迫修改甚至可引发蠕虫攻击。如果恶意用户能够知道网站管理后台某项功能的URL就可以直接攻击管理员强迫管理员执行恶意用户定义的操作。
检测条件
1、 Web业务运行正常 2、 存在数据提交的所有功能点。
检测方法
一、 检测方式多种多样工具常常会扫描得到CSRF的漏洞但是一般常常为误报重点 还是依靠手工来进行检测以下来举例说明其中一种检测以及攻击方案
1、 设置页面test.htm中页面中有一个表单和一段脚本脚本的作用是当页面加载时浏览器会自动提交请求。页面代码如下
form idmodify actionhttp://www.test.com/servlet/modify
methodPOST
input nameemail
input nametel
input namerealname
input nameuserid
input typesubmit
/form
script
document.getElementById(modify).submit();
/script
2、 诱使用户在登录目标系统后执行URL链接http://xx.x.xx.xxx /test.htm 3、 用户打开test.htm后会自动提交表单发送给www.test.com下的那个存在CSRF漏洞的web应用用户信息被篡改。 4、 在整个攻击过程中受害者用户仅仅看到了一个空白页面可以伪造成其他无关页面并且一直不知道自己的信息已经被修改了。
修复方案
1、 通过referer判断页面来源进行CSRF防护该方式无法防止站内CSRF攻击及referer字段伪造。 2、 重要功能点使用动态验证码进行CSRF防护。 3、 通过token方式进行CSRF防护
3.1、 在Session中绑定token。如果不能保存到服务器端Session中则可以替代为保存到Cookie里。 3.2、 在 form 表 单 中 自 动 填 入 token 字 段 比 如 input typehidden nameanti_csrf_token value$token /。 3.3、 在HTTP请求中自动添加token。在服务器端对比POST提交参数的token与Session中绑定的token是否一致.
4、 为每个session创建唯一的随机字符串并在受理请求时验证
form action/transfer.do methodpost
input typehidden namerandomStr
value%request.getSession().getAttribute(randomStr)%
/form
//判断客户端提交的随机字符串是否正确
String randomStr (String)request.getParameter(randomStr);
if(randomStr null) randomStr;
if(randomStr.equals(request.getSession().getAttribute(randomStr)))
{//处理请求}
else{
//跨站请求攻击注销会话
}