常见漏洞及其解决方法

上传人:鲁** 文档编号:552761886 上传时间:2023-12-25 格式:DOCX 页数:19 大小:32.78KB
返回 下载 相关 举报
常见漏洞及其解决方法_第1页
第1页 / 共19页
常见漏洞及其解决方法_第2页
第2页 / 共19页
常见漏洞及其解决方法_第3页
第3页 / 共19页
常见漏洞及其解决方法_第4页
第4页 / 共19页
常见漏洞及其解决方法_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《常见漏洞及其解决方法》由会员分享,可在线阅读,更多相关《常见漏洞及其解决方法(19页珍藏版)》请在金锄头文库上搜索。

1、常用漏洞及其解决方案1、 SQL注入漏洞漏洞描述:SQL注入被广泛用于非法入侵网站服务器,获取网站控制权。它是应用层上的一种安全漏洞。一般在设计存在缺陷的程序中,对顾客输入的数据没有做好过滤,导致歹意顾客可以构造某些SQL语句让服务器去执行,从而导致数据库中的数据被窃取,篡改,删除,以及进一步导致服务器被入侵等危害。SQL注入的袭击方式多种多样,较常用的一种方式是提前终结原SQL语句,然后追加一种新的SQL命令。为了使整个构造的字符串符合SQL语句语法,袭击者常用注释标记如“- ”(注意空格)来终结背面的SQL字符串。执行时,此后的文本将被忽视。如某个网站的登录验证SQL查询代码为strSQL

2、 = SELECT * FROM users WHERE name = ” + userName + “ and pw =” + passWord +”, 其中userName和passWord是顾客输入的参数值,顾客可以输入任何的字符串。如果顾客输入的userName=admin- ,passWord为空,则整个SQL语句变为SELECT * FROM users WHERE name=admin- and pw=,等价于SELECT * FROM users WHERE name=admin,将绕过对密码的验证,直接获得以admin的身份登录系统。漏洞危害:数据库信息泄漏,例如个人机密数据

3、,帐户数据,密码等。删除硬盘数据,破坏整个系统的运营。数据库服务器被袭击,系统管理员帐户被窜改(例如ALTER LOGIN sa WITH PASSWORD=xxxxxx)。获得系统较高权限后,可以篡改网页以及进行网站挂马。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统,植入后门程序(例如xp_cmdshell net stop iisadmin可停止服务器的IIS服务)。解决方案:输入过滤,对于整数,判断变量与否符合0-9的值;其她限定值,也可以进行合法性校验;对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。MySQL也有类似的转义函

4、数mysql_escape_string和mysql_real_ escape_string。Asp的过滤参照此页面在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。使用其她更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件,例如ASP.NET的SqlDataSource对象或是 LINQ to SQL,安全API库如ESAPI。使用SQL防注入系统。严格限制数据库操作的权限。一般顾客与系统管理员顾客的权限要有严格的辨别。建立专门的账户,同步加以权限限制,满足应用的需求即可。2、 HTTPHOST头部袭击漏洞描述:一般通用w

5、eb程序是如果想懂得网站域名不是一件简朴的事情,如果用一种固定的URI来作为域名会有多种麻烦。开发人员一般是依赖HTTPHostheader(例如在php里是_SERVERHTTP_HOST),而这个header诸多状况下是靠不住的。而诸多应用是直接把这个值不做html编码便输出到了页面中,例如:linkhref=http:/_SERVERHOST(Joomla)尚有的地方还包具有secretkey和token,(Django,Gallery,others)这样解决问题一般会很容易遭遇到两种常用的袭击:缓存污染和密码重置。缓存污染是指袭击者通过控制一种缓存系统来将一种歹意站点的页面返回给顾客。

6、密码重置这种袭击重要是由于发送给顾客的内容是可以污染的,也就是说可以间接的劫持邮件发送内容。参照:3、 管理后台漏洞描述:由于http祈求的特点,hostheader的值其实是不可信的。唯一可信的只有SERVER_NAME,这个在Apache和Nginx里可以通过设立一种虚拟机来记录所有的非法hostheader。在Nginx里还可以通过指定一种SERVER_NAME名单,Apache也可以通过指定一种SERVER_NAME名单并启动UseCanonicalName选项。建议两种措施同步使用。网站后台管理系统重要是用于对网站前台的信息管理,如文字、图片、影音、和其她平常使用文献的发布、更新、删

7、除等操作,同步也涉及会员信息、订单信息、访客信息的记录和管理。将管理后台暴露在外网,存在一定的安全风险4、 顾客认证信息明文传播漏洞描述:尽量将管理后台放在内网。并做好顾客的访问权限控制,保证登录密码的复杂性。顾客认证信息不是通过https加密信道传播,导致顾客名密码等敏感信息泄露。解决方案:以https方式传播此检测误报也许性较大,需要人工验证。5、 也许存在CSRF袭击漏洞描述:CSRF是CrossSiteRequestForgery的缩写(也缩写为XSRF),直译过来就是跨站祈求伪造的意思,也就是在顾客会话下对某个CGI做某些GET/POST的事情这些事情顾客未必懂得和乐意做,你可以把它

