Web应用安全培训.ppt

上传人:b****1 文档编号:1394728 上传时间:2022-10-22 格式:PPT 页数:82 大小:1.06MB
下载 相关 举报
Web应用安全培训.ppt_第1页
第1页 / 共82页
Web应用安全培训.ppt_第2页
第2页 / 共82页
Web应用安全培训.ppt_第3页
第3页 / 共82页
Web应用安全培训.ppt_第4页
第4页 / 共82页
Web应用安全培训.ppt_第5页
第5页 / 共82页
点击查看更多>>
下载资源
资源描述

Web应用安全培训.ppt

《Web应用安全培训.ppt》由会员分享,可在线阅读,更多相关《Web应用安全培训.ppt(82页珍藏版)》请在冰豆网上搜索。

Web应用安全培训.ppt

Web应用安全培训,2007-09-18ye_叶润国,培训提纲,Web应用程序和应用安全概念SQL注入攻击与防范跨站脚本攻击与防范,第一部分Web应用程序及其安全概念,Web应用程序构建实例,Web浏览器(IE),Web服务器(IIS),HTTPRequest,HTTPResponse,MSSQLDB,TDS,Webapplication,Web应用程序:

利用Web浏览器作为标准客户端,利用web服务器作为服务端,使用cgi程序处理用户的业务请求。

常见的CGI有asp,php,jsp以及.net.一般将这些称为脚本语言。

Web应用程序中的脚本语言分为两种:

由Web服务端解释执行的脚本语言,如ASP,PHP,JSP等由标准Web客户端解释执行的脚本语言,如VBScript,Javascript,一个包含两种脚本语言的CGI程序,(xss/sample1.asp)SQLInjectionfunctionshowhello()alert(hello.howareyou?

),Web页面的组成,Web页面为B/S三层结构中的呈现层,可由以下对象组成:

文字、图像、表单和客户端脚本一个Web页面往往是由多个文件组成:

主HTML文件其它HTML文件(分帧情况下)图像文件(多媒体文件)引入文件(脚本、CSS),Web应用安全,WebSecurityWeb会话和cookieServer-sidesecurityClient-sidesecurity,Web结构,client/server结构,属于瘦客户类型的Browser/Server,客户为浏览器,服务器为WebServer通常是多层(或三层)结构中的第一层在Web应用中,WebServer后面常常与数据库打交道B/S之间的通讯协议:

HTTPHTTP位于TCP之上,默认的端口为80客户发出对页面的请求,服务器送回这些页面动态页面和静态页面Web页面的表述和交互能力各种标记、超链接,交互功能:

表单、脚本交互能力的扩展:

JavaApplet,ActiveX,Web安全性,协议本身的安全性支持身份认证:

BasicAuthentication,DigestAccessAuthentication保密性:

TLS(TransportLayerSecurity)实现上的安全性服务器端安全性Webpages的访问控制机制可用性:

防止拒绝服务抵御各种网络攻击客户端安全性个人信息的保护、防止执行恶意代码WebProxyServer(Man-In-The-Middle),Web认证,BasicAuthenticationRFC2617口令直接明文传输隐患:

sniffer、中间代理、假冒的服务器DigestAccessAuthenticationRFC2617Challenge-Response,不传输口令重放攻击、中间人攻击服务器端的口令管理策略TLS,基于PKI的认证单向或者双向的身份认证要求服务器提供证书,客户端证书可选同时也可以提供保密性服务一种双向认证模式单向TLS认证+客户提供名字/口令,招商银行信任卡登录页面,Web会话,从TCP到HTTP层缺少直接的会话层支持Web会话支持HTTP1.1增加了PersistentConnections支持,但是不能用于提供Web会话的功能目前使用的会话技术Cookie,用cookie作为permitticket用url记录会话用表单中的隐藏元素记录会话会话安全:

劫持一个Web会话建立会话可能需要验证用户的信息认证一旦会话被劫持,则Web用户的安全性不复存在安全性涉及到客户如何提供会话建立所需要的信息,以及会话标识信息服务器如何管理会话,Cookie技术,Cookie通常是少量的与状态有关的信息,它是服务器保存在客户端的信息Cookie的动机客户在浏览多个页面的时候,提供事务(transaction)的功能,为服务器提供状态管理比如说,可以针对每个用户实现购物篮实现授权策略,客户不用为每个页面输入“用户名/口令”但是,实际上,cookie很容易被滥用在提供个性化服务的时候,往往要收集一些涉及隐私的信息每个cookie都有一定的URL范围客户发送这个范围内的URL请求都要提供这个cookie,Cookie规范,Set-cookie语法,在HTTP应答头中Set-Cookie:

NAME=VALUE;expires=DATE;path=PATH;domain=DOMAIN_NAME;secure例如:

Set-Cookie:

CUSTOMER=WILE_E_COYOTE;path=/;expires=Wednesday,09-Nov-9923:

12:

40GMTCookie语法,在HTTP请求头中Cookie:

NAME1=OPAQUE_STRING1;NAME2=OPAQUE_STRING2.例如:

Cookie:

