




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebApplicationSecurityTraining 内容提要 远程攻击 渗透基础WebApplicationSecurityIssuesWeb1 0和WEB2 0应用程序攻击手段对比总结Web应用安全展望相关资源 北京邮电大学信息安全中心黄玮 漏洞利用是攻击 渗透的核心 业务逻辑缺陷程序实现技术缺陷 ApacheIIS Oracle SQLServer SquidTomcat Resin Windows nix RouterFirewall IDS 基础平台 北京邮电大学信息安全中心黄玮 Web应用程序安全模型 服务器端操作系统 Web服务 沙盒模型 HTTP HTTPS 文件系统 注册表 网络 内存 服务器端支撑服务 数据库服务 目录服务 Mail服务 浏览器插件 沙盒模型 PDFFlashQuickTime HTTP HTTPS 北京邮电大学信息安全中心黄玮 我们需要掌握什么 计算机网络知识 网络编程能力工具论 方法论自动化扫描工具的优势和不足优势 通用性高 节省测试时间 保证测试的覆盖率不足 针对性不强 误检率通常较高 容易触发安全设备 防火墙 IDS等 的报警手工测试的优势和不足优势 针对性强 准确性高 欺骗性更强不足 检测效率低 费时费力 北京邮电大学信息安全中心黄玮 需要掌握的基础知识 掌握至少一门网络编程语言C C Java C Perl Python 熟悉Web应用的通信基础 HTTP协议熟悉至少一种Web应用的开发技术 了解多种Web应用的开发技术MS系 ASP NETSun系 JavaWeb开发技术JSPJ2EE Struts WebWork Spring EJB LAMP Linux Apache MySQL PHPRoR RubyonRailsCGI Perl Python 北京邮电大学信息安全中心黄玮 进一步需要掌握的知识 掌握Web应用程序漏洞的分类 成因及漏洞挖掘和利用方法熟练使用一种或多种Web应用漏洞测试工具 掌握Web应用漏洞测试的方法熟悉至少一种数据库SQLServer MySQL Oracle Access DB2 PostgreSQL默认用户名口令 存储过程 常见配置缺陷其他常见的网络服务的漏洞挖掘和利用方法FTPMailP2P流媒体服务 视频点播 直播服务 北京邮电大学信息安全中心黄玮 经过学习应该达到的基本目标 熟练使用各种搜索引擎不仅仅是Google了解寻找已公开漏洞信息的方法 对常见漏洞做到了然于胸微软安全公告 CVE公告 各大软件厂商的bugtraq 可以根据漏洞检测和利用的需要快速编写出合格的网络程序Hack ExploitToolsCollection突破服务器端沙盒模型的攻击是最有效和最直接的攻击其他攻击方法一般需要比较高的构造技巧和设计艺术 很多时候攻击的成功都是结合社会工程学 利用被攻击者安全意识的薄弱性 北京邮电大学信息安全中心黄玮 建议 重点突出 全面开花Web应用漏洞仅仅是我们关注的一个主要方面 但不能局限在Web应用的漏洞系统级漏洞和网络基础设施的漏洞很少 但一旦被成功利用 其效果是最好的 所以大家需要储备大量的漏洞利用脚本和工具 在遇到不同的网络环境 操作系统 开放的服务时能够做到有备无患在攻与守的过程中提高实战的能力最好的学习攻击和渗透的方法是自己搭建实验环境 进行模拟攻击所以建议大家可以以小组为单位 每2组共同完成一次攻防实验 2组分别扮演红军和蓝军 红军扮演攻击者 蓝军负责环境搭建和防守 严格遵循不作恶原则禁止在互联网环境下进行攻防实验 北京邮电大学信息安全中心黄玮 参考书目 信息安全实验指导 网络安全评估 黑客大曝光系列 其他网络攻防类书籍中文书主要用于掌握理论基础 更多的知识需要在实践中学习 要善于在实验中总结和提高 北京邮电大学信息安全中心黄玮 接下来 WebApplicationSecurityISSUESWeb应用程序漏洞成因分类漏洞示例和描述一些漏洞利用的演示漏洞的防御和解决方法Web1 0和WEB2 0应用程序攻击手段对比 北京邮电大学信息安全中心黄玮 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 Web应用程序服务模型 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 输入有关的安全问题 北京邮电大学信息安全中心黄玮 1 未验证的用户输入 示例 设计输入 ViewServlet url http backendhost images bg gif恶意输入 ViewServlet url http weblogic console ViewServlet url file etc passwd通过这个简单的应用程序可以间接实现文件枚举和后台程序扫描 北京邮电大学信息安全中心黄玮 1 未验证的用户输入 描述 1 攻击者可以篡改HTTPrequest的任何一个部分url请求字符串HTTP头Cookies表单域隐藏域 北京邮电大学信息安全中心黄玮 1 未验证的用户输入 描述 2 常见的输入篡改攻击包括 强制浏览命令注入跨站点脚本攻击缓冲区溢出攻击格式化字符串攻击SQL注入Cookie毒化隐藏域控制可能的原因只在客户端进行输入验证过滤时未进行规范化导致其他的漏洞 北京邮电大学信息安全中心黄玮 1 未验证的用户输入 描述 3 北京邮电大学信息安全中心黄玮 1 未验证的用户输入 解决方案 所有的用户输入需要在服务器端进行集中的统一验证请求参数CookiesHTTP请求头请求参数需要严格的验证其类型数据类型 string integer real etc 最小和最大长度是否允许null参数是否是必需的数字的取值范围特定模式 正则表达式 代码复查不要 滥用 隐藏域存储在Session中或从每次请求中获取参数值 北京邮电大学信息安全中心黄玮 2 缓冲区溢出 一般情况下 采用J2EE架构的Web应用程序不存在缓冲区溢出漏洞描述应用程序的缓冲区中存在过量的输入数据 导致恶意代码被执行Java应用程序中不存在缓冲区溢出风险 OutOfMemoryError后台应用系统本地代码解决措施避免使用本地代码 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 后台相关的安全问题 北京邮电大学信息安全中心黄玮 3 注入缺陷 示例 登录模块使用了如下的SQL查询语句 select fromuserswhereuser username andpassword hashedPassword 很容易被以下的用户输入破解登录功能username or 1 1password 任何可以通过验证规则的密码拼接后形成的SQL查询语句select fromuserswhereuser adminor 1 1 andpassword secret 北京邮电大学信息安全中心黄玮 3 注入缺陷 描述 在任何存在解释器的地方都可能存在脚本语言 例如Perl Python和JavaScriptShell脚本语言 执行系统应用程序 通过系统调用访问操作系统数据库系统 SQL注入目录遍历 e g etc passwd 典型缺陷Runtime exec 拼接字符串的SQL文件输入和输出流操作 北京邮电大学信息安全中心黄玮 3 注入缺陷 解决方案 在任何时候避免直接使用外部的解释器 而使用编程语言提供的API库避免使用Runtime exec 通过JavaMailAPI来发邮件在将数据发送给后台程序时对数据进行编码SQL语句中的单引号LDAP语句中的逗号 括号等更好的解决办法 使用JDBC驱动的PreparedStatements 以Java为例 以受限制的系统权限运行Web应用程序所有的外部调用的输出 返回代码值和错误代码值都需要检查 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 输出相关的安全问题 北京邮电大学信息安全中心黄玮 4 跨站点脚本 XSS 示例 Web应用程序直接将请求中的参数 回显 在用户的浏览器中URL中请求参数的回显正常的URL http victim org victim jsp kind simple被注入JS代码后的URL http victim org victim jsp kind simple name kind alert test inputtype hidden 北京邮电大学信息安全中心黄玮 4 著名公司的XSS漏洞 IBMXSS演示代码 2007年6月首次发现 目前IBM已修复该漏洞 北京邮电大学信息安全中心黄玮 4 著名公司的XSS漏洞 TOMXSS演示代码 北京邮电大学信息安全中心黄玮 4 著名公司的XSS漏洞 SogouXSS演示代码 北京邮电大学信息安全中心黄玮 4 跨站点脚本 XSS 描述 攻击者将恶意脚本代码发送到终端用户的浏览器Web应用程序的输出直接回显到用户的浏览器而未经过检查浏览器信任Web应用程序的代码恶意脚本可以访问cookie 会话令牌 或其他通过用户浏览器获得的敏感信息重写HTML页面2种基本策略持久化的 可自动触发 例如恶意代码存储到数据库中 通过论坛发帖 访客留言等反射型 诱骗点击型 例如错误消息 搜索引擎危害示例会话劫持钓鱼攻击DDoS攻击远程信息获取 如端口扫描 用户浏览历史信息枚举 北京邮电大学信息安全中心黄玮 4 跨站点脚本 XSS 解决方案 输入校验编码所有的展现层输出 HTMLEncode或JSTL的c out Struts的标签等 对输入进行长度限制或截短如果你的应用程序需要显示用户提交HTML内容 你应该过滤标签 要确保用户不能提交恶意脚本代码上面的办法是远远不够的 可以参考MySpace的Samy蠕虫的攻击代码 北京邮电大学信息安全中心黄玮 5 不恰当的错误处理 示例 错误的用户名错误的用户口令 北京邮电大学信息安全中心黄玮 5 不恰当的错误处理 描述 程序的错误消息会暴露程序的一些实现细节示例堆栈调试信息 数据库错误消息 错误代码JSP编译错误信息包含物理路径信息不一致的错误消息 例如拒绝访问或没有找到 错误导致的服务器宕机 DoS 用户错误输入回显到页面时没有进行过滤或转义导致的XSS攻击 北京邮电大学信息安全中心黄玮 5 不恰当的错误处理 解决方案 定义一套清晰和一致的错误处理机制简明扼要的易于用户理解的错误消息 例如 不同的错误消息对应一个错误代码id 为系统管理员记录重要信息 关联错误代码id 不要暴露出任何对攻击者有用的信息 程序的调试信息和异常时堆栈信息等 当需要显示用户的错误输入时 一定要编码 过滤或转义 用户的错误输入部署产品之前要预编译JSP代码修改默认的错误页面 404 401等 执行代码复查 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 Web应用程序设计实现的安全问题 北京邮电大学信息安全中心黄玮 6 脆弱的访问控制 示例 文档 软件的下载链接地址保护http victim org docs download do id 1http victim org docs download do id 1Web应用程序的后台管理入口地址http victim org adminhttp victim org console login后台操作未执行用户身份认证http victim org users deleteUser do userid 001http victim org users addUser do userid 001 北京邮电大学信息安全中心黄玮 6 脆弱的访问控制 描述 内容或程序功能未能有效的保护以限制只允许合法用户的访问典型案例不安全的id强制浏览 直接在浏览器的地址栏中输入URL 目录遍历文件访问权限客户端缓存可能的原因认证只发生在用户登录时仅对URL进行鉴权 而不是对内容进行鉴权未采取集中式的授权管理 而是分散授权管理 北京邮电大学信息安全中心黄玮 6 脆弱的访问控制 解决方案 对每个需要保护的请求进行检查 不仅是在用户第一次请求时进行检查避免使用自己开发的访问控制 而是使用J2EE提供的CMS或者其他的一些安全框架 如Acegi采用声明式而非硬编码的访问控制集中化访问控制而非分散访问控制注意 J2EE容器默认允许所有URL的访问 可选 扩展基于实例的访问控制防止客户端缓存重要内容 设置HTTP请求头和meta标签在服务器端使用操作系统提供的访问控制保护文件的未经授权的访问 北京邮电大学信息安全中心黄玮 7 脆弱认证和会话管理 示例 未采用Sessioncookie 而是在URL中编码已通过认证的用户名和密码https host admin list jsp password 0c6ccf51b817885e username 11335984ea80882d上面的这个URL很容易被一次XSS攻击截获到 北京邮电大学信息安全中心黄玮 7 脆弱认证和会话管理 描述 脆弱的认证和会话管理典型案例简单易猜解的用户名和用户口令存在缺陷的身份管理功能 例如密码修改功能 忘记密码和账户更新功能主动会话劫持 假冒已通过身份认证的合法用户HTTP协议是无状态协议 因而没有标准的会话管理使用jsessionid的URL重写 Session cookies 北京邮电大学信息安全中心黄玮 7 脆弱认证和会话管理 解决方案 使用强认证机制密码策略 密码强度 使用 更改 存储控制 安全传输 SSL 小心实现 找回密码 功能移除默认用户Session机制需要注意的问题Sessioncookie必须是 安全 的Sessionid必须是 不可预测 的尽量使用应用程序服务器提供的安全机制 而不是实现自己的安全机制 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 基础平台的安全问题 北京邮电大学信息安全中心黄玮 8 不安全的存储 示例 日常备份策略程序的备份采用可擦写的设备 如移动硬盘 U盘等使用UltraEdit等编辑器编辑文件后未删除编辑器自动生成的 bak备份文件 导致源代码泄露数据未加密存储用户口令等机密数据以明文形式存储在数据库中 北京邮电大学信息安全中心黄玮 8 不安全的存储 描述 敏感 重要的数据应该采取安全的存储方式典型案例没有加密存储关键数据密钥 证书和密码等采用了不安全的存储介质弱随机数字发生器弱加密算法未采用安全的密钥交换机制 北京邮电大学信息安全中心黄玮 8 不安全的存储 解决方案 仅存储那些必须存储的数据要求用户每次重新输入存储Hash值 而不是加密值不允许对后台应用程序的直接访问数据库访问文件系统访问不要在Web应用程序服务器所在的根目录存储重要文件不要使用自己的加密算法 而是使用JCE JavaCryptographyExtension 北京邮电大学信息安全中心黄玮 9 不安全的配置管理 描述 Web应用程序的运行环境包括应用程序服务器 如Tomcat WebSphere和WebLogic等 和Web服务器 如IIS Apache等 后台系统 数据库服务器 目录服务器 邮件服务器等 操作系统和基础网络架构最常见的配置漏洞未及时更新安全补丁 操作系统 应用程序等 不必要的默认 备份 示例文件开放具有管理权限的服务默认的用户账户和默认口令配置不当的SSL证书开发者和管理者 部署人员 之间缺乏沟通 北京邮电大学信息安全中心黄玮 9 不安全的配置管理 解决方案 为每一个服务器配置创建一个安全基准配置所有的安全机制 补丁更新策略 访问控制策略 密码策略等 关闭所有不使用的服务创建用户角色 权限和账户 包括禁用所有默认账户或修改默认口令日志和警告系统 半 自动化配置过程使用项目批量构建工具 如Ant 和Ghost保持更新保持Web应用程序的运行环境的安全补丁的更新更新安全配置基准定期执行内部和外部的漏洞扫描工具 北京邮电大学信息安全中心黄玮 10 拒绝服务攻击 示例 应用程序从后台的内容管理系统获取了大量的信息一次前台的请求导致了对后台数据库的多次操作请求 北京邮电大学信息安全中心黄玮 10 拒绝服务攻击 描述 Web应用程序非常容易遭受拒绝服务攻击 这是由于Web应用程序本身无法区分正常的请求通信和恶意的通信数据容易产生大量的攻击负载典型案例有限的资源特别容易成为DoS攻击的目标带宽数据库连接磁盘容量CPU资源内存线程特定于用户的DoS用户并发访问控制锁用户密码更改未处理的程序异常 北京邮电大学信息安全中心黄玮 10 拒绝服务攻击 解决方案 避免可能会导致资源密集性消耗的请求CPU 频繁的请求 JDBC连接内存或磁盘容量 大数据量的POST和过量的HttpSession数据匿名用户访问的限制在大负载的情况下测试应用程序的性能利用缓存服务器或限制数据库连接小心使用 锁 机制 北京邮电大学信息安全中心黄玮 输入 Web应用程序 进入后台 平台应用程序服务器操作系统网络 输出 又是输入相关的问题 北京邮电大学信息安全中心黄玮 11 跨站点请求伪造 示例 利用站点已验证通过的用户会话 无需获取用户的登录凭证 http host addFriend do friend attacker 当一个已经登录victim org的用户打开一个包含有XSS攻击代码的页面 或者通过一个隐藏的iframe 并且该XSS代码执行上述的URL请求 则该用户就会执行addFriend这个操作结果 用户在不知情的情况下添加了攻击者作为自己的好友教育人博客CSRF漏洞演示 北京邮电大学信息安全中心黄玮 11 跨站点请求伪造 描述 从名称上来看类似跨站点攻击 但实质上完全不同 XSS是滥用用户对Web站点的信任CSRF是滥用Web站点对其授权用户的信任伪装成来自受信任站点的合法用户有时也被称为会话劫持攻击典型案例诱骗用户访问一个图片源标记为恶意请求链接的页面 从而触发一个异步的恶意远程调用接受受信任并且通过验证的用户的输入但并不检查数据的来源地址 北京邮电大学信息安全中心黄玮 11 跨站点请求伪造 解决方案 使用GET方法进行查询操作方便用户加入收藏夹可以通过电子邮件的方式发送链接地址给其他用户使用POST方法进行更新操作不能被用户加入收藏夹或通过电子邮件告知不能被随意的重新提交增加XSS攻击的难度一些框架支持这些差异Struts默认不区分GET和POST请求SpringWebMVC支持该特性 SimpleFormController WebContentInterceptor在链接中使用时间戳和加密 防止简单重放 在关键应用处使用一次性口令 图片验证码等 北京邮电大学信息安全中心黄玮 扩展内容 独立于特定开发语言的漏洞PHP RFI RemoteFileInclusion 关于网页木马必须利用浏览器沙盒模型的漏洞Web2 0安全不仅是AJAX一切只是刚刚开始 北京邮电大学信息安全中心黄玮 北京邮电大学信息安全中心黄玮 发现 枚举和参数控制 Web1 0 Web2 0 应用程序和应用服务器平台指纹识别 AJAX框架指纹识别 通过包含的 js文件 应用程序功能探索 通过分析框架脚本 发掘应用程序支持的方法 确定 程序调用 的方法和标准 框架指纹定义的 程序调用 方法 Fuzz表单元素 Fuzz AJAX 方法 控制隐藏域和GET参数 控制对本地JS代理的调用 控制上传数据调用 北京邮电大学信息安全中心黄玮 XSS Web1 0 Web2 0 注入脚本到HTML文本 注入脚本到JavaScript流 注入脚本到HTML标记的属性 将脚本注入到即将写入DOM中的XML或JSON 样式表脚本代码注入 破坏动态脚本节点的数组 北京邮电大学信息安全中心黄玮 注入攻击 Web1 0 Web2 0 攻击后台数据查询类协议SQLLDAPXPATH XQuery 攻击后台数据查询类协议SQLLDAPXPATH XQuery 攻击下行对象的序列化 在某种程度上类似XSS JSONJavaScriptAr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区室外路灯施工方案
- 小学篮球趣味活动策划方案
- 老旧小区施工方案暗标
- 决策咨询建议专刊方案
- 新疆阿拉沟水库施工方案
- 沈阳大赛活动会议方案策划
- 大学创意活动策划方案公司
- 五一永州景区活动策划方案
- 火锅店过年开业营销方案
- 造价咨询综合协调方案
- 2025文具用品采购合同范本格式
- 电气检修生产安全培训课件
- 2025天津津南国有资本投资运营集团有限公司及实控子公司招聘工作人员招聘5人考试模拟试题及答案解析
- 营造清朗空间+课件-2025-2026学年(统编版2024)道德与法治八年级上册
- 2025年遴选财务岗考试题及答案
- 《2025新版检验检测机构管理评审报告》
- 移动与酒店合作合同协议
- excel操作考试题及答案
- 项目安全管理实施细则
- 车间偷盗行为管理办法
- 人教版八年级上册数学全册教案(教学设计)二
评论
0/150
提交评论