欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    web编程常见漏洞与检测.ppt

    • 资源ID:2504181       资源大小:243KB        全文页数:33页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    web编程常见漏洞与检测.ppt

    Web编程常见漏洞与检测,Web漏洞检测,白盒检测对检测者的要求:能读懂用此语言写的程序明白漏洞成因漏洞挖掘经验常用的web脚本语言:Asp/Php/Jsp/,常见的web漏洞,sql注入文件上传cookie欺骗XSS攻击文件包含其他,Sql注入及其危害,所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。分为字符型注入和数字型的注入,由于编程语言不同,所存在的注入类型也不同。危害:-非法查询其他数据库资源,如管理员帐号。-执行系统命令-获取服务器root权限,Sql注入原理,Test.asp文件代码片段:sqlStr=“select*from n_user where username=”&username&”and password=“&password&”rs=conn.execute(sqlStr)正常的查询:test.asp?username=test&password=123sqlStr=“select*from n_user where username=test and password=123“使password=123 or 1=1:Sql语句到数据库后:sqlStr=“select*from n_user where username=test and password=123 or 1=1“Or 1=1始终成立。,Asp表现,存在数字型和字符型注入。(A)数字型 字段=51Select*from 表名 where 字段=51 构造参数:ID=49 And 查询条件 生成语句:Select*from 表名 where 字段=49 And 查询条件(B)字符型的另一种形式搜索语句:Select*from 表名 where 字段like%关键字%构造参数:keyword=and 查询条件 and%25=生成语句:Select*from 表名 where字段like%and 查询条件 and%=%,Asp注入的预防,对于用户端输入的任意字符,包括GET提交,POST提交,Cookie提交,SERVER提交的都需要做严格过滤。对于数字型参数判断是否为数字:可用函数isNumeric来判断,返回值为true和false。对于字符型参数过滤单引号,使其无法闭合当前sql语句的单引号。例外:base64编码Sql通用防注入,Php中的表现,Php的魔术引号(magic_quotes_gpc)。php.ini-dist 默认是开启此功能。如果安装php时使用此文件,将不会产生字符型注入,主要是数字型注入。数字型注入:select*from guess where id=“.$id.”select*from guess where id=$id,GPC不起作用的情况,数组$userid=$_POSTuserid;for($i=0;$icount($userid);$i+)$query=“select*from user where i_hid=.$userid$i.;编码函数引起base64_decode,base64编码后的单引号:Jw=mysql处理GBK编码字符%bf%27导致单引号被绕过的问题。其他数据库,如ms sql。对于转义符反斜杠作为字符处理的。select*from test where title=aaa or 1=1,Php注入的预防(一),确认GPC开启,若没开启则用addslashes 函数过滤之,如下代码。if(!get_magic_quotes_gpc()$lastname=addslashes($_POSTlastname);else$lastname=$_POSTlastname;对于数字型参数可使用intval 或floatval 强制转换为数字型。注意mysql的版本以及默认字符集,Mysql4.1字符集连接字符串:mysql_query(SET character_set_connection=$dbcharset,character_set_results=$dbcharset,character_set_client=binary;);,Php注入的预防(二),Php5以上版本Mysqli扩展预防,参数化查询$city=Amersfoort;/*create a prepared statement*/$stmt=$mysqli-prepare(SELECT District FROM City WHERE Name=?)$stmt-bind_param(s,$city);$stmt-execute();$stmt-bind_result($district);$stmt-fetch();printf(%s is in district%sn,$city,$district);$stmt-close();,Jsp 表现,由于java语言是强类型语言,所有变量定义前必须声明其类型,因而仅存在字符型的注入。字符型注入实例:String sql=select*from tb_name where name=+varname+and passwd=+varpasswd+;stmt=conn.prepareStatement(sql);构造参数varpasswd值为:or 1=1 Sql语句经过解析后将是:select*from tb_name=随意 and passwd=or 1=1;,Jsp预防,采用jdbc的prepareStatement查询数据库,并且sql语句中不出现参数,如:sqlStr=“select id from info where city=?and open=?order by id desc”;stmt=conn.prepareStatement(sqlStr);stmt.setString(1,city);stmt.setString(2,var1);,A表现,开发语言常用的有:和C#,都属于强类型语言,因而只存在字符型注入。注入原理,与asp的字符型注入一样。,A注入预防,使用A的参数化查询。strSQL=SELECT*FROM Orders WHERE CustomerID=CustomerID;SqlCommand cmd=new SqlCommand(strSQL,cn);/创建一个sqlcommand对象。/创建新参数,参数绑定cmd.Parameters.AddWithValue(CustomerID,ALFKI);,sql注入的检测简单流程,Sql语句一样,查询方法也一样。,文件上传漏洞,利用当前系统已有的上传功能,比如文件上传,图像上传等的漏洞来上传任意文件或者webshell。危害:直接上传webshell到服务器,甚至获取服务器root权限。各种语言表现大同小异。,Asp上传漏洞表现,经典的”0”上传任意后缀文件。假设:filename=c:nc.exe.bmp Check the file extensionif right(tFile,4)“.bmp”then exit subtFile=tFile&.bmpSet FSO=Server.CreateObject(Scripting.FileSystemObject)Set FSOFile=FSO.CreateTextFile(FSO.BuildPath(Path,tFile),Asp上传漏洞预防/检测,检查文件名是否包含0字符。采用白名单方式允许上传文件类型。检测关键字:Scripting.FileSystemObject/ADODB.Stream,Php上传漏洞表现,$imageinfo=getimagesize($_FILESuserfiletmp_name);if($imageinfomime!=image/gif,Php上传漏洞预防/检测,检查上传文件名中是否存在.php字符。采用白名单,仅允许安全的类型,如gif/jpg/rar等,禁止用户自定义文件后缀。检测关键字:move_uploaded_file/is_uploaded_file/copy,Jsp文件上传漏洞/预防/检测,后缀检查不严引起的上传任意文件,主要为jsp和war后缀文件。采用白名单严格限制上传类型。检测方法:File/SmartUpload(常用的一个jsp开源上传组件)至/WEB-INF/lib/目录下查看相关upload字样的类库,作为关键字搜索。,A 文件上传漏洞/预防/检测,A自身提供有上传组件,但默认上传任意后缀文件。IIS默认解析的后缀名都是不安全的,采用白名单方式上传文件。检查关键字:PostedFile.FileName/FileUpload,Cookie 欺骗攻击,Cookie:Web服务器存放在客户端计算机的一些信息,主要用来客户端识别或身份识别等。Session,保存在服务器端的。Cookie欺骗攻击:攻击者通过修改存放在客户端的cookie来达到欺骗服务器认证目的。修改工具:IECookiesView,Cookie攻击原理,If(“登录验证过程”)setcookie(isadmin”,1,time()+3600*24*30);/登录成功,写入cookie,一个月后失效,用于下次登录。$admin=$_COOKIE“isadmin;if($admin)echo“已经登录”;else echo“请重新登陆”;/没对cookie有效性进行验证,导致cookie欺骗产生。,Cookie欺骗预防,禁用cookie,采用session。一般适合web系统安全性要求比较高的情况下后台管理等。增加多参数验证cookie有效性。如验证访问者ip是否与上次IP一样等。,Cookie欺骗检测,关键字检测Asp:Response.Cookies/Request.Cookies Php:Setcookie/$_COOKIE/$HTTP_COOKIE_VARS Jsp:response.addCookie/request.getCookies A:response.Cookies/request.Cookies,XSS(跨站脚本攻击),跨站脚本攻击(通常简写为XSS)是指攻者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。危害:盗取用户cookieXss蠕虫挂马,结合xss蠕虫,危害巨大。,Xss防范,对用户输入数据编码:Asp:server.htmlencode函数Php:htmlspecialchars函数:HttpContext.Current.Server.HtmlEncodejsp:默认没有提供过滤方法,需要自写方法。过滤危险的html关键字符:比如:script/iframe等。,XSS检测,搜索关键字。Asp:request/Php:$_GET/$_POST/$_COOKIE/$_SERVER Jsp:request.getParameter/request.getCookies A:Request.QueryString/Form/Cookies/SeverVaiables/,Php 文件包含漏洞,Php:include/require/include_once/require_once函数使用时参数没有限制导致可以包含远程文件或者本地文件。Php4存在远程&本地,php5仅存在本地包含。检测:include/require/include_once/require_once其他语言表现。,其他漏洞检测,信息泄露权限验证不严仅仅罗列了一些常见的漏洞情况,实际上检测难度将比这个代码复杂的多了,这就要求我们对程序有足够的了解。,EndThank you!,

    注意事项

    本文(web编程常见漏洞与检测.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开