WEB常见安全漏洞讲解_第1页
WEB常见安全漏洞讲解_第2页
WEB常见安全漏洞讲解_第3页
WEB常见安全漏洞讲解_第4页
WEB常见安全漏洞讲解_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WEB常见安全漏洞讲解Ana资产资产应用程序安全风险攻击攻击攻击控制控制控制功能影响影响影响漏洞漏洞漏洞漏洞 攻击者 攻击向量安全漏洞 安全控制 技术影响 业务影响攻击攻击漏洞漏洞功能资产影响影响攻击漏洞漏洞注入跨站脚本失效的身份认证和会话管理不安全的直接对象引用跨站请求伪造安全配置错误功能级访问控制缺失未验证的重定向和转发敏感信息泄露使用含有已知漏洞的组件OWASP TOP 10 漏OP-1 注入原因:应用程序缺少对输入进行安全性设计。方式:攻击者将一些包含指令的数据发送给解释器,欺骗解释器执行计划外的命令。危害:读取或篡改数据库的信息,甚至能够获得服务器的包括管理

2、员的权限。TOP-1 注入什么是SQL注入?通过把SQL命令 用户提交的数据中, 代码原有SQL语句的语义,从而达到 服务器 恶意的SQL命令。插入改变控制执行可以插入SQL语句并执行TOP-1 注入应用程序在下面存在漏洞的 SQL语句的构造中使用不可信数据:String query = SELECT * FROM accounts WHERE custID= + request.getParameter(id) +; 攻击者在浏览器中将“ id ”参数的值修改成 10000 or 1=1。 如:http:/ accounts表中返回所有的记录。SELECT * FROM accounts W

3、HERE custID= 10000 ;SELECT * FROM accounts WHERE custID= ;漏洞案例10000 or 1=1TOP-1 注入如何识别SQL注入 数字型数字型 单引号: http:/ 提示错误 逻辑真假:http:/ and 1=1 返回正确 http:/ and 1=2 返回错误 加减符号:http:/ 返回与id=1相等字符型字符型 单引号: http:/ 提示错误 逻辑真假:http:/ and a=a 返回正确 http:/ and a=b 返回错误 加减符号:http:/ 返回与name=petter相同搜索型搜索型 单引号: http:/ 提示

4、错误 逻辑真假:http:/ and %= 返回查询1的内容 http:/ and %1= 无内容返回或不是1的内容 TOP-1 注入 防范11 参数校验:参数校验: 传递的参数做校验,如果不合法,直接拒绝请求。 1.1 如果是数字类型,判断是否为数字,如果不是,直接拒绝请求 1.2 如果有格式的类型(比如 日期,email,电话,身份证号码等等),判断是非符合格式,如果不符合格式,拒绝请求。 1.3 如果是字符串类型,没有特殊的格式,需要对字符串长度做校验,如果长度大于数据库该字段的定义长度,直接拒绝请求。 比如 姓名,数据库定义的事 varchar(12),如果输入超过12个字符,直接拒绝

5、请求2 2 使用使用 PrepareStatementPrepareStatement。PrepareStament可以有效防御sql注入攻击。 PrepareStatement原理是:mysql执行树会根据预设的参数做转义,可以把注入的sql当作一个参数执行,而不会当作语句执行 php 应用, 可以使用PrepareStatement 替代 Statement写法。3 3数据库权限做限制数据库权限做限制 3.1 不能对业务账号开 select information_schema 权限。因为一旦某个漏洞被成功注入,information_schema库暴露所有库,所有表,字段的定义。给sql

6、注入者提供了便利, 注入者不需要猜测表结构,就能轻松获取所有表的定义,进而轻松获取所有表的数据 3.2 各个业务账号只能访问自己业务的数据。这样即使某个漏洞被注入,也只是影响到该业务的数据,不会影响到其他业务的模块TOP-2 失效的身份认证和会话管理漏洞案例案例 #1: 机票预订应用程序支持 URL重写, 把会话 ID放在URL里:http:/ ?dest=Hawaii 该网站一个经过认证的用户希望让他朋友知道这个机票打折信息。他将上面链接通过邮件发给他朋友们,并不知道自己已经 。当他的朋友们使用上面的链接时,他们将会使用他的会话和信用卡。案例 #2: 应用程序超时设置不当。用户使用公共计算机

7、访问网站。离开时,该用户没有点击退出,而是直接关闭浏览器。攻击者在 能使用相同浏览器通过身份认证。案例 #3: 内部或外部攻击者进入系统的密码数据库.存储在数据库中的用户密码 , 所有用户的密码都被攻击者获得。jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV泄漏了自己的会话ID一个小时后没有被加密TOP-2 失效的身份认证和会话管理1. 用户身份验证凭证没有使用哈希或加密保护。 2. 认证凭证可猜测, 或者能够通过薄弱的的帐户管理功能(例如账户创建、 密码修改、 密码恢复 , 弱会话 ID)重写。3. 会话 ID暴露在 URL里 (例如 , URL重写) 。4.

