OWASP TOP 10 总结

一、注入(常见sql注入)

原理:违背了“数据与代码分离”原则。通过拼接sql语句获取敏感数据;。
(常见的注入包括sql注入,–os-shell,LDAP(轻量目录访问协议)xpath(XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言),HQL注入等。)

条件:数据没有经过程序的验证过滤
危害
注入可以导致数据丢失或被破坏,缺乏可审计性或拒绝服务。注入漏洞有时甚至可导致完全接管主机
防御
1、使用安全的api,避免使用解释器,使用预编译语句
2、转义敏感字符
例子:LIKE ‘%M%’ ESCAPE ‘M’
使用ESCAPE关键字定义了转义字符“M”,告诉DBMS将搜索字符串“%M%”中的第二个百分符(%)作为实际值,而不是通配符
3、设置白名单

二、失效的身份认证

原理:弱口令,密码泄露,暴力破解,明文密码
危害
这些漏洞可能导致部分甚至全部账户遭受攻击,一旦攻击成功,攻击者就能执行合法的任何操作
防御
1、使用多因素身份认证
2、不使用默认密码(弱口令)
3、加token(令牌)
4、加密
5、使用单一的入口点

三、敏感数据泄露

原理:中间人攻击,明文数据
方式:如burp抓包,修改后发包。
防御
1、所有敏感数据加密处理
2、确保传输过程中数据被加密(如使用https)
3、使用密码专用算法

四、XML外部实体(XXE)

原理:上传XML文档或者在 XML文档中添加恶意内容
防御
1、使用尽可能简单的数据格式(如json),避免对敏感数据进行序列化
2、服务器使用白名单进行输入验证,过滤等,防止出现恶意数据。

五、失效的访问控制

原理:通过对访问控制的利用实现权限绕过,提升权限
防御
1、基于角色的访问控制
2、使用最小权限
3、记录失败的访问控制,并适当时向管理员报警

六、安全配置错误

原理:够通过未修复的漏洞、 访问默认账户、不再使用的页面、未受保护的文件和目录等来取得对系统的未授权的访问或了解。
安全配置错误可以发生在一个应用程序堆栈的任何层面,包括平台,web服务器,应用服务器,数据库,架构和自定义的代码。攻击者通过访问默认账户,未使用的网页,未安装的补丁的漏洞,未被保护的文件和目录等,以获得对系统为授权的访问
危害
系统可能在未知的情况下被完全攻破,用户数据可能随着时间被全部盗走或篡改。甚至导致整个系统被完全破坏
防御
1、搭建最小平台,不要任何不必要的功能、组件、文档等
2、及时安装更新和补丁
3、实施漏洞扫描和安全审计

七、跨站脚本攻击(XSS)

原理:篡改网页,插入了恶意脚本,从而在用户浏览网页时,控制用户的浏览器。
跨站脚本是最普遍的web应用安全漏洞。当应用程序在发送给浏览器的页面中包含用户提供的数据,但没有经过适当验证和转义,就会导致跨站
种类:反射型、存储型、DOM型
危害:盗取session、账户(cookie)以及其他多种攻击,使用恶意软件劫持用户浏览器等
防御
1、(使用安全策略)如httpOnly解决XSS的COOKIE劫持
2、验证输入,将特殊字符编码或者过滤
3、编码输出(用来确保输入的字符被视为数据,而不是作为html被浏览器所解析)

八、不安全的反序列化

原理:把内存、文件、数据库中或者在网络通信中传输的文本格式或字节流格式还原成对象。
防御
1.对序列化对象执行完整性检查和加密处理,防止被恶意篡改和创建恶意对象。
2.反序列化过程之前执行严格的类型限制。
3.隔离反序列化的代码,将其放在低权限的状态下运行。
4.监视反序列化的过程。

九、使用含有已知漏洞的组件

原理:这些漏洞容易被攻击
防御
1、搭建最小平台
2、关注cve,cnvd这些 实时监控着
3、使用签名机制

十、不足的日志记录和监控

原理:管理员不在意危险log、
log未记录敏感事件、没有监控可疑事件、
防御
1、确保所有敏感事件记录到日志中
2、简历有效的监控机制

扫描二维码关注公众号,回复: 8943816 查看本文章
发布了35 篇原创文章 · 获赞 19 · 访问量 5212

猜你喜欢

转载自blog.csdn.net/zhangpen130/article/details/90201396