owasp top10

top 1–注入

  1. 介绍
    简单来说,注入就是应用程序缺少对输入进行安全性检查所引起的,攻击者把一些包含指定的数据发给解释器,解释器会把收到指定的数据转化成指令执行。常见的注入包括sql注入,os ,ldap 等等,最常见的就是sql注入了。这种注入往往造成的危害很大,一般整个数据库的信息都能被读取或篡改。通过sql注入,攻击者很有可能获取更多的权限,包过管理员的权限。

  2. 危害
    注入能导致数据丢失或数据损害、缺乏审计或是拒绝服务。注入漏洞甚至可以完全控制主机。

  3. 防范
    使用安全的API,避免使用编辑器。
    对输入的特殊字符进行Escape转义处理。
    使用白名单来规范划的输入验证方法。

top 2–失效身份验证和会话管理

  1. 介绍
    与验证和会话管理相关的应用程序功能往往得不到正确的实施,这就导致攻击者破话密码、秘钥、会话令牌或利用漏洞冒充其他用户信息。
  2. 危害
    这些漏洞可能导致部分甚至全部账户遭受攻击。一旦攻击成功,攻击者会执行合法用户的一切操作。因此特权账户会造成更大的破坏。
  3. 防范
    使用内置的会话功能。
    通过认证问候:使用单一的入口点。
    确保一开始就登陆ssl保护的网页。

top 3–跨站

  1. 介绍
    跨站脚本是最常见的web应用安全漏洞。当应用程序在发送给浏览器的页面中包含用户提供的数据但没有经过适当验证或者转译,就会导致跨站脚本漏洞。

  2. 危害
    攻击者能在受害者的浏览器中执行脚本劫持用户会话、迫害网站、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器等等。

  3. 种类
    已知有三种著名漏洞:1.存储式 ,2. 反射式 ,3.基于DOM。
    反射式跨站脚本通过测试或代码分析很容易找到。

  4. 防范
    验证输入:检查每个输入的有效性。

top 4–不安全的对象直接引用

  1. 介绍
    所谓的“不安全的对象直接引用”,是指一个已经授权的用户,通过更改访问时的一个参数,从而访问到原本其并没有得到授权的对象。Web应用程序往往在生成web页面时会用他真实的名字,并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全对象直接引用的漏洞。

  2. 危害
    这种漏洞能危害所有参数引用的所有数据。除非名字空间很稀疏,否则攻击者很容易访问该类型的所有数据。

  3. 防范
    使用基于用户或会话的间接对象访问,这样能访问攻击者直接攻击未授权的资源。
    访问检查:对任何来自不受信任源所使用的所有直接对象引用都进行访问控制检测,这样才能确保用户对要求的对象有访问权限。
    避免在URL或网页中直接引用内部文件名或者数据库关键字。
    可使用自定义的映射名称来取代直接对象名。
    锁定网站服务器上的所有目录和文件夹,设置访问权限。
    验证用户输入和URL请求,拒绝包含/或…的请求。

top 5–伪造跨站请求(CSRF)

介绍:1.跨站请求伪造CSRF,是利用了网站允许攻击者预测特定的所有细节这一特点。由于浏览器自动发送会话cookie等认证凭证,导致攻击者能够创建恶意的web页面来产生伪造请求。这些伪造的请求很难和合法的请求分开。
2.CSRF听起来像跨站脚本(XSS),但它与XSS不同,并且攻击方式几乎相左。XSS利用站点内的新信任用户,而CSRF则通过伪装来自信任用户的请求来利用信任的网站。
危害:攻击者能够让受害者修改任何允许修改的数据,执行任何用户允许的操作。例如修改密码等一系列操作。

CSRF分类
1.GET型:如果一个网站某个地方的功能,比如用户修改邮箱密码是通过GET请求进行修改的。例:user.php?
[email protected],这个链接请求的是用户ID=123将邮箱密码改为[email protected]。当我们把这个链接修改为/user.php? [email protected],然后通过各种手段给被攻击者,诱使被攻击者点击所发链接,当用户刚好在访问这个网站,他同时又点击了这个链接,那么就伪造成功,密码就修改成[email protected]

2.POST型:在一般用户眼中,点击网页–打开学习视频–购买学习视频是一个正常不过的流程。可是在攻击者的眼中就不是那么回事了。在不正常的情况下,是在开发者安全意识不足所造成的。攻击者在购买处抓到购买时候网站处理购买用户资金的地址。通过提交表单,处理表单购买信息,伪造一个链接,用户访问后,表单自动提交,相当于用户完成一次POST的操作,导致受害者资金扣除。

CSRF漏洞挖掘
1.抓取一个正常的请求的数据包,如果没有Referer的字段和token,那么极有可能存在CSRF漏洞。
2.如果有referer字段,但是去掉referer字段后在提交,如果提交有效,那么基本可以确定存在CSRF漏洞。
3.利用工具进行CSRF检测。例:CSRFTESTER等。

使用burpsuite快速生成CSRF poc
当我们发现一个页面存在CSRF漏洞后,我们可以通过burpsuite快速生成攻击代码,然后复制,保存在本地。当受害者点击就执行了CSRF代码。

