WEBSecurityWEB安全入侵与防御讲课_第1页
WEBSecurityWEB安全入侵与防御讲课_第2页
WEBSecurityWEB安全入侵与防御讲课_第3页
WEBSecurityWEB安全入侵与防御讲课_第4页
WEBSecurityWEB安全入侵与防御讲课_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB安全ID:HolmesianEmail:Website:第一页,共四十四页。接下来我们将交流……什么是WEB安全?安全事件会带来什么危害?最流行的WEB攻击方式有哪些?如何抵御常见的WEB攻击?怎样设计安全的WEB程序?第二页,共四十四页。什么是网站安全第三页,共四十四页。第四页,共四十四页。第五页,共四十四页。什么是webshellwebshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。webshell最大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。第六页,共四十四页。WebShell第七页,共四十四页。第八页,共四十四页。第九页,共四十四页。常见WEB应用存在的漏洞SQL注入漏洞(SQLInjection)跨站脚本漏洞(XSS)远程包含漏洞文件上传漏洞Cookie被盗用及伪造后门和调试漏洞逻辑错误和配置问题旁注攻击监听(未加密的请求)第十页,共四十四页。第十一页,共四十四页。SQLInjection技术概述就攻击技术本质而言,它利用的工具是SQL的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,向应用程序中插入一些SQL语句时,SQLInjection攻击就发生了。实际上,SQLInjection攻击是存在于常见的多连接的应用程序中的一种漏洞,攻击者通过在应用程序预先定义好的SQL语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询,篡改和命令执行。就风险而言,SQLInjection攻击也是位居前列,和缓冲区溢出漏洞相比,其优势在于能够轻易的绕过防火墙直接访问数据库,甚至能够获得数据库所在的服务器的系统权限。在Web应用漏洞中,SQLInjection漏洞的风险要高过其他所有的漏洞。安全风险第十二页,共四十四页。经典的SQLInjection漏洞dimrsadmin1=request("admin")password1=request("password")setrs=server.CreateObject("ADODB.RecordSet")rs.open"select*fromadminwhereadmin='"&admin1&"'andpassword='"&password1&"'",conn,1ifrs.eofandrs.bofthenresponse.write"<SCRIPTlanguage=JavaScript>alert('用户名或密码不正确!');"response.write"javascript:history.go(-1)</SCRIPT>"response.endelsesession("admin")=rs("admin")session("password")=rs("password")session("aleave")=rs("aleave")response.redirect"admin.asp"endifrs.closesetrs=nothing第十三页,共四十四页。SQLInjection产生原因在用户名和密码都填入'or''='SQL语句被构造成 select*fromadminwhereadmin=‘'OR‘'=‘'

and