CUSTOMER=WILE_E_COYOTE,利用cookie完成一个transaction,顾客名字,购物篮,购物方法,Cookie被滥用,Cookies中往往会记录一些涉及用户隐私的信息,比如用户的名字,email地址等如果客户关闭了cookie的功能,则许多网站的功能不能正常工作Cookie被滥用的一个例子DoubleClick公司案例利用cookie来收集个人的喜好为广告客户提供广告发布服务个人喜好信息不能被滥用有些国家规定这些信息不能被公开,或者被销售等,Web服务器端安全性,服务器发布信息,提供服务静态信息,各种HTML页面动态信息,利用脚本或者各种扩展引擎响应客户的请求,Web服务器端安全性,安全性目录安全性只有指定范围的文件才可以被访问例如,禁止URL中出现“.”Cgi文件的安全性,此目录禁止通过Web读写检查每一个cgi文件,不要保留有漏洞的cgi文件,特别是系统预装的一些cgi示例文件,这些文件往往为了说明功能,而忽略了安全性的考虑要求认证:

由于协商的原因,要注意安全性最低的认证协议授权机制:

保护好口令的安全存储,以及客户信息的保存日志:

打开系统中对于Web服务的日志功能,以及Web服务的日志记录,针对WebServer的常见攻击,从Web服务中获取信息Web页面中的注解信息,或者一些扩展特性返回的应答头有时也会暴露信息针对WebServer的各种攻击手法CGI攻击(比如说IIS的UNICODE漏洞)缓冲区溢出输入验证攻击拒绝服务攻击跨站脚本攻击(XSS)SQL注入攻击(SQLIA),Web客户端的安全性,客户端安全性涉及到Cookie的设置,保护用户的隐私PKI设置,确定哪些是可信任的CA对可执行代码的限制,包括JavaApplet,ActiveXcontrol如果你的机器是多个人合用的,则Web页面的缓存区域,将会留下用户最近访问过的页面历史记录口令自动保存和提示,ActiveXcontrol的安全性,下载ActiveXcontrol通过数字签名来识别control的受信任程度验证数字签名,PKI中的可信任根CA安装和注册ActiveXcontrol已经在调用ActiveXcontrol的代码了它可以自己声明自己是安全的(操纵注册表)对象的初始化创建对象,并且对对象进行初始化,ActiveXcontrol是一个持久对象对象的脚本操作通过脚本调用对象的方法-ActiveDocument,脚本攻击技术,SQL注入技术跨站脚本攻击技术,第二部分SQL注入攻击介绍,SQL注入概念,EnglishTheabilitytoinjectSQLcommandsintothedatabaseenginethroughanexistingapplication中文利用现有应用程序不对输入数据进行过滤的缺陷,将恶意的SQL命令注入到后台数据库引擎执行,达到偷取数据甚至控制数据库服务器的目的.SQL注入攻击存在的根源:

动态SQL语句惹的祸!

基于Web的SQL注入攻击危害性最大拥有Internet访问权限的人都能够执行SQLIASQLIA可以穿透防火墙,轻松躲避现有IDS检测,SQL注入攻击例子-1,/JAVA中的动态SQL语句构造queryString=SELECTinfoFROMuserTableWHERElogin=+$login+ANDpin=+$pin+”;/JAVA中的动态SQL语句的提交执行ResultSettempSet=stmt.execute(queryString);,存在SQLIA的Checkpass.asp程序,Setconn=Server.CreateObject(ADODB.Connection)conn.opentestpubs,sa,123456SetSQLStmt=Server.CreateObject(ADODB.Command)SetRS=Server.CreateObject(ADODB.Recordset)Request_Method=Request.ServerVariables(REQUEST_METHOD)username=Request.Form(username)password=Request.Form(password)CMD=selectcount(*)fromuserswhereusername=+username+andpassword=+password+SQLStmt.CommandText=CommandStringSQLStmt.CommandType=1SetSQLStmt.ActiveConnection=ConnRS.OpenSQLStmtif(RS(0)0)thenResponse.write(用户登录成功,欢迎光临!

)elseResponse.write(用户名未找到或密码错误)endifConn.Close;SetConn=Nothing,SQL注入攻击例子,NormalUsageUsersubmitslogin“xiaoye”andpin“123456”SELECTcount(*)FROMusersWHERElogin=xiaoyeANDpin=123456,MaliciousUsageAttackersubmits“xiaoye-”andpinof“0”SELECTcount(*)FROMusersWHERElogin=xiaoye-ANDpin=0,存在SQLIA的Checkpass1.asp,Setconn=Server.CreateObject(ADODB.Connection)conn.opentestpubs,sa,123456SetSQLStmt=Server.CreateObject(ADODB.Command)SetRS=Server.CreateObject(ADODB.Recordset)Request_Method=Request.ServerVariables(REQUEST_METHOD)username=Request.Form(username)password=Request.Form(password)CMD=selectuserser,passwordfromuserswhereusername=+username+andpassword=+password+SQLStmt.CommandText=CommandStringSQLStmt.CommandType=1SetSQLStmt.ActiveConnection=ConnRS.OpenSQLStmtif(RS(0)=usernameandRS

(1)=password)thenResponse.write(用户登录成功,欢迎光临!

)elseResponse.write(用户名未找到或密码错误)endifConn.CloseSetCo

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

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1