权限提升(Elevation of privilege)
授权(权限最小化、沙箱等)
处理过程权限提升
绕过认证机制仿冒合法用户访问系统
利用输入校验的漏洞,注入代码并引导系统执行
校验内容
- 是否所有输入信息在未验证前都默认为恶意数据?是否考虑格式、长度、大小、类型和范围的校验?
校验处理策略
-
输入校验是在客户端做的吗?服务端会重新做校验吗?
-
输入校验使用白名单还是黑名单?
-
是否支持集中式输入校验?
具体场景
-
需要传递给数据库的外部输入是否做了输入校验,以防止数据库访问过程中出现SQL注入?
-
是否使用了XML查询技术?如果是,是否进行了Xpath表达式的输入验证?
-
系统是否使用了LDAP技术?如果是,是否进行了LDAP查询的输入验证?
-
是否有防范缓冲区溢出的措施?对高危函数有没有做排查?
利用权限管理的缺陷越权
账号管理不当
-
产品是否提供了帐号管理功能?
-
产品有哪些类型的用户?不同的用户在权限上是否有差别?采用什么样的模型对用户进行权限管理的?
-
新建账号的默认权限是否最小化?
-
删除某账号时,与该账号相关的所有权限有没有清除?
-
是否存在一直不使用的默认账户?
权限控制不当
-
在设计系统架构时,有没有考虑权限分离的原则?
-
连接数据库的账号权限是否最小化?
-
程序的运行账户是否具有远程登录权限?
-
哪些角色能创建用户或修改用户权限?
-
系统服务是以什么权限运行的?
-
基于J2EE开发的应用是否使用了“拦截器(interceptor)”实现用户权限的控制?
-
授权操作是在客户端还是在服务端?
-
敏感特性操作的权限是否可以与其他操作的权限混合在一起授予同一个角色?