Web应用安全指导培训

上传人:ap****ve 文档编号:118748862 上传时间:2019-12-24 格式:PPT 页数:170 大小:5.58MB
返回 下载 相关 举报
Web应用安全指导培训_第1页
第1页 / 共170页
Web应用安全指导培训_第2页
第2页 / 共170页
Web应用安全指导培训_第3页
第3页 / 共170页
Web应用安全指导培训_第4页
第4页 / 共170页
Web应用安全指导培训_第5页
第5页 / 共170页
点击查看更多>>
资源描述

《Web应用安全指导培训》由会员分享,可在线阅读,更多相关《Web应用安全指导培训(170页珍藏版)》请在金锄头文库上搜索。

1、1 Web应用安全 汪涛 2009-10 2 目录 Web对象直接引用 二 三 四 恶意代码执行 一 背景 注入攻击 五 跨站脚本攻击 六 Google Hack OWASP漏洞攻防 七 3 Web来源于World Wide Web,Web系统是Internet的重要组成部分, 形形色色的Web系统正在改变着我们的生活: 网上购物 网上汇款交费 写博客 Web小游戏 竞选 网上营业厅 Web丰富了我们的生活 4 作为一种新型的市场渠道,网上营业厅能够为用户提供方便快捷的服务,能够 降低实体店铺的成本,因此在各大运营商市场战略中占有重要的位置。近年以 来,网上营业厅的安全问题越来越受到大众的关注

2、,主要可以划分成4个方面 : Web安全的意义 工信部 网上营业厅如果被不法分子攻陷,那么可能以此为跳板进入 运营商的支撑网甚至核心网络,造成大面积通讯故障。 普通用户 网上到处叫卖的个人通话详单查询服务已经对老百姓的隐私 造成了极大的破坏。移动集团一直就很重视客户信息保密的 问题。 运营商 网上营业厅代表了企业对外的形象,每天访问用户数以万计 ,如果出现页面篡改、甚至网页挂马事件,对企业形象是巨 大损失。 运营商 网上营业厅涉及充值交费等交易业务,容易吸引不法分子的 眼球。如果利用安全漏洞造成交易欺诈,损害企业的经济利 益。 5 Web系统逐渐成为企业安全边界之一 防火墙 加固OS Web服

3、务器 应用服务器 防火墙 数据库 历史遗留系统 Web Services 文件目录 人力系统 计费系统 定制的应用程序 应用层攻击 仅仅使用网络层的防护手段 (防火墙, SSL, IDS, 加固) 无法阻止或检测到应用层攻击 网络层应用层 应用层作为安全边界的一部分,或许 有巨大的漏洞 6 而Web系统的安全性参差不齐 复杂应用系统代码量大、开发人员多、难免出现疏忽; 系统屡次升级、人员频繁变更,导致代码不一致; 历史遗留系统、试运行系统等多个Web系统共同运行于同一台服务器上; 开发人员未经过安全编码培训; 定制开发系统的测试程度不如标准的产品; 客户 满意 界面友好 操作方便 处理 性能

4、实现 所有功能 架构合理 代码修改方便 运行 稳定 没有 bug 不同模块 低耦合 相对安全性而言 ,开发人员更注 重系统功能! 开发进度与 成本 开发者的关注点 7 定制开发的Web应用 = 企业安全的阿基里斯之踵 “目前,75% 的攻击发生在应用层” Gartner, 2006 “2006年前9个月内新发现4,375 个漏洞. Web漏洞是其中 最普遍的三类之一.” Mitre Corp, 09/2006,CVE的维护者 “产品的定制开发是应用安全中最薄弱的一环”. Gartner, 09/2005 “到2009年, 80%的企业都将成为应用层攻击的受害者”. Gartner, 2007

5、8 Web攻击场景 攻击动机 攻击方法攻击工具 系统漏洞防范措施 攻击面(attack surface) Web服务器 黑客 9 Web攻击动机 常见Web攻击动机 恶作剧; 关闭Web站点,拒绝正常服务; 篡改Web网页,损害企业名誉; 免费浏览收费内容; 盗窃用户隐私信息,例如Email; 以用户身份登录执行非法操作, 从而获取暴利; 以此为跳板攻击企业内网其他系 统; 网页挂木马,攻击访问网页的特 定用户群; 仿冒系统发布方,诱骗用户执行 危险操作,例如用木马替换正常 下载文件,要求用户汇款等; 常用的挂马exploit MS07-017 MS Windows Animated Curs

6、or (.ANI) Remote Exploit MS07-019 MS07-004 VML Remote Code Execution MS06-073 MS06-071 XML Core Services Remote Code Execution MS06-068 MS06-067 MS06-057 WebViewFolderIcod ActiveX MS06-055 MS06-014 MDAC Remote Code Execution MS06-013 MS06-005 MS06-004 MS06-001 10 Web攻击方法 常见Web攻击方法 Google hack 网页爬行 暴

7、力猜解 Web漏洞扫描 错误信息利用 根据服务器版本寻找现有的攻击代码 利用服务器配置漏洞 文件上传下载 构造恶意输入(SQL注入攻击、命令注 入攻击、跨站脚本攻击) HTTP协议攻击 拒绝服务攻击 其他攻击点利用(Web Services, Flash, Ajax, ActiveX, JavaApplet ) 业务逻辑测试 收集系统相关的通用信息 将系统所有能访问页面,所有的资源,路径展现出来 URL、口令、数据库字段、文件名都可以暴力猜解,注意利用 工具; 利用Web漏洞扫描器,可以尽快发现一些明显的问题 错误可能泄露服务器型号版本、数据库型号、路径、代码; 搜索Google,CVE, B

