




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、整理课件Web Application Security Training整理课件内容提要 远程攻击/渗透基础 Web Application Security Issues 和应用程序攻击手段对比 总结 Web应用安全展望 相关资源整理课件北京邮电大学 信息安全中心 黄玮整理课件漏洞利用是攻击/渗透的核心业务逻辑缺陷程序实现技术缺陷ApacheIISOracle/SQL ServerSquidTomcat / ResinWindows*nixRouterFirewall / IDS基基础础平平台台北京邮电大学 信息安全中心 黄玮整理课件Web应用程序安全模型服务器端操作系统Web服务沙盒模型
2、HTTP/HTTPS文件系统注册表网络内存服务器端支撑服务数据库服务目录服务Mail服务浏览器插件沙盒模型PDFFlashQuickTimeHTTP/HTTPS北京邮电大学 信息安全中心 黄玮整理课件我们需要掌握什么 计算机网络知识、网络编程能力 工具论 & 方法论 自动化扫描工具的优势和不足o优势:通用性高、节省测试时间、保证测试的覆盖率o不足:针对性不强、误检率通常较高、容易触发安全设备(防火墙、IDS等)的报警 手工测试的优势和不足o优势:针对性强、准确性高、欺骗性更强o不足:检测效率低、费时费力北京邮电大学 信息安全中心 黄玮整理课件需要掌握的基础知识 掌握至少一门网络编程语言oC/C
3、+/Java/C#/Perl/Python 熟悉Web应用的通信基础HTTP协议 熟悉至少一种Web应用的开发技术,了解多种Web应用的开发技术oMS系:ASP/.NEToSun系: Java Web开发技术 JSP J2EE:Struts、WebWork、Spring、EJB。oLAMP:Linux+Apache+MySQL+PHPoRoR:Ruby on RailsoCGI、Perl、Python。北京邮电大学 信息安全中心 黄玮整理课件进一步需要掌握的知识 掌握Web应用程序漏洞的分类、成因及漏洞挖掘和利用方法 熟练使用一种或多种Web应用漏洞测试工具,掌握Web应用漏洞测试的方法 熟悉
4、至少一种数据库oSQLServer / MySQL / Oracle / Access / DB2 / PostgreSQLo默认用户名口令、存储过程、常见配置缺陷 其他常见的网络服务的漏洞挖掘和利用方法oFTPoMailoP2Po流媒体服务/视频点播、直播服务o。北京邮电大学 信息安全中心 黄玮整理课件经过学习应该达到的基本目标 熟练使用各种搜索引擎o不仅仅是Google 了解寻找已公开漏洞信息的方法,对常见漏洞做到了然于胸o微软安全公告/CVE公告/各大软件厂商的bugtraq。 可以根据漏洞检测和利用的需要快速编写出合格的网络程序 Hack/Exploit Tools Collectio
5、no突破服务器端沙盒模型的攻击是最有效和最直接的攻击o其他攻击方法一般需要比较高的构造技巧和设计艺术,很多时候攻击的成功都是结合社会工程学,利用被攻击者安全意识的薄弱性北京邮电大学 信息安全中心 黄玮整理课件建议 重点突出,全面开花oWeb应用漏洞仅仅是我们关注的一个主要方面,但不能局限在Web应用的漏洞o系统级漏洞和网络基础设施的漏洞很少,但一旦被成功利用,其效果是最好的!o所以大家需要储备大量的漏洞利用脚本和工具,在遇到不同的网络环境、操作系统、开放的服务时能够做到有备无患 在攻与守的过程中提高实战的能力o最好的学习攻击和渗透的方法是自己搭建实验环境,进行模拟攻击o所以建议大家可以以小组为
6、单位,每2组共同完成一次攻防实验。2组分别扮演红军和蓝军(红军扮演攻击者,蓝军负责环境搭建和防守) 严格遵循不作恶原则o禁止在互禁止在互联网环境下进行攻防实验联网环境下进行攻防实验北京邮电大学 信息安全中心 黄玮整理课件参考书目 信息安全实验指导 网络安全评估 黑客大曝光系列 其他网络攻防类书籍 中文书主要用于掌握理论基础,更多的知识需要在实践中学习,要善于在实验中总结和提高北京邮电大学 信息安全中心 黄玮整理课件接下来。 Web Application Security ISSUESoWeb应用程序漏洞成因分类o漏洞示例和描述o一些漏洞利用的演示o漏洞的防御和解决方法 和应用程序攻击手段对比
7、北京邮电大学 信息安全中心 黄玮整理课件北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出Web应用程序服务模型北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出输入有关的安全问题北京邮电大学 信息安全中心 黄玮整理课件1.未验证的用户输入-示例 设计输入 恶意输入o./ViewServlet?url=http:/weblogic/consoleo./ViewServlet?url=file:/etc/passwd 通过这个简单的应用程序可以间接实现文件枚举和后台程序扫描北京邮电大学 信息安全中
8、心 黄玮整理课件1.未验证的用户输入-描述(1) 攻击者可以篡改HTTP request的任何一个部分ourlo请求字符串oHTTP头oCookieso表单域o隐藏域北京邮电大学 信息安全中心 黄玮整理课件1.未验证的用户输入-描述(2) 常见的输入篡改攻击包括:o强制浏览o命令注入o跨站点脚本攻击o缓冲区溢出攻击o格式化字符串攻击oSQL注入oCookie毒化o隐藏域控制 可能的原因o只在客户端进行输入验证o过滤时未进行规范化 导致其他的漏洞北京邮电大学 信息安全中心 黄玮整理课件1.未验证的用户输入-描述(3)北京邮电大学 信息安全中心 黄玮整理课件1.未验证的用户输入-解决方案 所有的用
9、户输入需要在服务器端进行集中的统一验证o请求参数oCookiesoHTTP请求头 请求参数需要严格的验证其类型o数据类型(string, integer, real, etc)o最小和最大长度o是否允许nullo参数是否是必需的o数字的取值范围o特定模式(正则表达式) 代码复查 不要“滥用”隐藏域o存储在Session中或从每次请求中获取参数值北京邮电大学 信息安全中心 黄玮整理课件2.缓冲区溢出 一般情况下,采用J2EE架构的Web应用程序不存在缓冲区溢出漏洞 描述o应用程序的缓冲区中存在过量的输入数据,导致恶意代码被执行oJava应用程序中不存在缓冲区溢出风险? OutOfMemoryEr
10、ror 后台应用系统 本地代码 解决措施o避免使用本地代码北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出后台相关的安全问题北京邮电大学 信息安全中心 黄玮整理课件3.注入缺陷-示例 登录模块使用了如下的SQL查询语句oselect * from users where user= + username + and password= + hashedPassword + 很容易被以下的用户输入破解登录功能ousername: or 1=1opassword:任何可以通过验证规则的密码 拼接后形成的SQL查询语句oselect * from
11、users where user=admin or 1=1 and password=secret北京邮电大学 信息安全中心 黄玮整理课件3.注入缺陷-描述 在任何存在解释器的地方都可能存在o脚本语言,例如Perl,Python和JavaScriptoShell脚本语言(执行系统应用程序)o通过系统调用访问操作系统o数据库系统:SQL注入o目录遍历(e.g. ././etc/passwd) 典型缺陷oRuntime.exec()o拼接字符串的SQLo文件输入和输出流操作北京邮电大学 信息安全中心 黄玮整理课件3.注入缺陷-解决方案 在任何时候避免直接使用外部的解释器,而使用编程语言提供的API
12、库o避免使用Runtime.exec(),通过JavaMail API来发邮件 在将数据发送给后台程序时对数据进行编码oSQL语句中的单引号oLDAP语句中的逗号,括号等 更好的解决办法:使用JDBC驱动的PreparedStatements(以Java为例) 以受限制的系统权限运行Web应用程序 所有的外部调用的输出、返回代码值和错误代码值都需要检查北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出输出相关的安全问题北京邮电大学 信息安全中心 黄玮整理课件4.跨站点脚本(XSS)-示例 Web应用程序直接将请求中的参数“回显”在用户的浏览器中
13、 URL中请求参数的回显o正常的o被注入JS代码后的 name=kindalert(test)body%20onload=alert(IbmIsNotPerfect);location.replace(http:/);%20 x=en_USo截图北京邮电大学 信息安全中心 黄玮整理课件4.著名公司的XSS漏洞 TOMoXSS演示代码http:/ 信息安全中心 黄玮整理课件4.著名公司的XSS漏洞 SogouoXSS演示代码http:/ 信息安全中心 黄玮整理课件4.跨站点脚本(XSS)-描述攻击者将恶意脚本代码发送到终端用户的浏览器oWeb应用程序的输出直接回显到用户的浏览器而未经过检查o浏览
14、器信任Web应用程序的代码 恶意脚本可以o访问cookie,会话令牌,或其他通过用户浏览器获得的敏感信息o重写HTML页面2种基本策略o持久化的(可自动触发),例如恶意代码存储到数据库中,通过论坛发帖,访客留言等o反射型(诱骗点击型),例如错误消息,搜索引擎危害示例o会话劫持o钓鱼攻击oDDoS攻击o远程信息获取,如端口扫描、用户浏览历史信息枚举北京邮电大学 信息安全中心 黄玮整理课件4.跨站点脚本(XSS)-解决方案 输入校验 编码所有的展现层输出(HTMLEncode或JSTL的c:out、Struts的标签等) 对输入进行长度限制或截短 如果你的应用程序需要显示用户提交HTML内容,你应
15、该过滤标签,。,要确保用户不能提交恶意脚本代码 上面的办法是远远不够的,可以参考MySpace的Samy蠕虫的攻击代码>(())##&北京邮电大学 信息安全中心 黄玮整理课件5.不恰当的错误处理-示例 错误的用户名 错误的用户口令北京邮电大学 信息安全中心 黄玮整理课件5.不恰当的错误处理-描述 程序的错误消息会暴露程序的一些实现细节 示例o堆栈调试信息,数据库错误消息,错误代码oJSP编译错误信息包含物理路径信息o不一致的错误消息(例如拒绝访问或没有找到)o错误导致的服务器宕机(DoS) 用户错误输入回显到页面时没有进行过滤或转义导致的XSS攻击北京邮电
16、大学 信息安全中心 黄玮整理课件5.不恰当的错误处理-解决方案 定义一套清晰和一致的错误处理机制o简明扼要的易于用户理解的错误消息(例如,不同的错误消息对应一个错误代码id)o为系统管理员记录重要信息(关联错误代码id)o不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等) 当需要显示用户的错误输入时,一定要编码(过滤或转义)用户的错误输入 部署产品之前要预编译JSP代码 修改默认的错误页面(404,401等) 执行代码复查北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出Web应用程序设计实现的安全问题北京邮电大学 信息安全中
17、心 黄玮整理课件6.脆弱的访问控制-示例 文档/软件的下载链接地址保护 Web应用程序的后台管理入口地址 后台操作未执行用户身份认证北京邮电大学 信息安全中心 黄玮整理课件6.脆弱的访问控制-描述 内容或程序功能未能有效的保护以限制只允许合法用户的访问 典型案例o不安全的ido强制浏览(直接在浏览器的地址栏中输入URL)o目录遍历o文件访问权限o客户端缓存 可能的原因o认证只发生在用户登录时o仅对URL进行鉴权,而不是对内容进行鉴权o未采取集中式的授权管理,而是分散授权管理北京邮电大学 信息安全中心 黄玮整理课件6.脆弱的访问控制-解决方案 对每个需要保护的请求进行检查,不仅是在用户第一次请求
18、时进行检查 避免使用自己开发的访问控制,而是使用J2EE提供的CMS或者其他的一些安全框架,如Acegio采用声明式而非硬编码的访问控制o集中化访问控制而非分散访问控制 注意:J2EE容器默认允许所有URL的访问 (可选)扩展基于实例的访问控制 防止客户端缓存重要内容:设置HTTP请求头和meta标签 在服务器端使用操作系统提供的访问控制保护文件的未经授权的访问北京邮电大学 信息安全中心 黄玮整理课件7.脆弱认证和会话管理-示例 未采用Session cookie,而是在URL中编码已通过认证的用户名和密码ohttps:/host/admin/list.jsp?password=0c6ccf5
19、1b817885e&username=11335984ea80882d 上面的这个URL很容易被一次XSS攻击截获到北京邮电大学 信息安全中心 黄玮整理课件7.脆弱认证和会话管理-描述 脆弱的认证和会话管理 典型案例o简单易猜解的用户名和用户口令o存在缺陷的身份管理功能,例如密码修改功能,忘记密码和账户更新功能o主动会话劫持,假冒已通过身份认证的合法用户 HTTP协议是无状态协议,因而没有标准的会话管理o使用jsessionid的URL重写o(Session) cookies北京邮电大学 信息安全中心 黄玮整理课件7.脆弱认证和会话管理-解决方案 使用强认证机制o密码策略(密码强度,使用/更改
20、/存储控制)o安全传输(SSL)o小心实现“找回密码”功能o移除默认用户 Session机制需要注意的问题oSession cookie必须是“安全”的oSession id必须是“不可预测”的 尽量使用应用程序服务器提供的安全机制,而不是实现自己的安全机制北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出基础平台的安全问题北京邮电大学 信息安全中心 黄玮整理课件8.不安全的存储-示例 日常备份策略o程序的备份采用可擦写的设备,如移动硬盘、U盘等o使用UltraEdit等编辑器编辑文件后未删除编辑器自动生成的.bak备份文件,导致源代码泄露 数
21、据未加密存储o用户口令等机密数据以明文形式存储在数据库中北京邮电大学 信息安全中心 黄玮整理课件8.不安全的存储-描述 敏感/重要的数据应该采取安全的存储方式 典型案例o没有加密存储关键数据o密钥、证书和密码等采用了不安全的存储介质o弱随机数字发生器o弱加密算法o未采用安全的密钥交换机制北京邮电大学 信息安全中心 黄玮整理课件8.不安全的存储-解决方案 仅存储那些必须存储的数据o要求用户每次重新输入o存储Hash值,而不是加密值 不允许对后台应用程序的直接访问o数据库访问o文件系统访问 不要在Web应用程序服务器所在的根目录存储重要文件 不要使用自己的加密算法,而是使用JCE(Java Cry
22、ptography Extension)北京邮电大学 信息安全中心 黄玮整理课件9.不安全的配置管理-描述 Web应用程序的运行环境包括o应用程序服务器(如Tomcat、WebSphere和WebLogic等)和Web服务器(如IIS、Apache等)o后台系统(数据库服务器、目录服务器、邮件服务器等)o操作系统和基础网络架构 最常见的配置漏洞o未及时更新安全补丁(操作系统、应用程序等)o不必要的默认、备份、示例文件o开放具有管理权限的服务o默认的用户账户和默认口令o配置不当的SSL证书 开发者和管理者(部署人员)之间缺乏沟通北京邮电大学 信息安全中心 黄玮整理课件9.不安全的配置管理-解决方
23、案 为每一个服务器配置创建一个安全基准o配置所有的安全机制(补丁更新策略、访问控制策略、密码策略等)o关闭所有不使用的服务o创建用户角色、权限和账户,包括禁用所有默认账户或修改默认口令o日志和警告系统 (半)自动化配置过程o使用项目批量构建工具(如Ant)和Ghost 保持更新o保持Web应用程序的运行环境的安全补丁的更新o更新安全配置基准o定期执行内部和外部的漏洞扫描工具北京邮电大学 信息安全中心 黄玮整理课件10.拒绝服务攻击-示例 应用程序从后台的内容管理系统获取了大量的信息 一次前台的请求导致了对后台数据库的多次操作请求北京邮电大学 信息安全中心 黄玮整理课件10.拒绝服务攻击-描述W
24、eb应用程序非常容易遭受拒绝服务攻击,这是由于Web应用程序本身无法区分正常的请求通信和恶意的通信数据容易产生大量的攻击负载典型案例o有限的资源特别容易成为DoS攻击的目标 带宽 数据库连接 磁盘容量 CPU资源 内存 线程o特定于用户的DoS 用户并发访问控制锁 用户密码更改o未处理的程序异常北京邮电大学 信息安全中心 黄玮整理课件10.拒绝服务攻击-解决方案 避免可能会导致资源密集性消耗的请求oCPU:频繁的请求,JDBC连接o内存或磁盘容量:大数据量的POST和过量的HttpSession数据o匿名用户访问的限制 在大负载的情况下测试应用程序的性能 利用缓存服务器或限制数据库连接 小心使
25、用“锁”机制北京邮电大学 信息安全中心 黄玮整理课件输入Web应用程序进入后台平台应用程序服务器操作系统网络输出又是输入相关的问题北京邮电大学 信息安全中心 黄玮整理课件11.跨站点请求伪造-示例 利用站点已验证通过的用户会话(无需获取用户的登录凭证) 当一个已经登录的用户打开一个包含有XSS攻击代码的页面(或者通过一个隐藏的iframe),并且该XSS代码执行上述的URL请求,则该用户就会执行addFriend这个操作 结果:用户在不知情的情况下添加了攻击者作为自己的好友 教育人博客CSRF漏洞演示北京邮电大学 信息安全中心 黄玮整理课件11.跨站点请求伪造-描述 从名称上来看类似跨站点攻击
26、,但实质上完全不同:oXSS是滥用用户对Web站点的信任oCSRF是滥用Web站点对其授权用户的信任 伪装成来自受信任站点的合法用户o有时也被称为会话劫持攻击 典型案例o诱骗用户访问一个图片源标记为恶意请求链接的页面,从而触发一个异步的恶意远程调用o接受受信任并且通过验证的用户的输入但并不检查数据的来源地址北京邮电大学 信息安全中心 黄玮整理课件11.跨站点请求伪造-解决方案 使用GET方法进行查询操作o方便用户加入收藏夹o可以通过电子邮件的方式发送链接地址给其他用户 使用POST方法进行更新操作o不能被用户加入收藏夹或通过电子邮件告知o不能被随意的重新提交o增加XSS攻击的难度 一些框架支持
27、这些差异oStruts默认不区分GET和POST请求oSpring Web MVC支持该特性:SimpleFormController,WebContentInterceptor 在链接中使用时间戳和加密(防止简单重放) 在关键应用处使用一次性口令(图片验证码等)北京邮电大学 信息安全中心 黄玮整理课件扩展内容 独立于特定开发语言的漏洞oPHP - RFI (Remote File Inclusion) 关于网页木马o必须利用浏览器沙盒模型的漏洞 安全o不仅是AJAXo一切只是刚刚开始。北京邮电大学 信息安全中心 黄玮整理课件北京邮电大学 信息安全中心 黄玮整理课件发现、枚举和参数控制应用程序
28、和应用服务器平台指纹识别AJAX框架指纹识别(通过包含的.js文件)应用程序功能探索通过分析框架脚本,发掘应用程序支持的方法确定“程序调用”的方法和标准框架指纹定义的“程序调用”方法Fuzz表单元素Fuzz(AJAX)方法控制隐藏域和GET参数控制对本地JS代理的调用控制上传数据调用北京邮电大学 信息安全中心 黄玮整理课件XSS注入脚本到HTML文本注入脚本到JavaScript流注入脚本到HTML标记的属性将脚本注入到即将写入DOM中的XML或JSON样式表脚本代码注入破坏动态脚本节点的数组北京邮电大学 信息安全中心 黄玮整理课件注入攻击攻击后台数据查询类协议 SQL LDAP XPATH/XQuery攻击后台数据查询类协议 SQL LDAP XPATH/XQuery攻击下行对象的序列化(在某种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诊所装修环保保证金协议
- 农业科技节水灌溉技术推广应用策略
- 公司可行性分析报告
- 广汽充电桩 远程
- 垃圾发电采购
- 高速电动汽车充电桩
- 保险行业保险科技创新与风险管理方案
- 智能家电产品开发与生产标准
- 农业信息化应用培训工作方案
- 项目会议纪要与行动方案输出
- 江苏省南京师范大学附属中学树人学校2023-2024学年九年级下学期3月月考数学试卷
- 阿拉伯国家联盟课件
- 油气管道视频监控系统总体设计方案
- 知识产权案件调解实务
- 毫米波集成电路详述
- 打印设备维护服务投标方案
- JGT454-2014 建筑门窗、幕墙中空玻璃性能现场检测方法
- 一定溶质质量分数的氯化钠溶液的配制
- DB5301∕T 24-2019 园林绿化养护规范
- 地坪漆施工合同地坪漆施工合同范本
- 高风险供应商管理程序(经典-专业-建议收藏)
评论
0/150
提交评论