struts|Web常见的漏洞描述与修复方案( 四 )


4、验证码必须在服务器端进行校验 , 客户端的一切校验都是不安全的 。
12.越权访问漏洞描述
由于没有对用户访问角色的权限进行严格的检查及限制 , 导致当前账号可对其他账号进行相关操作 , 如查看、修改等 。 对低权限对高权限账户的操作为纵向越权 , 相同权限账户之间的操作成为横向越权也称水平越权 。
修复建议
1、对用户访问角色的权限进行严格的检查及限制 。
2、在一些操作时可以使用session对用户的身份进行判断和控制
13.未授权访问漏洞描述
由于没有对网站敏感页面进行登录状态、访问权限的检查 , 导致攻击者可未授权访问 , 获取敏感信息及进行未授权操作 。
修复建议
1、页面进行严格的访问权限的控制以及对访问角色进行权限检查 。
2、可以使用session对用户的身份进行判断和控制 。
14.列目录漏洞描述
由于web服务器配置不当 , 开启了目录浏览 , 攻击者可获得服务器上的文件目录结构 , 获取敏感文件 。
修复建议
1、通过修改配置文件 , 禁止中间件(如IIS、apache、tomcat)的文件目录索引功能
2、设置目录访问权限
15.PHP反序列化漏洞描述
php反序列化漏洞也叫PHP对象注入 , 形成原因为程序未对用户输入的序列化字符串进行检测 , 导致攻击者可以控制反序列化过程 , 从而导致代码执行、文件操作、执行数据库操作等不可控后果 。 这一类攻击在java、python等面向对象语言中均存在 。
修复建议
1、对传入的对象进行严格的过滤检查
2、在反序列化过程执行的文件读写、命令或代码执行函数中是否有用户可控的参数 。
16.http slow拒绝服务攻击漏洞描述
按照设计 , HTTP协议要求服务器在处理之前完全接收请求 。如果HTTP请求没有完成 , 或者传输速率非常低 , 服务器会保持其资源忙于等待其余数据 。 如果服务器保持太多的资源请求和处理 , 这将造成一个拒绝服务 。 严重者一台主机即可让web运行缓慢甚至是崩溃 。
修复建议
对于 Apache 可以做以下优化(其他服务器原理相同):
1、设置合适的 timeout 时间(Apache 已默认启用了 reqtimeout 模块) , 规定了 Header 发送的时间以及频率和 Body 发送的时间以及频率
2、增大 MaxClients(MaxRequestWorkers):增加最大的连接数 。 根据官方文档 , 两个参数是一回事 , 版本不同 , MaxRequestWorkers was called MaxClients before version 2.3.13.Theold name is still supported.
3、默认安装的 Apache 存在 Slow Attack 的威胁 , 原因就是虽然设置的 timeoute , 但是最大连接数不够 , 如果攻击的请求频率足够大 , 仍然会占满Apache的所有连接
17.CRLF注入漏洞描述
CRLF 是“回车 +换行”(\\r\)的简称 。 在 HTTP 协议中 , HTTPHeader 与 HTTP Body 是用两个 CRLF 符号进行分隔的 , 浏览器根据这两个 CRLF 符号来获取 HTTP 内容并显示 。 因此 , 一旦攻击者能够控制 HTTP 消息头中的字符 , 注入一些恶意的换行 , 就能注入一些会话 Cookie 或者 HTML 代码 。
修复建议
1、过滤 \\r 、\ 及其各种编码的换行符 , 避免输入的数据污染到其他 HTTP 消息头 。
18.LDAP注入漏洞描述
由于Web 应用程序没有对用户发送的数据进行适当过滤和检查 , 攻击者可修改LDAP 语句的结构 , 并且以数据库服务器、Web 服务器等的权限执行任意命令 , 许可权可能会允许查询、修改或除去 LDAP 树状构造内任何数据 。
修复建议
对用户的输入内容进行严格的过滤 。
19.URL 跳转漏洞描述
有的Web 应用程序中使用URL参数中的地址作为跳转链接的功能, 攻击者可实施钓鱼、恶意网站跳转等攻击 。