8、 会话 ID容易受到会话固定( sessionfixaPon) 的攻击。?5. 会话 ID没有超时限制, 或者用户会话或身份验证令牌特别是单点登录令牌在用户注销时没有失效。6. 成功注册后 ,会话 ID没有轮转。7. 密码、 会话 ID和其他认证凭据使用未加密连接传输。TOP-3 跨站脚本(XSS)插入浏览执行攻击什么是跨站脚本攻击?往Web页面里插入恶意html/js代码当用户浏览该web页面时嵌入Web页面里面的html代码会被执行从而达到攻击用户的特殊目的插入HTML/JS代码并执行TOP-3 跨站脚本(XSS)反射型存储型DOM型危害小利用难度大需要点击影响范围广利用简单危害大存储于数

9、据库中有反射也有存储本地执行TOP-3 跨站脚本(XSS) 防范最好的办法是根据数据将要置于的HTML上下文(包括主体、 属性、 JavaScript、 CSS或URL) 对所有的不可信数据进行恰当的转义 ( escape) 。 更多关于数据转义技术的信息见OWASP XSS PrevenPon Cheat Sheet 。TOP-4 不安全的直接对象引用已登录的用户(ID:123)http:/ 安全配置错误漏洞案例案例 #1: 应用程序服务器管理员 。而 。 攻击者在你的服务器上发现了标准的管理员页面,通过默认密码登录,从而接管了你的服务器。案例 #2: 。攻击者发现只需列出目录,她就可以找到

10、你服务器上的任意文件。攻击者找到并下载所有已编译的 Java类,她通过反编译获得了所有你的自定义代码。然后,她在你的应用程序中找到一个访问控制的严重漏洞。案例 #3: 应用服务器配置 , 这样就暴露了潜在的漏洞。 攻击者热衷于收集错误消息里提供的额外信息。案例 #4: 应用服务器自带的 。 该示例应用有已知安全漏洞, 攻击者可以利用这些漏洞破坏您的服务器。控制台自动安全后没有删除目录列表在你的服务器上未被禁用示例应用程序没有删除默认账户也没有改变允许堆栈跟踪返回给用户注意这些问题:1. 是否有软件没有被及时更新?这包括操作系统、Web /应用服务器、数据库管理系统、应用程序和其它所有的代码库文

11、件。2. 是否使用或安装了不必要的功能(例如,端口、服务、网页、帐户、权限) ?3. 默认帐户的密码是否仍然可用或没有更改?4. 你的错误处理设置是否防止堆栈跟踪和其他含有大量信息的错误消息被泄露 ? 5. 你的开发框架(比如:Struts、Spring、ASP. NET)和库文件中的安全设置是否理解正确并配置恰当?TOP-6 敏感信息泄露首先你需要确认的是哪些数据是敏感数据而需要被加密。例如: 密码、 信用卡、 医疗记录、 个人信息应该被加密。对于这些数据, 要确保:1. 当这些数据被长期存储的时候, 无论存储在哪里, 它们是否都被加密, 特别是对这些数据的备份?2. 无论内部数据还是外部数

12、据, 传输时是否是明文传输?在互联网中传输明文数据是非常危险的。3. 是否还在使用任何旧的或脆弱的加密算法?4. 加密密钥的生成是否是脆弱的, 或者缺少恰当的密钥管理或缺少密钥回转?5. 当浏览器接收或发送敏感数据时, 是否有浏览器安全TOP-6 敏感信息泄露攻击案例案例 #1: 一个应用程序加密存储在数据库的信用卡信息,以防止信用卡信息暴露给最终用户 。 但是, 数据库设置为对信用卡表列的询进行自动解密, 这就使得 S QL注入漏洞能够获得所有信用卡信息的明文。 该系统应该被设置为前端应用程序使用公钥对信用卡信息加密, 后端应用程序只能使用私钥解密。案例 #2: 一个网站上所有需要身份验证的

13、网页都没有使用 S S L。 攻击者只需监控网络数据流(比如一个开放的无线网络或其社区的有线网络) , 并窃取一个已验证的受害者的会话 cooki e。 然后, 攻击者利用这个 cooki e执行重放攻击并接管用户的会话从而访问用户的隐私数据案例 #3: 密码数据库使用 u n s al ted的哈希算法去存储每个人的密码。 一个文件上传漏洞使黑客能够获取密码文件。所有这些 u n s al tedTOP-7 功能级访问控制缺失http:/ http:/ (游客) 已登录用户(普通用户)普通用户功能页面管理员功能页面有漏洞有漏洞有漏洞TOP-8 跨站请求伪造(CSRF)TOP-8 跨站请求伪造

14、(CSRF)请求的参数可预知链接 or 页面以用户的身份向服务器发送请求攻击者在构造这个请求构造的请求自动提交诱惑让已登录用户访问浏览器的cookie机制链接 or 页面TOP-9 使用含有已知漏洞的组件Struts 2Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。Struts 2 远程命令执行代码执行的漏洞有:S2-003,S2-005,S2-007,S2-008,S2-009,S2-012S2-016危害?TOP-10 未验证的重定向和转发验证应用程序是否有未验证的重定向或转发的最好的方法是:1. 审查所有使用重定向或转发的代码。 每一次使用, 都应该验证目标URL是否被包含

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论