password=‘'OR‘'=‘‘SQL语句的实际意思变为admin为空或者空等于空,password为空或者空等于空的时候整个查询语句就为真。第十四页,共四十四页。SQLInjection利用发现注入点(and1=2、and1=1、'……)判断数据库类型(ACCESS、MYSQL、MSSQL……)利用数据库特性获得权限(MSSQL、Oracle……)构造语句猜解表名、字段名、敏感内容查找后台登陆地址、使用得到的密码成功登陆第十五页,共四十四页。SQLInjection实例and1=1and1=2andexists(select*fromadminwhere1=1andlen(password)=13andid=(Selectmax(id)Fromadminwhereidin(selecttop1idfromadminOrderbyid)))andexists(select*fromadminwhere1=1andasc(mid(cstr(password),1,1))between30and80andid=(Selectmax(id)Fromadminwhereidin(selecttop1idfromadminOrderbyid)))[62839-23922=38917|3141]第十六页,共四十四页。PHPSQLInjection判断是否存在注入,加';and1=1;and1=2判断版本andord(mid(version(),1,1))>51/*返回正常说明是4.0以上版本,可以用union查询利用orderby暴字段,在网址后加orderby10/*如果返回正常说明字段大于10再利用union来查询准确字段,如:and1=2unionselect1,2,3,......./*直到返回正常,说明猜到准确字段数。如过滤了空格可以用/**/代替。判断数据库连接帐号有没有写权限,and(selectcount(*)frommysql.user)>0/*如果结果返回错误,那我们只能猜解管理员帐号和密码了。第十七页,共四十四页。修补SQLInjection漏洞在服务端正式处理之前对提交数据的合法性进行检查;封装客户端提交信息;替换或删除敏感字符/字符串;()屏蔽出错信息。第十八页,共四十四页。一个通用防注入的函数DimTc_Post,Tc_Get,Tc_In,Tc_Inf,Tc_Xh '定义需要过滤的字串Tc_In="'|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|or|char|declare"Tc_Inf=split(Tc_In,"|")'处理post数据IfRequest.Form<>""ThenForEachTc_PostInRequest.FormForTc_Xh=0ToUbound(Tc_Inf)IfInstr(LCase(Request.Form(Tc_Post)),Tc_Inf(Tc_Xh))<>0ThenResponse.Write"<ScriptLanguage=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');</Script>"'处理get数据IfRequest.QueryString<>""ThenForEachTc_GetInRequest.QueryStringForTc_Xh=0ToUbound(Tc_Inf)IfInstr(LCase(Request.QueryString(Tc_Get)),Tc_Inf(Tc_Xh))<>0ThenResponse.Write"<ScriptLanguage=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');</Script>"第十九页,共四十四页。跨站脚本攻击Crosssitescripting简称XSS原理:由于WEB应用程序没有对用户的输入和输出进行严格的过滤和转换,就导致在返回页面中可能嵌入恶意代码。数据流程:

恶意用户的Html输入—>web程序—>进入数据库—>web程序—>用户浏览器80%网站存在跨站漏洞,包括许多大型知名网站!

第二十页,共四十四页。XSS的危害挂马插入恶意的脚本内容,运行病毒、木马。钓鱼篡改网页内容,骗取账号、密码等诈骗行为。劫持会话读取会话COOKIE,传送给第三方劫持身份。XSSWorm使用AJAX技术,做几何趋势的增长传播。第二十一页,共四十四页。XSS实例1第二十二页,共四十四页。XSS实例2第二十三页,共四十四页。跨站蠕虫流程图劫持会话记录会话模拟登录发送xss给好友删除个人信息第二十四页,共四十四页。XSS的防御之道永远不要相信客户端提交的任何数据!!! 1、服务器端永远不使用未验证的客户端数据。GET、POST、Cookies、URL、HTTP

Header、IP… 2、服务器永远不对外展示任何未验证的客户端数据。第二十五页,共四十四页。远程文件包含漏洞第二十六页,共四十四页。远程文件包含实例phpwind较高版本论坛中存在一个严重的漏洞,成功利用该漏洞可以远程执行任意php代码pw_ajax.php中的}elseif($action=='pcdelimg'){ InitGP(array('fieldname','pctype')); InitGP(array('tid','id'),2); if(!$tid||!$id||!$fieldname||!$pctype){ echo'fail'; } $id=(int)$id; if($pctype=='topic'){ $tablename=GetTopcitable($id); }elseif($pctype=='postcate'){ $tablename=GetPcatetable($id); } $path=$db->get_value("SELECT$fieldnameFROM$tablenameWHEREtid=".pwEscape($tid));fieldname未经任何有效的过滤(全局的一些其他的比较搞笑看起来不错的过滤对这里不起任何安全上的意义,只是对漏洞利用带来了一些难度),利用该注射可以获取任何数据库里的数据。第二十七页,共四十四页。Register_Globals很久很久以前,PHP程序员通过“registerglobals”(全局变量注册)机制读取用户提供的数据。在这种情形下,所有提交给一个脚本的参数都以一个与参数同名的变量的形式出现。例如,URL:script.php?foo=bar会创建一个值为bar的变量$foo。<?phpecho$foo;?>输出:bar使用未初始化的变量几乎就意味着安全漏洞!第二十八页,共四十四页。文件上传漏洞仅本地javascript安全控制检测文件格式类型程序通过

的值来判断用户上传的文件类型空字节绕过Content-type判断Win2k3文件名解析漏洞:当文件名为x.asp;x.jpg时,IIS会以ASP格式解析,x.php;x.jpg会以PHP解析。早期版本php的uploaded_file函数存在安全问题,遇到二进制0x00就会认为数据结束了

:\1.php.jpg->1.php.jpg:\1.php0x00.jpg->1.php上传后缀为.jpg的网页文件,IE会当作正常的网页一样解析。第二十九页,共四十四页。空字节绕过上传<?phpif($_FILES['userfile']['type']!="image/gif"){echo"Sorry,weonlyallowuploadingGIFimages";exit;}Content-Disposition:form-data;name="userfile";"shell.php"Content-Type:image/gif<?phpsystem($_GET['command']);?>第三十页,共四十四页。文件上传漏洞防止第三十一页,共四十四页。Cookies问题明文cookie加密串替换

例如:某系统cookie信息如下

user=!#$@@;ugroup=#$%$$登陆test得到的cookies

entname=unsearch;

enid=p]0i7L60T8L6LLl0i7;

企业IDusername=p]0T677L7kTLaMM080l0;hpeid=p]0i7L60T8L6LLl0i7;einfo=C2IsSyY6E3V-LoVa2z43Zp6DYx6Cpxe_1xfdYyfcBmgczyfNOy4_HCU-Y0ic1-fcP0eCl;qta=200

第三十二页,共四十四页。Cookies利用直接访问本应受限的URL

要确保在每个请求中都要包含会话表示,授权检查是每个应用程序的责任,而不仅仅是登陆程序的伪造Cookies,伪装身份在用户名和密码中输入1or1=1的语句来绕过程序的检查利用密码保护来修改密码(社会工程学)第三十三页,共四十四页。验证码问题第三十四页,共四十四页。配置不当导致的问题第三十五页,共四十四页。Google

HackingGoogleHacking是一种利用搜索引擎获取web应用程序弱点和敏感信息的手段。GoogleHacking是一种以合法的方式获取非法或未授权信息的手段GoogleHacking是所有利用搜索引擎进行攻击的一个典型第三十六页,共四十四页。基本搜索+把google可能忽略的字列如查询范围-把某个字忽略~同意词.单一的通配符*通配符,可代表多个字母""精确查询高级搜索intext把网页中的正文内容中的某个字符做为搜索条件intitle搜索网页标题中某个字符做为搜索条件cache搜索google里关于某些内容的缓存iletype搜索指定类型的文件(重要参数)inurl搜索我们指定的字符是否存在于URL中site搜索指定的网站或者域名第三十七页,共四十四页。Google

Hacking实例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论