三、因设置或设计上的缺陷引发的安全漏洞
指的是错误设置Web服务器,或是由设计上的一些问题引起的安全漏洞。
(一)强制浏览
强制浏览安全漏洞是指,从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。
对那些原本不愿公开的文件,为了保证安全会隐蔽其URL。可一旦知道了那些URL,也就意味着可浏览URL对应的文件。
以会员制度的日记功能为例即使没有对这篇日记的访问权限,只要知道这图片的URL,通过直接指定URL的方式就能显示该图片。日记的功能和文本具有访问对象的控制,但不具备对图片访问对象的控制,从而产生了安全漏洞。
(二)不正确的错误消息处理
Web应用的错误信息内包含对攻击者有用的信息。
Web应用不必在用户的浏览画面上展现详细的错误消息。对攻击者来说,详细的错误消息有可能给他们下一次攻击以提示。
认证功能的认证错误消息为例上方画面提示 “邮件地址未注册” 的错误消息。当输入的邮件地址尚未在该 Web 网站上注册时,就会触发这条错误消息。因为倘若邮件地址存在,应该会提示“输入的密码有误”之类的错误消息。
攻击者利用进行不同的输入会提示不同的错误信息这条,就可用来确认输入的邮件地址是否已在这个Web网站上注册过了。
为了不让错误消息给攻击者以启发,建议将提示消息的内容仅保留到 “认证错误” 这种程度即可。
(三)开放重定向
开放重定向,是一种对指定的任意 URL 作重定向跳转的功能。而与此功能相关联的安全漏洞是指,假如指定的重定向 URL 到某个具有恶意的Web网站,那么用户就会被诱导至那个Web网站。
案例:向URL指定参数后,使本来的URL发生重定向跳转
http://example.com/?redirect=http://www.tricorder.jp
攻击者把重定向指定的参数改写成已设好陷阱的Web网站对应的连接
http://example.com/?redirect=http://hackr.jp
四、因会话管理疏忽引发的安全漏洞
会话管理是用来管理用户状态的必备功能
(一)会话劫持
会话劫持 是指:攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。
会话劫持是窃取目标会话ID,为主动攻击手段。
具备认证功能的Web应用,使用会话ID的会话管理机制,作为管理认证状态的主流方式。会话ID中记录客户端的Cookie等信息,服务器端将会话ID与认证状态进行一对一匹配管理。
几种攻击者可获得会话ID的途径:
● 通过非正规的生成方法推测会话 ID
● 通过窃听或 XSS 攻击盗取会话 ID
● 通过会话固定攻击强行获取会话 ID
(二)会话固定攻击
会话固定攻击会强制用户使用攻击者指定的会话ID,属于被动攻击。
案例:这个Web网站的认证功能,会在认证前发布一个会话ID,若认证成功,就会在服务器内改变认证状态。
会话固定攻击(三)跨站点请求伪造(CSRF)
跨站点请求伪造攻击是指:攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
有可能会造成以下等影响:
●利用已通过认证的用户权限更新设定信息等
●利用已通过认证的用户权限购买商品
●利用已通过认证的用户权限在留言板上发表言论
案例:留言板功能,只允许已认证并登录的用户在留言板上发表内容。
跨站点请求伪造用户A是已认证状态,攻击者设置好一旦用户访问,即会发送在留言板上发表非主观行为产生的评论的请求的陷阱。用户A的浏览器执行完陷阱中的请求后,留言板上也就会留下那条评论。
如果用户A尚未通过认证,则无法利用用户A的身份权限在留言板上发表内容。
网友评论