【从入门到放弃系列学习笔记2】web应用安全基础整理-OWSAP TOP 10
想想自己这些问题都掌握了吗?
问题一:web应用的安全模型中是输入的安全隐患多还是输出的安全隐患多?
问题二:常见的web应用安全威胁分为哪两种?分别有哪些?
问题三:OWASP TOP10具体有哪些?如何防范?
问题四:CSRF和XSS的区别是什么?
UPDATING。。。
一、web应用安全模型“输入-处理-输出”模型

什么是OWASP Top 10?
OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
OWASP Top 10 官网链接:https://owasp.org/www-project-top-ten/
The OWASP Top 10 is a standard awareness document for developers and web application security. It represents a broad consensus about the most critical security risks to web applications.
- A1 注入injection
- A2 失效的身份认证
- A3 敏感信息泄露
- A4 XML外部实体(XXE)
- A5 失效的访问控制
- A6 安全配置错误
- A7 跨站脚本(xss)
- A8 不安全的反序列化
- A9 使用含有已知漏洞的组件
- A10 不足的日志记录和监控
二、OWASP Top 1 - 注入
HTML、HTTP和SQL等Web应用都采用了文本格式的接口。多数情况下,数据部分会通过使用引号或使用被称为分隔符的符号隔开。
如果应用存在安全隐患,通过更改SQL语句(或其他的文本语句)的结构,注入解释器实现一些恶意的操作。
SQL注入的危害
- 数据库内的信息全部被外界获取(脱库)
- 数据库中的内容被篡改
- 登录认证被绕过
- 其他(对服务器上的程序进行修改)
影响巨大。。。
攻击方法:
- 错误信息导致的信息泄露
- union select 导致信息泄露
- 'or '1'='1绕过认证
- ;update 篡改数据
- 其他:修改文件、程序
对策:
- 使用占位符拼接SQL语句
含有静态占位符的SQL语句被直接发送至数据库引擎,数据库引擎执行编译等工作后确定SQL语句后将其执行
- 在应用层拼接SQL语句时,要确保字面量被正确处理,sql语句不被更改
推荐占位符方式,成本低
三、OWASP Top 2 - 失效的身份认证
通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者暂时或永久的冒充其他用户的身份。
如:
- 爆破
- 冒充cookie
四、OWASP Top 3 - 敏感信息泄露
这个比较好理解,一般我们的敏感信息包括密码、财务数据、医疗数据等,由于web应用或者API未加密或不正确的保护敏感数据,这些数据极易遭到攻击者利用,攻击者可能使用这些数据来进行一些犯罪行为,因此,未加密的信息极易遭到破坏和利用,我们应该加强对敏感数据的保护,web应用应该在传输过程中数据、存储的数据以及和浏览器的交互时的数据进行加密,保证数据安全。
五、OWASP Top 4 - XML外部实体(XXE)
XXE 全称为XML External Entity attack 即XML(可扩展标记语言) 外部实体注入攻击,早期或配置错误的XML处理器评估了XML文件外部实体引用,攻击者可以利用这个漏洞窃取URI(统一资源标识符)文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击
六、OWASP Top 5 - 失效的访问控制
通过身份验证的用户,可以访问其他用户的相关信息,没有实施恰当的访问权限。攻击者可以利用这个漏洞去查看未授权的功能和数据,
eg:访问用户的账户、敏感文件、获取和正常用户相同的权限等.
七、OWASP Top 6 - 安全配置错误
安全配置错误是比较常见的漏洞,由于操作者的不当配置(默认配置,临时配置,开源云存储,http标头配置,以及包含敏感信息的详细错误),导致攻击者可以利用这些配置获取到更高的权限,安全配置错误可以发生在各个层面,包含平台、web服务器、应用服务器、数据库、架构和代码。
八、OWASP Top 7 - 跨站脚本(xss)
xss攻击全称为跨站脚本攻击,当应用程序的新网页中包含不受信任的、未经恰当验证、转义的数据或可以使用HTML、JavaScript的浏览器API更新的现有网页时,就会出现xss漏洞,跨站脚本攻击是最普遍的web应用安全漏洞,甚至在某些安全平台都存在xss漏洞
总结一下,就是说,针对一些web显示是会根据外界输入值而发生变化的情况,如果存在问题,会滋生跨站脚本的安全隐患。
常见两大类型:
- 反射型(钓鱼)XSS,攻击代码位于攻击目标之外的站点
- 存储型XSS,攻击代码在目标对象的数据库中
产生的危害:
- xss会执行攻击者在浏览器中执行的脚本,并劫持用户会话
- 破坏网站或用户重定向到恶意站点
- 使用xss还可以执行拒绝服务攻击。
如何防范?
输入内容要做java脚本的禁用校验
特殊字符的控制,转义,注释,边界符
九、OWASP Top 8 - 不安全的反序列化
不安全的反序列化可以导致远程代码执行、重放攻击、注入攻击或特权升级攻击
十、OWASP Top 9 - 使用含有已知漏洞的组件
组件(eg:库、框架或其他软件模块)拥有应用程序相同的权限,如果应用程序中含有已知漏洞,攻击者可以利用漏洞获取数据或接管服务器。同时,使用这些组件会破坏应用程序防御,造成各种攻击产生严重的后果。
十一、OWASP Top 10 - 不足的日志记录和监控
这个和等保有一定的关系,不作介绍,不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性的或攻击更多的系统,以及对数据的不当操作。

浙公网安备 33010602011771号