OWASP TOP 10
13年版已升级-2017版本
2:腾讯PPT2
3.博客园 https://www.cnblogs.com/MI6plus/p/11488609.html
-什么是OWASP
OWASP:非盈利组织开放式Web应用安全项目- Open Web Application Security Project,目前全球有130个分会近万名会员,其主要目标是研议协助解决Web软体安全之 标准、工具与技术文件,长期致力于协助政府或企业了解并改善网页应用程式与网页服务的安全性。
最出名的是:
OWASP TOP 10=“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
OWASP TOP 变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0QNEuyoU-1617283081329)(C:\Users\Dell\AppData\Roaming\Typora\typora-user-images\image-20200613011531545.png)]
OWASP存在原因
复杂的应用越来越多,开发者的能力也参差不齐,间接导致了应用程序存在安全风险。攻击者可以通过应用程序中许多不同的路径 方法去危害您的业务或者企业组织。每种路径方法都代表了一种风险, 这些风险可能会,也有可能不会严重到值得您去关注。
-什么是OWASP TOP 10
A1注入(injection)
将不安全的命令作为命令发送给解析器,会产生类似于
SQL注入、NoSQL注入、OS注入和LDAP注入
(轻量目录访问协议) 的缺陷,攻击者可以构造恶意数据
通过注入缺陷的解析器执行没有权限的非预期命令
或访问数据
。
常见的就是SQL注入
-SQL注入
原理:把SQL命令插入到Web提交表单或者输入域名或者页面请求的 查询字符串中去,最终欺骗服务器执行恶意的SQL命令。
//不被信任的应用程序发生的不可信数据诱解命令或者越权访问数据。
存在原因:1)没有输入过滤。2)没有转义输出。
建议:1)对数字类型参数——数字类型变换,再代入。
2)过滤一些参数(GET/POST中对于SQL语言查询部分)
3)对用户输入检查——特别字符,单引号双引号分号逗号冒号等——转换或过滤。
4)使用白名单
方式思路 :
1)找到注入位置——2)判断服务器和数据库类型——3)对特点进行SQL注入攻击。
A2失效的身份认证
通过错误使用应用程序的
身份认证
和会话管理功能
,攻击者能够
破译密码
、密钥
或会话令牌
,或者暂时
或永久
的冒充其他用户的身份。
原理:利用与认证和会话管理相关的应用程序功能得不到正确实施,导致攻击者破坏密码,密钥,会话令牌或实施漏洞冒充其他用户身份。
建议:1)使用内置的会话管理功能
2)通过认证的问候
3)使用单一的入口点
4)确保在一开始登录SSL保护的网页
A3 敏感数据泄露
这个比较好理解,一般我们的敏感信息包括
密码
、财务数据
、医疗数据
等,由于web应用或者API
未加密
或不正确的保护敏感数据
,这些数据极易遭到攻击者利用,攻击者可能使用这些数据来进行一些犯罪行为,因此,未加密的信息极易遭到破坏和利用,我们应该加强对敏感数据的保护,web应用应该在传输过程中数据、存储的数据以及和浏览器的交互时的数据进行加密,保证数据安全。
原理:由于管理员或者技术人员等各种原因导致敏感信息泄露
修复方案:1)对信息加密,运用加密和算法
2)分类进行数据管理
3)及时清除和标记数据
4)禁止对数据的响应
A4外部实体(XXE)
XXE 全称为XML External Entity attack 即XML(可扩展标记语言) 外部实体注入攻击,早期或配置错误的XML处理器评估了XML文件外部实体引用,攻击者可以利用这个漏洞窃取URI(统一资源标识符)文件处理器的
内部文件
和共享文件
、监听内部扫描端口
、执行远程代码
和实施拒绝服务攻击。
建议:
1)注意数据格式
2)及时修复和更新应用
3)服务器过滤数据
A5失效的访问控制
通过
身份验证
的用户,可以访问其他用户的相关信息,没有实施恰当的访问权限。攻击者可以利用这个漏洞去查看未授权的功能和数据,eg:访问用户的账户
、敏感文件
、获取和正常用户相同的权限
等.
原理:这个漏洞也是与认证相关的,这种漏洞具体是指在系统已经对url的访问做了限制的情况下,但这种限制并没有生效。
常见:1)系统没有对用户进行角色的检查
2)用户通过修改URL的action并指向未被授权页面就能访问该页面同样是个漏洞
还是与越权有关。
修复方案:
1.检查管理权限的过程并确保能够容易进行升级和审计
2.默认缺省情况下,拒绝访问。并且及时删除无用。
对于每个功能得访问,需要明确的角色授权。
3.检查每个功能分配的权限合理有效。
A6 安全配置错误
安全配置错误是比较常见的漏洞,由于操作者的
不当配置
(默认配置,临时配置,开源云存储,http标头配置,以及包含敏感信息的详细错误),导致攻击者可以利用这些配置获取到更高的权限,安全配置错误可以发生在各个层面,包含平台、web服务器、应用服务器、数据库、架构和代码。
原理:安全配置错误可以发生在一个应用程序堆栈的任何层面,
包括平台,web服务器,应用服务器,数据库,架构和自定义的代码。
攻击者通过访问默认账户,未使用的网页,未安装的补丁的漏洞,未被保护的文件和目录等,以获得对系统为授权的访问
修复方案:
1.自动化安装部署
2.及时了解并部署每个环节的 软件更新和补丁信息
3.实施漏洞扫描和安全审计
A7 跨站脚本(xss)
xss攻击全称为跨站脚本攻击,跨站脚本攻击的英文全称是Cross Site Script,为了和样式表区分,缩写为XSS。
当应用程序的新网页中包含
不受信任的
、未经恰当验证
、转义的数据
或可以使用HTML、JavaScript的浏览器API更新的现有网页
时,就会出现xss漏洞,跨站脚本攻击是最普遍
的web应用安全漏洞,甚至在某些安全平台都存在xss漏洞。xss会执行攻击者在浏览器中执行的脚本,并劫持用户会话,破坏网站或用户重定向到恶意站点,使用xss还可以执行拒绝服务攻击。
原理:
发生的原因是网站将用户输入的内容输出到页面上,在这个过程中可能有恶意代码被浏览器执行。
跨站脚本攻击,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。
已知的跨站脚本攻击漏洞有三种:
1)存储式;2)反射式;3)基于DOM。
1、 存储型跨站脚本攻击涉及的功能点:用户输入的文本信息保存到数据库中,并能够在页面展示的功能点,例如用户留言、发送站内消息、个人信息修改等功能点。
2、 反射型跨站脚本攻击涉及的功能点:URL参数需要在页面显示的功能点都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能点。
3、 基于DOM跨站脚本攻击涉及的功能点:涉及DOM对象的页面程序,包括(不限这些):
修复方案: 总体修复方式:验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。具体如下 :
1、 输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。
2、 输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。
3、 明确指定输出的编码方式:不要允许攻击者为你的用户选择编码方式(如ISO 8859-1或 UTF 8)。
4、 注意黑名单验证方式的局限性:仅仅查找或替换一些字符(如"<" ">"或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。
5、 警惕规范化错误:验证输入之前,必须进行解码及规范化以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。对客户端提交的数据进行过滤,一般建议过滤掉双引号(”)、尖括号(<、>)等特殊字符,或者对客户端提交的数据中包含的特殊字符进行实体转换,比如将双引号(”)转换成其实体形式",<对应的实体形式是<,<对应的实体形式是>以下为需过滤的常见字符:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zhaHrjR3-1617283081331)(C:\Users\Dell\AppData\Roaming\Typora\typora-user-images\image-20200613014910571.png)]
A8不安全的反序列化
A9使用含有已知漏洞的组件
组件(eg:库、框架或其他软件模块)拥有应用程序相同的权限,如果应用程序中含有已知漏洞,攻击者可以利用漏洞获取数据或接管服务器。同时,使用这些组件会破坏应用程序防御,造成各种攻击产生严重的后果。
原理:应用程序使用带有已知漏洞的组件会破坏应用程序防御系统,可能导致严重的数据丢失或服务器接管。
修复方案:
1.识别:正在使用的组件和版本,包括所有的依赖
2.更新:组件或引用的库文件到最新
3.建立安全策略:管理组件的使用
A10 不足的日志记录和监控
这个和等保有一定的关系,不作介绍,
不足的日志记录
和监控
,以及事件响应缺失
或无效的集成
,使攻击者能够进一步攻击系统、保持持续性的或攻击更多的系统,以及对数据的不当操作。会造成数据丢失,服务器被接管等危害。
:*
1.识别:正在使用的组件和版本,包括所有的依赖
2.更新:组件或引用的库文件到最新
3.建立安全策略:管理组件的使用
A10 不足的日志记录和监控
这个和等保有一定的关系,不作介绍,
不足的日志记录
和监控
,以及事件响应缺失
或无效的集成
,使攻击者能够进一步攻击系统、保持持续性的或攻击更多的系统,以及对数据的不当操作。会造成数据丢失,服务器被接管等危害。