8、想做HTTP会话劫持。解决方案:在Web应用程序侧防御CSRF漏洞,一般都是运用referer、token或者验证码jQuery是一种兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在XSS漏洞。详情请参看:6、 jQueryXSS漏洞描述:jQuery是一种兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在XSS漏洞。详情请参看:解决方案:使用最新版本的jquery7、 发现Web服务器默认页面解决方案:在Web应用程序侧防御CSRF漏洞,一般都是运用referer、token或者验证码发现Web服务器r默认页面,如果该web服

9、务器不被使用,建议关闭。8、 服务器启动OPTIONS措施解决方案:如果该web服务器不被使用,建议关闭OPTIONS措施是用于祈求获得由Request-URI标记的资源在祈求/响应的通信过程中可以使用的功能选项。通过这个措施,客户端可以在采用具体资源祈求之前,决定对该资源采用何种必要措施,或者理解服务器的性能。启动该措施有也许泄漏某些敏感信息,为袭击者发起进一步袭击提供信息9、 存在Web服务器默认欢迎页面漏洞描述:建议关闭该功能该Web服务器有一种默认的欢迎页面。如果你不使用这台Web服务器,它应当被禁用,由于它也许会导致安全威胁。解决方案:无影响,如此服务器无web应用,建议禁用或删除此

10、页面。10、 跨站脚本漏洞(XSS/CSS,Cross Site Scripting)漏洞描述:Web程序没有对袭击者提交的具有可执行代码的输入进行有效验证,在某页面返回给访问该Web程序的任意顾客,也许导致这些代码在顾客的浏览器解释执行。若验证后不能触发弹框,也许是测试用例的问题,请在ie、firefox、chrome下测试,并关闭浏览器自带的xss筛选器测试。Web站点把顾客的输入未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以运用该漏洞执行任意HTML/JS代码。这里所说的顾客输入涉及顾客提交的GET、POST参数,还涉及HTTPReferrer头,甚至是

11、顾客的Cookie。跨站脚本类型涉及:1非持久型XSS,也就是反射型XSS,是目前最普遍的跨站类型。跨站代码一般存在于链接中,祈求这样的链接时,跨站代码通过服务端反射回来,此类跨站的代码不存储到服务器段。2持久型XSS:这是危害最直接的跨站类型,跨站代码存储于服务端(如数据库中)。常用状况是某顾客在论坛发贴,如果论坛没有过滤顾客输入的Javascript代码数据,就会导致其她浏览此贴的顾客的浏览器会执行发贴人所嵌入的Javascript代码。3DOMXSS:是一种发生在客户端DOM(Document Object Model文档对象模型)DOM是一种与平台、编程语言无关的接口,它容许程序或脚本

12、动态地访问和更新文档内容、构造和样式,解决后的成果可以成为显示页面的一部分。DOM中有诸多对象,其中某些是顾客可以操纵的,如URI,location,referer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不需要提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有通过严格确认,就会产生DOMXSS漏洞。4UTF-7XSS,是指由于没有指定页面编码,导致浏览器将编码以UTF-7解析,形成XSS。5MHTMLXSS,漏洞原理参见:跨站脚本的危害:1帐号劫持-袭击者可以在会话cookie过期之前劫持顾客的会话,并以顾客的权限执行操作,如发布数据库查询

13、并查当作果。2歹意脚本执行-顾客也许在不知情的状况下执行袭击者注入到动态生成页面中的JavaScript、VBScript、ActiveX、HTML甚至Flash内容。3蠕虫传播-通过Ajax应用,与CSRF漏洞结合,跨站脚本可以以类似于病毒的方式传播。跨站脚本负载可以自动将其自身注入到页面中,并通过更多的跨站脚本容易的重新注入同一主机,而所有这些都无需手动刷新页面。因此,跨站脚本可以使用复杂的HTTP方式发送多种祈求,并以顾客不可视的方式自我传播。4信息窃取-袭击者可以通过重新定向和伪造站点将顾客连接到袭击者所选择的歹意服务器并获得顾客所输入的任何信息。5回绝服务-一般袭击者通过在包具有跨站

14、脚本漏洞的站点上使用畸形的显示祈求,就可以导致主机站点反复的自我查询,浮现回绝服务的状况。6浏览器重新定向-在某些使用帧的站点上,顾客也许在事实上已经被重新定向到歹意站点的状况下误导为仍处在原始站点上,由于浏览权地址栏中的URL仍保持不变。这是由于没有重新定向整个页面,而只是执行JavaScript的帧。7控制顾客设立-袭击者可以歹意更改顾客设立。解决方案:1对输入数据严格匹配,例如只接受数字输入的就不能输入其她字符。不仅要验证数据的类型,还要验证其格式、长度、范畴和内容。2输入过滤,应当在服务器端进行。PHP在设立magic_quotes_gpc为On的时候,会自动转义参数中的单双引号,但这

15、局限性以用于XSS漏洞的防御,仍然需要在代码级别防御。3输出编码:一:顾客输入的参数值会展目前HTML正文中或者属性值中例如:1)html正文中Un-trustedinput2)属性值:<inputname=searchwordvalue=Un-trustedinput>此时需要将红色的不可信内容中做如下的转码(即将“转成html实体):->->->->->(反引号)二:顾客输入落在的内容中,例如:varmymsg=Un-trustedinput;varuin=Un-trustedinput;最佳不要让顾客的输入落在顾客输入这里,如果无法避免的话,建议严格限制顾客的输入,例如输入为整数时,要验证输入与否只涉及数字。当输入为字符串时,将字符串用单引号或双引号涉及起来,并且对顾客的输入字符中涉及的单双引

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号