- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五组与密码相关的五种漏洞
1 SQL注入漏洞
SQL注入攻击(SQL Injection),简称注入攻击,SQL注入是web开发中最常见的一种安全漏洞。SQL注入漏洞可以用来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统最高权限
SQL注入漏洞原理
由于程序没有过滤用户的输入,攻击者通过响服务器提交恶意的SQL查询语句,应用程序接收后错误的将攻击者的输入作为原始SQL查询语句的一部分执行,导致改变了程序原始的SQL查询逻辑,额外的执行了攻击者构造的SQL查询语句
SQL注入的位置
无论是内网环境还是外网环境(互联网),B/S架构的Web应用(以下指网站)都直接或者间接地受到各种类型的Web攻击的影响。
对于后台数据库来说,以SQL注入攻击危害最为普遍,由于网站服务端语言自身的缺陷与程序员编写代码的安全意识不足,攻击者可以将恶意SQL语句注入到正常的数据库操作指令中去,从而使该恶意SQL语句在后台数据库中被解析执行。在SQL注入攻击之前,首先要找到网站中各类与数据库形成交互的输入点。通常情况下,一个网站的输入点包括:
1. 表单提交,主要是POST请求,也包括GET请求。
2. URL参数提交,主要为GET请求参数。
3. Cookie参数提交。
4. HTTP请求头部的一些可修改的值,比如Referer、User_Agent等。
5. 一些边缘的输入点,比如.mp3文件的一些文件信息等。
服务端从客户端直接或间接获取数据的过程都是一次输入过程,无论直接或间接,默认情况下输入的数据都应该认为是不安全的。
上面列举的几类输入点,只要任何一点存在过滤不严,过滤缺陷等问题,都有可能发生SQL注入攻击。大多数情况下,SQL注入的过程都是由工具完成的,其中包括大批量注入工具的使用。
2 Heartbleed漏洞
漏洞描述
Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
获取密码
2014年4月9日,Heartbleed(意为“心脏出血”)的重大安全漏洞被曝光,一位安全行业人士在知乎上透露,他在某著名电商网站上用这个漏洞尝试读取数据,在读取200次后,获得了40多个用户名、7个密码,用这些密码,他成功地登录了该网站。
入侵技术
SSL(安全套接层)协议是使用最为普遍网站加密技术,而OpenSSL则是开源的 SSL 套件,为全球成千上万的web服务器所使用。Web服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加密。URL中使用 https打头的连接都采用了SSL加密技术。在线购物、网银等活动均采用SSL技术来防止窃密及避免中间人攻击。
Heartbleed漏洞之所以得名,是因为用于安全传输层协议(TLS)及数据包传输层安全协议(DTLS)的 Heartbeat扩展存在漏洞。Heartbeat扩展为TLS/DTLS提供了一种新的简便的连接保持方式,但由于OpenSSL 1.0.2-beta与OpenSSL 1.0.1在处理TLS heartbeat扩展时的边界错误,攻击者可以利用漏洞披露连接的客户端或服务器的存储器内容,导致攻击者不仅可以读取其中机密的加密数据,还能盗走用于加密的密钥。
3 密码重置漏洞
密码重置功能是一些常见漏洞的起因。例如用户名枚举漏洞(数据库中用户名不存在和密码错误显示不同的错误信息),敏感信息泄露(把明文密码通过e-mail发送给用户)重置密码消息劫持(攻击会者接收到密码重置信息)这些都是在密码重置功能中比较常见的漏洞。
很多开发者都不能真正了解密码重置所能引发的危害,而这个博客文章告诉大家一些不遵守基本安全准则的开发人员所开发的密码重置功能会带来哪些危害。
举个例子,一个健壮的密码恢重置功能会生成一个令牌,并通过电子邮件发送一个包含令牌的重置密码连接给用户。
令牌应具有以下特征:
包含64个字符或者更多
唯一性
随机性
一次性
拥有较短寿命(比如在24小时内到期)
当用户点击该链接时,应用程序必须检查令牌是否有效。
如果令牌有效,应用程序必须注销这个令牌,以便它不能被重用,并允许用户更改自己的密码。
此外,如果用户试图第二次重置密码,在完成第一次重置过程之前,应用程序必须废止旧的密码重置请求并生成一个新的重置请求。
为了提高安全性,也可以使用双重的用户身份认证(但并不是必须使用)。
比如,要求用户回答之前填写的隐私问题(比如我的大姨妈的名字是神马)或确认发送到用户手机的验证码。
现在,让我们分析一
文档评论(0)