WEB Security-WEB安全入侵与防御讲课

上传人:ll****x 文档编号:243130731 上传时间:2024-09-16 格式:PPT 页数:43 大小:938.50KB
返回 下载 相关 举报
WEB Security-WEB安全入侵与防御讲课_第1页
第1页 / 共43页
WEB Security-WEB安全入侵与防御讲课_第2页
第2页 / 共43页
WEB Security-WEB安全入侵与防御讲课_第3页
第3页 / 共43页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,华东交通大学日新网,DEC HENAN POWER STATION AUXILIARY EQUIPMENT CO., LTD.,WEB安全,ID:Holmesian,Email:,Website:,1,接下来我们将交流,什么是WEB安全?,安全事件会带来什么危害?,最流行的WEB攻击方式有哪些?,如何抵御常见的WEB攻击?,怎样设计安全的WEB程序?,2,什么是网站安全,3,4,5,什么是webshell,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。,webshell 最大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。,6,WebShell,7,8,9,常见WEB应用,存在的漏洞,SQL注入,漏洞,(SQL,I,njection),跨站脚本,漏洞 (XSS),远程包含漏洞,文件上传,漏洞,C,ookie,被盗用及伪造,后门和调试漏洞,逻辑错误,和配置,问题,旁注攻击,监听(未加密的请求),10,11,SQL,Injection,技术,概述,就攻击技术本质而言,它利用的工具是,SQL,的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,向应用程序中插入一些,SQL,语句时,,SQL Injection,攻击就发生了。,实际上,,SQL Injection,攻击是存在于常见的多连接的应用程序中的一种漏洞,攻击者通过在应用程序预先定义好的,SQL,语句结尾加上额外的,SQL,语句元素,欺骗数据库服务器执行非授权的任意查询,篡改和命令执行。,就风险而言,,SQL Injection,攻击也是位居前列,和缓冲区溢出漏洞相比,其优势在于能够轻易的绕过防火墙直接访问数据库,甚至能够获得数据库所在的服务器的系统权限。,在,Web,应用漏洞中,,SQL Injection,漏洞的风险要高过其他所有的漏洞。,安全,风险,12,经典,的SQL Injection,漏洞,dim rs,admin1=request(admin),password1=request(password),set rs=server.CreateObject(ADODB.RecordSet),rs.open,select * from admin where admin= & admin1 & and password=& password1 &,conn,1,if rs.eof and rs.bof then,response.writealert(用户名或密码不正确!);,response.writejavascript:history.go(-1),response.end,else,session(admin)=rs(admin),session(password)=rs(password),session(aleave)=rs(aleave),response.redirect admin.asp,end if,rs.close,set rs=nothing,13,SQL Injection产生原因,在用户名和密码都填入 or =,SQL语句被构造成,select * from admin where,admin= ,OR, = ,and,password= ,OR, = ,SQL语句的实际,意思,变为,admin为空或者空等于空,,,password为空或者空等于空,的时候整个查询语句就为真。,14,SQL Injection利用,发现注入点(and 1=2、and 1=1、),判断数据库类型(ACCESS、MYSQL、MSSQL),利用数据库特性获得权限(MSSQL、Oracle),构造语句猜解表名、字段名、敏感内容,查找后台登陆地址、使用得到的密码成功登陆,15,SQL Injection实例,and 1=1,and 1=2,and exists(select * from admin where 1=1 and len(password)=13 and id=(Select max(id) From admin where id in (select top 1 id from admin Order by id),and exists(select * from admin where 1=1 and asc(mid(cstr(password),1,1) between 30 and 80 and id=(Select max(id) From admin where id in (select top 1 id from admin Order by id) 62839-23922=38917 | 3141 ,16,PHP,SQL Injection,判断是否存在注入,加;and 1=1;and 1=2,判断版本 and ord(mid(version(),1,1)51 /* 返回正常说明是4.0以上版本,可以用union查询,利用order by 暴字段,在网址后加 order by 10 /* 如果返回正常说明字段大于10,再利用union来查询准确字段,如: and 1=2 union select 1,2,3,./*直到返回正常,说明猜到准确字段数。如过滤了空格可以用/*/代替。,判断数据库连接帐号有没有写权限,and (select count(*) from mysql.user)0 /*如果结果返回错误,那我们只能猜解管理员帐号和密码了。,17,修补,SQL Injection,漏洞,在服务端正式处理之前对提交数据的合法性进行检查;,封装客户端提交信息;,替换或删除敏感字符/字符串;,(),屏蔽出错信息。,18,一个通用防注入的函数,Dim Tc_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数据,If Request.Form Then,For Each Tc_Post In Request.Form,For Tc_Xh=0 To Ubound(Tc_Inf),If Instr(LCase(Request.Form(Tc_Post),Tc_Inf(Tc_Xh)0 Then,Response.Write alert(请不要在参数中包含非法字符尝试注入!);,处理get数据,If Request.QueryString Then,For Each Tc_Get In Request.QueryString,For Tc_Xh=0 To Ubound(Tc_Inf),If Instr(LCase(Request.QueryString(Tc_Get),Tc_Inf(Tc_Xh)0 Then,Response.Write alert(请不要在参数中包含非法字符尝试注入!);,19,跨站脚本攻击,Cross site scripting 简称 XSS,原理:,由于WEB应用程序没有对用户的输入和输出进行严格的过滤和转换,就导致在返回页面中可能嵌入恶意代码。,数据流程:,恶意用户的Html输入web程序进入数据库web程序用户浏览器,80%网站存在跨站漏洞, 包括许多大型知名网站,!,20,XSS的危害,挂马,插入恶意的脚本内容,运行病毒、木马。,钓鱼,篡改网页内容,骗取账号、密码等诈骗行为。,劫持会话,读取会话,COOKIE,传送给第三方劫持身份。,XSS Worm,使用,AJAX,技术,做几何趋势的增长传播。,21,XSS实例1,(document.cookie)%3E%3C%22/x/39/y/10/,22,XSS实例2,23,跨站蠕虫流程图,劫持会话,记录会话,模拟登录,发送,xss,给好友,删除个人信息,24,XSS的防御之道,永远不要相信客户端提交的任何数据!,1、服务器端永远不使用未验证的客户端数据。,GET、POST,、,Cookies,、,URL,、,HTTP,H,eader,、,IP,2、服务器永远不对外展示任何未验证的客户端数据。,25,远程文件包含漏洞,在这种情形下攻击者能操纵不只是文件名,还能控制所包含的资源。由于PHP默认不只可以包含文件,还可以包含下面的资源(由配置文件中的allow_url_fopen所控制):,26,远程文件包含实例,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 $fieldname FROM $tablename WHERE tid=. pwEscape($tid);,fieldname未经任何有效的过滤(全局的一些其他的比较搞笑看起来不错的过滤对这里不起任何安全上的意义,只是对漏洞利用带来了一些难度),利用该注射可以获取任何数据库里的数据。,27,R,egister_,G,lobals,很久很久以前,PHP程序员通过“register globals”(全局变量注册)机制读取用户提供的数据。在这种情形下,所有提交给一个脚本的参数都以一个与参数同名的变量的形式出现。例如,URL,:,script.php?foo=bar 会创建一个值为bar的变量$foo。,输出,:,bar,使用未初始化的变量几乎就意味着安全漏洞,!,28,文件上传漏洞,仅本地,javascript安全控制检测文件格式类型,程序通过,的值来判断用户上传的文件类型,空字节绕过Content-type判断,Win 2k3文件名解析漏洞:当文件名为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,会当作正常的网页一样解析。,29,空字节绕过上传,?php,if($_FILESuserfiletype != image/gif) ,echo Sorry, we only allow uploading GIF images;,exit;,Content-Disposition: form-data; name=userfile; shell.php,Content-Type:,image/gif,30,文件上传漏洞防止,上传目录禁止,php,执行权限,php程序目录禁止www用户写入权限,文件目录权限最小化原则,图片上传之后用,php,中的,gd,库判断一下,强制图片后缀名,31,Cookies问题,明文,cookie,加密串替换,例如:某系统,cookie,信息如下,user=!#$; ugroup=#$%$,登陆,test,得到的,cookiesentname=unsearch;,enid=p0i7L60T8L6LLl0i7;,企业,ID,username=p0T677L7kTLaMM080l0; hpeid=p0i7L60T8L6LLl0i7; einfo=C2IsSyY6E3V-LoVa2z43Zp6DYx6Cpxe_1xfdYyfcBmgczyfNOy4_HCU-Y0ic1-fcP0eCl; qta=200,32,Cookies利用,直接访问本应受限的,URL,要确保在每个请求中都要包含会话表示,授权检查是每个应用程序的责任,而不仅仅是登陆程序的,伪造,Cookies,,伪装身份,在用户名和密码中输入,1 or 1=1,的语句来绕过程序的检查,利用密码保护来修改密码 (社会工程学),33,验证码问题,34,配置不当导致的问题,Apache、IIS、Nginx等WEB服务配置不当,管理页面META信息设置不当被Google抓取,MYSQL、MSSQL等数据库服务设置不当导致被远程抓取,数据库查询连接未及时释放导致的资源死锁问题 sbwait状态,35,Google Hacking,Google Hacking是一种利用搜索引擎获取web应用程序弱点和敏感信息的手段。,Google Hacking 是一种以合法的方式获取非法或未授权信息的手段,Google Hacking 是所有利用搜索引擎进行攻击的一个典型,36,基本搜索,+,把google可能忽略的字列如查询范围,-,把某个字忽略,同意词,.,单一的通配符,*,通配符,可代表多个字母,精确查询,高级搜索,intext,把网页中的正文内容中的某个字符做为搜索条件,intitle,搜索网页标题中某个字符做为搜索条件,cache,搜索google里关于某些内容的缓存,iletype,搜索指定类型的文件(重要参数),inurl,搜索我们指定的字符是否存在于URL中,site,搜索指定的网站或者域名,37,Google,Hacking实例,.cn,38,Google,Hacking实例,2,f,iletype:mdb Standard Jet DB“,该站已经被入侵,HYTOP.MDB 是个木马打包源代码后的生成文件,39,探嗅明文信息,在局域网内通过,ARP,或,sniffer,等方式抓取用户的敏感请求信息。,Arp:,非静态路由局域网,Sniffer:,通过,HUB,组成的局域网,40,如何设计安全的WEB程序,像黑客一样思考,用户提交的每一个数据都不可信任,Cookie,、H,idden,字段、,URL,中不包含任何敏感信息,敏感信息提交时加密、服务器端输入验证,恰当的错误捕获机制、清晰的逻辑判断、最小的使用权限,41,Question & Answer,42,Thank You!,43,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!