8、ugTraq等漏洞库是否有相关的漏洞 服务器后台管理页面,路径是否可以列表等 是否可以上传恶意代码?是否可以任意下载系统文件? 检查所有可以输入的地方:URL、参数、Post、Cookie、 Referer、 Agent、系统是否进行了严格的校验? HTTP协议是文本协议,可利用回车换行做边界干扰 用户输入是否可以影响服务器的执行? 需要特殊工具才能利用这些攻击点 复杂的业务逻辑中是否隐藏漏洞? 11 Web攻击工具:WebScarab 特色: HTTP协议完全可见(可以完全操作所有的攻击点) 支持HTTPS (包括客户端证书) 全程数据与状态记录,可随时回顾 http:/www.owasp.

9、org OWASP=Open Web Application Security Project,OWASP是最权威的Web应用 安全开源合作组织,其网站上有大量的Web应用安全工具与资料。 Nokia是其成员之一 WebScarab是OWASP组织推出的开源工具,可应用于一切 基于HTTP协议系统的调试与攻击; 12 访问资源名称 GET与POST参数 Referer与User Agent HTTP 方法 Cookie Ajax Web Service Flash客户端 Java Applet Web攻击面:不仅仅是浏览器中可见的内容 POST /thepage.jsp?var1=page1.

10、html HTTP/1.1 Accept: */* Referer: Accept-Language: en-us,de;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-url-encoded Content-Lenght: 59 User-Agent: Mozilla/4.0 Host: Connection: Keep-Alive Cookie: JSESSIONID=0000dITLGLqhz1dKkPEtpoYqbN2 uid=fred MSIE 6.0; Windows NT 5.1; SV1;

11、 .NET CLR 1.1.4322) Host: 192.168.230.2 Content-length: 77 Proxy-Connection: Keep-Alive Pragma: no-cache Cookie: Snitz00User=; ASPSESSIONIDQCSDTQDT=CFPLNNDAGPEJLCMAJGKGCECA; iscookies=0; BoardList=BoardID=Show; upNum=0 Method_Type=login这两句sql都符合 string,int,string的模式 999是不可能符合的条件 ,这样union的结果就只 剩第二句sq

12、l查询的内容 76 打开培训示范论坛,不用登录,直接查看用户属性 SQL Injection:Case 学员练习 20Min 77 一个简单的测试显示这 里可能存在注入漏洞。 从错误看出是MS SQL Server。 从链接的形式id=?来看 应该可能是数字型。因 此报错是必然的。 从报错来看,程序员把 替换成了 SQL Injection:Step 1 学员练习 20Min 78 用试验,发现出来了 一部分数据,test用户 名及其email地址,这证 明至少有一条SQL正确 运行。 但是依然有SQL报错, 很可能是后台有两条 SQL语句都分别用到了 id变量,而两语句使用 的环境不同。 S

13、QL Injection:Step 2 学员练习 20Min 79 实际情况是第一条SQL 是where id=? ,第二 条SQL是where (xx=xx) and (id=?)。 因此要第二条不错,id 只能用2)-,但这样第 一条又会出错,难以两 全。 从错误行号来看,第一 句SQL位于84行,第二 句SQL位于207行。 SQL Injection:Step 3 学员练习 20Min 80 对于Select查询,几 乎都可以用Union查 询来暴库。 Union要求前后两句 对应的数据项数量 相同,类型一致, 因此需要首先检查 第一句SQL的数据 项数量。 方法是用order by

14、n ,逐步增加n。 SQL Injection:Step 4 学员练习 20Min 81 N=30正常,N=31错误!因此第一句SQL有30项 。 SQL Injection:Step 5 学员练习 20Min 82 由于union还要求类型一致,30项要逐个猜测类型是不现实的, 因此用通配符null! 准备30个null。 提示这个错误的原因说明前一句sql中有image类型,而union缺 省是distinct的,要解决这个问题,使用union all即可。 SQL Injection:Step 6 学员练习 20Min 83 使用Union All后,终于又看到了test的信息。 SQL

15、 Injection:Step 7 学员练习 20Min 84 调整union第一句的条件为“不可能满足”,这样显示出来的始终 是第二句,即使为null SQL Injection:Step 8 学员练习 20Min 这两个位置显示的是 30项null中的某两个 。因此可以利用这里 来回显信息! 85 需要找到这两个数据位于30个null中的何处。首先试验把第二个 null换成字符型的null。 错误提示不是告诉类型不匹配,而是说有语法错误。从而再次 确认:开发者用替换了。 SQL Injection:Step 9 学员练习 20Min 86 要写出不带的sql语句并不困难。如果您对SQL语法

16、熟悉的话, 就知道有一个char函数可供利用。 SQL Injection:Step 10 学员练习 20Min 64是的ASCII 码数值,10进 制。成功回显 87 SQL Injection:Step 11 学员练习 20Min 第二个null位 置回显于此处 试出两个回显点的位置: 第四个null位 置回显于此处 88 SQL Injection:Step 12 学员练习 20Min 把后面的sql替换成select null,password,null,.,null from users的 形式,希望能显示一个密码,但是失败了。系统不存在users表 。 再猜测几个表发现依然失败。看来仅仅靠猜测是不行的。 89

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号