防御手段
1.验证http referer中记录的请求来源地址是否为合法用户地址(即最开始用户登录的来源地址)。当然这是最基本的防御,因为这个地址是可以人为篡改的。
2.重要功能使用动态验证码进行CSRF防护。
3.通过token方式进行CSRF防护,在服务器端对比POST提交参数的token与session中绑定的token是否一致,验证CSRF攻击
(1)在session中绑定token。如果不能保存到服务器端session中,则可以替代为保存到cookie里。
(2)在from表单中自动填入token字段。
(3)在HTTP请求中自动添加token。

top 6–安全误配置

介绍:安全配置错误可以发生在一个应用程序堆栈的任何层面,包括平台、web服务器、应用服务、数据库、架构和自定义代码。攻击者通过访问默认账户、未使用的网页、未安装补丁的漏洞、未被保护的文件和目录等,以获得对系统未授权的访问。

危害:系统可能存在未知的情况下被完全公婆,用户数据可能随着时间推移而被全部盗走或者篡改。甚至有时,或导致整个系统被破坏。

检测场景:1.应用程序启用或者安装了不必要的安全功能。
2.默认账户名和密码没有修改。
3.应用软件已经过期或易受攻击。
4.应用程序服务器未进行安全配置。

防御措施:1.配置所有的安全机制。
2.最小原则,关掉或限制不使用的服务。
3.修改默认账户信息。
4.使用日志和警报。
5.回显信息不显示任何与实际错误相关的信息。
6.西安西哈和修复安全配置项。

top 7–限制URL访问失败(缺少功能级访问控制)

介绍:这个漏洞事实上也是与认证相关的,与我们前面提到的top4不安全的直接对象引用也是类似的,不同在于这个漏洞是说系统已经对URL的访问做了限制,单这种限制缺实际并没有生效。常见的错误是,我们在用户认证后显示给用户认证过的页面和菜单选项,而实际上这些仅仅是表示层的访问控制而不能真正生效,攻击者能够很容易的就伪造请求直接访问未被授权的页面。

危害:攻击者很容易就按网址改成香油特权的页面,这样就可以使用匿名或普通用户访问未受保护的私人页面,从而提升未授权功能和相关数据信息。

测试方法:1.保证合法授权用户可以访问成功。 2.限制非法未授权用户访问。

危害:攻击者能够访问到正常用户访问的页面,将对所有用户的安全问题造成威胁。

防御措施:1.设计严格的权限控制系统,对于每个请求和URL都要进行校验和权限确认,防止非法请求被执行。
2.对于每个功能的访问,都要有明确的角色授权,采用过滤器的方式校验每个请求的合法性。
3.实现web访问的ip白名单列表,禁止不可信的ip访问web系统。

top 8–未验证的重定向和转发

介绍:在web应用中重定向是及其普遍的,并且通常重定向所引向的目的是带有用户输入参数的目的URL,而如果这些重定向未被验证,那么攻击者就可以引导用户访问他们所要用户访问的站点。同样,转发也是极为普遍的,本质上转发是在同一个应用中对衣蛾新页面发送请求,并且有时是用参数来定义目标页面的。同样,如果参数未被验证,那么攻击者可以利用其来绕过认证或是授权检查。

危害:攻击者通过重定向可以试图安装恶意软件或者诱使受害人泄密密码等敏感信息,通过转发可以绕过访问控制。

重定向的几种方式
1.手工重定向:点击href链接来跳转到新页面
2.响应状态码重定向:301–永久重定向;302–临时重定向;
3.服务器端重定向:修改web服务器配置文件或脚本来实现重定向
4.meta refresh:利用HTTP的refre标签或者响应偷refresh属性来设置
5.客户端跳转:利用url参数重定向,控制不严可能导致用户访问恶意网站

防御:重定向外部网站需要验证是否在白名单,转发内部网站要验证是否有权限,有权限才能进行转发。

top 9–应用一直脆弱性的组件

介绍:组件几乎总是以全部的权限运行的。如果一个带有漏洞的组件贝利用,这种攻击可以造成更为严重的数据丢失或服务器接管。应用程序使用带来有一直漏洞的组件会破话应用程序防御系统,并使一系列可能的攻击和影响成为可能。

防范
1.识别正在使用的组件和版本,包括所有依赖组件。
2.监控这些在公共数据库中、项目的邮件列表、以及安全邮件列表的组件的安全性,并保持他们更新到最新。
3.简历安全策略来管理组件的使用,如果需要一定法人软件开发实践,通过安全测试,和可接受的许可证。

top 10–敏感信息泄露

介绍:由于管理员或技术人员等各种原因导致敏感信息泄露。许多web应用程序和api都无法正确保护敏感数据,攻击者可以通过窃取或修改未加密的数据来进行诈骗、身份盗窃等违法行为。未加密的敏感数据容易遭到破坏,所以,我们需要对敏感数据加密,包括:传输数据、存储数据、交互数据。

检测方法:手工挖掘和工具挖掘

防范
1.针对个人数据,必须加密存储,使用加密算法
2.针对敏感数据传输,需要采用SSL加密通道
3.杜绝网站堆栈信息直接暴露在错误页面上

你可能感兴趣的:(安全,漏洞)