常见漏洞及其及解决方法.docx
- 文档编号:26767406
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:19
- 大小:28.88KB
常见漏洞及其及解决方法.docx
《常见漏洞及其及解决方法.docx》由会员分享,可在线阅读,更多相关《常见漏洞及其及解决方法.docx(19页珍藏版)》请在冰豆网上搜索。
常见漏洞及其及解决方法
常见漏洞及其解决方案
1、SQL注入漏洞
漏洞描述:
SQL注入被广泛用于非法入侵效劳器,获取控制权。
它是应用层上的一种平安漏洞。
通常在设计存在缺陷的程序中,对用户输入的数据没有做好过滤,导致恶意用户可以构造一些SQL语句让效劳器去执行,从而导致数据库中的数据被窃取,篡改,删除,以及进一步导致效劳器被入侵等危害。
SQL注入的攻击方式多种多样,较常见的一种方式是提前终止原SQL语句,然后追加一个新的SQL命令。
为了使整个构造的字符串符合SQL语句语法,攻击者常用注释标记如“--〞〔注意空格〕来终止后面的SQL字符串。
执行时,此后的文本将被忽略。
如*个的登录验证SQL查询代码为strSQL="SELECT*FROMusersWHEREname=‘〞+userName+“’andpw=’〞+passWord+〞’〞,其中userName和passWord是用户输入的参数值,用户可以输入任何的字符串。
如果用户输入的userName=admin’--,passWord为空,则整个SQL语句变为SELECT*FROMusersWHEREname=’admin’--‘andpw=’’,等价于SELECT*FROMusersWHEREname=’admin’,将绕过对密码的验证,直接获得以admin的身份登录系统。
漏洞危害:
•数据库信息泄漏,例如个人**数据,**数据,密码等。
•删除硬盘数据,破坏整个系统的运行。
•数据库效劳器被攻击,系统管理员**被窜改〔例如ALTERLOGINsaWITHPASSWORD='******'〕。
•取得系统较高权限后,可以篡改网页以及进展挂马。
•经由数据库效劳器提供的操作系统支持,让黑客得以修改或控制操作系统,植入后门程序〔例如*p_cmdshell"netstopiisadmin"可停顿效劳器的IIS效劳〕。
解决方案:
•输入过滤,对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进展合法性校验;对于字符串,对SQL语句特殊字符进展转义(单引号转成两个单引号,双引号转成两个双引号)。
MySQL也有类似的转义函数mysql_escape_string和mysql_real_escape_string。
Asp的过滤参考此页面2021/04/28/filtering-sql-injection-from-classic-asp.asp*
•在设计应用程序时,完全使用参数化查询〔ParameterizedQuery〕来设计数据访问功能。
•使用其他更平安的方式连接SQL数据库。
例如已修正过SQL注入问题的数据库连接组件,例如ASP.NET的SqlDataSource对象或是LINQtoSQL,平安API库如ESAPI。
•使用SQL防注入系统。
•严格限制数据库操作的权限。
普通用户与系统管理员用户的权限要有严格的区分。
建立专门的账户,同时加以权限限制,满足应用的需求即可。
2、HOST头部攻击
漏洞描述:
一般通用web程序是如果想知道域名不是一件简单的事情,如果用一个固定的URI来作为域名会有各种麻烦。
开发人员一般是依赖Hostheader〔比方在php里是_SERVER["_HOST"]〕,而这个header很多情况下是靠不住的。
而很多应用是直接把这个值不做html编码便输出到了页面中,比方:
还有的地方还包含有secretkey和token, token=topsecret">(Django,Gallery,others) 这样处理问题一般会很容易遭遇到两种常见的攻击: 缓存污染和密码重置。 缓存污染是指攻击者通过控制一个缓存系统来将一个恶意站点的页面返回给用户。 密码重置这种攻击主要是因为发送给用户的内容是可以污染的,也就是说可以间接的劫持发送内容。 参考: 3、管理后台 漏洞描述: 由于请求的特点,hostheader的值其实是不可信的。 唯一可信的只有SERVER_NAME,这个在Apache和Ngin*里可以通过设置一个虚拟机来记录所有的非法hostheader。 在Ngin*里还可以通过指定一个SERVER_NAME,Apache也可以通过指定一个SERVER_NAME并开启UseCanonicalName选项。 建议两种方法同时使用。 后台管理系统主要是用于对前台的信息管理,如文字、图片、影音、和其他日常使用文件的发布、更新、删除等操作,同时也包括会员信息、订单信息、访客信息的统计和管理。 将管理后台暴露在外网,存在一定的平安风险 4、用户认证信息明文传输 漏洞描述: 尽量将管理后台放在内网。 并做好用户的访问权限控制,保证登录密码的复杂性。 用户认证信息不是通过s加密信道传输,导致用户名密码等敏感信息泄露。 解决方案: 以s方式传输此检测误报可能性较大,需要人工验证。 5、可能存在CSRF攻击 漏洞描述: CSRF是CrossSiteRequestForgery的缩写〔也缩写为*SRF〕,直译过来就是跨站请求伪造的意思,也就是在用户会话下对*个CGI做一些GET/POST的事情——这些事情用户未必知道和愿意做,你可以把它想做会话劫持。 解决方案: 在Web应用程序侧防御CSRF漏洞,一般都是利用referer、token或者验证码jQuery是一个兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在*SS漏洞。 详情请参看: ma.la/jquery_*ss/ blog.jquery./2021/09/01/jquery-1-6-3-released/ 6、jQuery*SS 漏洞描述: jQuery是一个兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在*SS漏洞。 详情请参看: ma.la/jquery_*ss/ blog.jquery./2021/09/01/jquery-1-6-3-released/ 解决方案: 使用最新版本的jquery 7、发现Web效劳器默认页面 解决方案: 在Web应用程序侧防御CSRF漏洞,一般都是利用referer、token或者验证码发现Web效劳器r默认页面,如果该web效劳器不被使用,建议关闭。 8、效劳器开启OPTIONS方法 解决方案: 如果该web效劳器不被使用,建议关闭OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。 通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解效劳器的性能。 开启该方法有可能泄漏一些敏感信息,为攻击者发起进一步攻击提供信息 9、存在Web效劳器默认欢迎页面 漏洞描述: 建议关闭该功能该Web效劳器有一个默认的欢迎页面。 如果你不使用这台Web效劳器,它应该被禁用,因为它可能会造成平安威胁。 解决方案: 无影响,如此效劳器无web应用,建议禁用或删除此页面。 10、跨站脚本漏洞〔*SS/CSS,CrossSiteScripting〕 漏洞描述: Web程序没有对攻击者提交的含有可执行代码的输入进展有效验证,在*页面返回给访问该Web程序的任意用户,可能导致这些代码在用户的浏览器解释执行。 假设验证后不能触发弹框,可能是测试用例的问题,请在ie、firefo*、chrome下测试,并关闭浏览器自带的*ss筛选器测试。 Web站点把用户的输入未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行任意HTML/JS代码。 这里所说的用户输入包括用户提交的GET、POST参数,还包含Referrer头,甚至是用户的Cookie。 跨站脚本类型包括: 1.非持久型*SS,也就是反射型*SS,是目前最普遍的跨站类型。 跨站代码一般存在于中,请求这样的时,跨站代码经过效劳端反射回来,这类跨站的代码不存储到效劳器段。 2.持久型*SS: 这是危害最直接的跨站类型,跨站代码存储于效劳端〔如数据库中〕。 常见情况是*用户在论坛发贴,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript代码。 3.DOM*SS: 是一种发生在客户端DOM〔DocumentObjectModel文档对象模型〕DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、构造和样式,处理后的结果能够成为显示页面的一局部。 DOM中有很多对象,其中一些是用户可以操纵的,如URI,location,referer等。 客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不需要提交数据到效劳器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM*SS漏洞。 4.UTF-7*SS,是指由于没有指定页面编码,导致浏览器将编码以UTF-7解析,形成*SS。 5.MHTML*SS,漏洞原理参见: .80vul./webzine_0*05/0*05IE下MHTML协议带来的跨域危害.html 跨站脚本的危害: 1.**劫持-攻击者可以在会话cookie过期之前劫持用户的会话,并以用户的权限执行操作,如发布数据库查询并查看结果。 2.恶意脚本执行-用户可能在不知情的情况下执行攻击者注入到动态生成页面中的JavaScript、VBScript、Active*、HTML甚至Flash内容。 3.蠕虫传播-通过Aja*应用,与CSRF漏洞结合,跨站脚本可以以类似于病毒的方式传播。 跨站脚本负载可以自动将其自身注入到页面中,并通过更多的跨站脚本轻易的重新注入同一主机,而所有这些都无需手动刷新页面。 因此,跨站脚本可以使用复杂的方式发送多个请求,并以用户不可视的方式自我传播。 4.信息窃取-攻击者可以通过重新定向和伪造站点将用户连接到攻击者所选择的恶意效劳器并获得用户所输入的任何信息。 5.拒绝效劳-通常攻击者通过在包含有跨站脚本漏洞的站点上使用畸形的显示请求,就可以导致主机站点反复的自我查询,出现拒绝效劳的情况。 6.浏览器重新定向-在*些使用帧的站点上,用户可能在实际上已经被重新定向到恶意站点的情况下误导为仍处在原始站点上,因为浏览权地址栏中的URL仍保持不变。 这是由于没有重新定向整个页面,而只是执行JavaScript的帧。 7.控制用户设置-攻击者可以恶意更改用户设置。 解决方案: 1.对输入数据严格匹配,比方只承受数字输入的就不能输入其他字符。 不仅要验证数据的类型,还要验证其格式、长度、*围和内容。 2.输入过滤,应该在效劳器端进展。 PHP在设置magic_quotes_gpc为On的时候,会自动转义参数中的单双引号,但这缺乏以用于*SS漏洞的防御,仍然需要在代码级别防御。 3.输出编码: 一: 用户输入的参数值会展现在HTML正文中或者属性值中例如: 1〕html正文中 2〕属性值: <inputname="searchword"value="Un-trustedinput"> 此时需要将红色的不可信内容中做如下的转码(即将<>‘“`转成html实体): <-->< >-->> '-->' "-->" `-->` (反引号) 二: 用户输入落在 最好不要让用户的输入落在这里,如果无法防止的话,建议严格限制用户的输入,比方输入为整数时,要验证输入是否只包含数字。 当输入为字符串时,将字符串用单引号或双引号包含起来,并且对用户的输入字符中包含的单双引号过滤或转换为HTML实体。 4.编码时使用ESAPI库或其他anti*ss库。 5.针对UTF-7*SS,应指定网页字符集编码。 使用'Content-Type'头或<meta>标记。 6.针对MHTML*SS,将url参数值中的%0d、%0a、%0D、%0A删除。 严格限制URL参数输入值的格式,不能包含不必要的特殊字符〔0d、%0a等〕。 如确实需要换行,将其转换为 11、暗链 漏洞描述: 暗链在这里通俗的说,中的一种,也称为黑链。 如果再通俗的说一点“暗链〞就是看不见的,“暗链〞在中的做的非常隐蔽,它和友情有相似之处,可以有效地提高PR值。 黑客取得控制权后,往往通过在被控制的首页放置暗链,从而到达欺骗搜索引擎的效果,使得自身搜索引擎权重大幅提高,在搜索引擎中的排名大幅上升。 但这并不是无代价的,受到损失最大的就是被控制的,往往随着暗链所指向的的权重不断提高,存在暗链的的权重将不断下降,搜索引擎排名也必然一再下降,严重影响的影响力。 另一方面黑客往往放置的大多为私服、博彩、**等非法的,对于被暗链来说,这无疑也有着巨大的风险。 解决方案: 删除暗链信息,对系统进展彻底的平安检查ASP.NET用加密的方式保护敏感信息,但ASP.NET的加密实现方式存在漏洞,可以被解密,所以存在信息泄漏的漏洞。 12、ASP.NET信息泄漏 漏洞描述: ASP.NET由于加密填充验证过程中处理错误不当,导致存在一个信息披露漏洞。 成功利用此漏洞的攻击者可以读取效劳器加密的数据,例如视图状态。 此漏洞还可以用于数据篡改,如果成功利用,可用于解密和篡改效劳器加密的数据。 虽然攻击者无法利用此漏洞来执行代码或直接提升他们的用户权限,但此漏洞可用于产生信息,这些信息可用于试图进一步危及受影响系统的平安。 解决方案: 安装微软的MS10-070补丁。 InternetInformationServices〔IIS,互联网信息效劳〕是由微软公司提供的基于运行MicrosoftWindows的互联网根本效劳。 13、MicrosoftIIS文件枚举漏洞 漏洞描述: MicrosoftIIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络效劳器根目录中的文件。 解决方案: 目前厂商已经发布了升级补丁以修复这个平安问题,请到厂商的主页下载: .microsoft./technet/security/ technet.microsoft./en-us/library/cc959352.asp*此检测误报可能性较大,需要人工验证。 14、CSRF 漏洞描述: CSRF是CrossSiteRequestForgery的缩写〔也缩写为*SRF〕,直译过来就是跨站请求伪造的意思,也就是在用户会话下对*个CGI做一些GET/POST的事情——这些事情用户未必知道和愿意做,你可以把它想做会话劫持。 解决方案: 在Web应用程序侧防御CSRF漏洞,一般都是利用referer、token或者验证码测试发现WEB程序存在文件上传功能,文件上传可能会存在重大的平安隐患,在特定情况下会导致攻击者上传执行任意代码。 15、HOST头部攻击 漏洞描述: 一般通用web程序是如果想知道域名不是一件简单的事情,如果用一个固定的URI来作为域名会有各种麻烦。 开发人员一般是依赖Hostheader〔比方在php里是_SERVER["_HOST"]〕,而这个header很多情况下是靠不住的。 而很多应用是直接把这个值不做html编码便输出到了页面中,比方: 还有的地方还包含有secretkey和token, token=topsecret">(Django,Gallery,others) 这样处理问题一般会很容易遭遇到两种常见的攻击: 缓存污染和密码重置。 缓存污染是指攻击者通过控制一个缓存系统来将一个恶意站点的页面返回给用户。 密码重置这种攻击主要是因为发送给用户的内容是可以污染的,也就是说可以间接的劫持发送内容。 参考: 解决方案: 由于请求的特点,hostheader的值其实是不可信的。 唯一可信的只有SERVER_NAME,这个在Apache和Ngin*里可以通过设置一个虚拟机来记录所有的非法hostheader。 在Ngin*里还可以通过指定一个SERVER_NAME,Apache也可以通过指定一个SERVER_NAME并开启UseCanonicalName选项。 建议两种方法同时使用。 此检测误报可能性较大,需要人工验证。 16、DOM*SS 漏洞描述: 发生在客户端DOM〔DocumentObjectModel文档对象模型〕DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、构造和样式,处理后的结果能够成为显示页面的一局部。 DOM中有很多对象,其中一些是用户可以操纵的,如uRI,location,refelTer等。 客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不需要提交数据到效劳器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM*SS漏洞 解决方案: 1.对输入数据严格匹配,比方只承受数字输入的就不能输入其他字符。 不仅要验证数据的类型,还要验证其格式、长度、*围和内容。 2.输入过滤,应该在效劳器端进展。 PHP在设置magic_quotes_gpc为On的时候,会自动转义参数中的单双引号,但这缺乏以用于*SS漏洞的防御,仍然需要在代码级别防御。 3.输出编码,一: 用户输入的参数值会展现在HTML正文中或者属性值中例如: 1〕html正文中 2〕属性值: <inputname="searchword"value="Un-trustedinput"> 此时需要将红色的不可信内容中做如下的转码(即将<>‘“`转成html实体): <-->< >-->> '-->' "-->" `-->`(反引号) 二: 用户输入落在 最好不要让用户的输入落在这里,如果无法防止的话,建议严格限制用户的输入,比方输入为整数时,要验证输入是否只包含数字。 当输入为字符串时,将字符串用单引号或双引号包含起来,并且对用户的输入字符中包含的单双引号过滤或转换为HTML实体。 4.编码时使用ESAPI库或其他anti*ss库。 jQuery是一个兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在*SS漏洞。 详情请参看: ma.la/jquery_*ss/ blog.jquery./2021/09/01/jquery-1-6-3-released/ 17、ApacheTomcat版本低于 漏洞描述: 更新ApacheTomcat到最新版本该漏洞是通过版本号探测的,可能存在误报。 该版本ApacheTomcat存在多处平安漏洞,请更新到最新版本。 CVE-2021-0128,CVE-2021-1232,CVE-2021-2370 参考: cve.scap.org./CVE-2021-0128.html cve.scap.org./CVE-2021-1232.html cve.scap.org./CVE-2021-2370.html 解决方案: 更新ApacheTomcat到最新版本 18、目录浏览 漏洞描述: 文件信息、敏感信息的泄露,为进一步的针对性攻击提供了信息 如: .abc./databackup/假设存在目录浏览,则数据库备份文件暴露就可被任意下载 解决方案: 你必须确保此目录中不包含敏感信息。 可以在Web效劳器配置中限制目录列表。 建议修正所使用的Web效劳器软件的目录权限设置。 例如,在IIS中取消目录浏览: 在ngin*中取消目录浏览: 去掉配置文件里面的目录浏览项: autoinde*on; 在apache中取消目录浏览: 在Apache配置文件中的目录配置中的“Inde*es〞删除或者改为“-Inde*es〞发现设定的敏感关键字信息 19、发现敏感关键字 漏洞描述: 发现设定的敏感关键字信息 解决方案: 用户认证信息不是通过s加密信道传输,导致用户名密码等敏感信息泄露。 20、WEBDAV开启 漏洞描述: WebDAV是一种基于1.1协议的通信协议.它扩展了1.1,在GET、POST、HEAD等几个标准方法以外添加了一些新的方法。 使应用程序可直接对WebServer直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。 当开启了WebDAV后,并且配置了目录可写,便会产生很严重的平安问题。 1禁用WebDAV。 2如果要使用WebDAV的话,加上权限验证。 OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。 通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解效劳器的性能。 开启该方法有可能泄漏一些敏感信息,为攻击者发起进一步攻击提供信息。 解决方案: 建议关闭该功能 21、用户认证信息明文传输 漏洞描述: 用户认证信息不是通过s加密信道传输,导致用户名密码等敏感信息泄露。 解决方案: 以s方式传输此检测误报可能性较大,需要人工验证。 22、ApacheStruts类加载器平安绕过漏洞 漏洞描述: ApacheStruts框架是一个一个基于JavaServlets,JavaBeans,和JavaServerPages(JSP)的Web应用框架的开源工程。 ApacheStruts存在平安绕过漏洞,攻击者利用漏洞绕过*些平安限制和执行XX的操作。 参考: .vd.org./flaw/show/VD-2021-02702 解决方案: 下载补丁进展修复: 23、Cookie没有设置Only COOKIE的Onlyflag没有设置,对于很多只依赖于cookie验证的来说,Onlycookies是一个很好的解决方案,在支持Onlycookies的浏览器中〔IE6以上,FF3.0以上〕,javascript是无法读取和修改Onlycookies,这样可让用户验证更加平安 解决方案: 尽可能给cookie加上Only属性 24、发现文件上传点 漏洞描述: WEB程序存在文件上传功能,文件上传可能会存在重大的平安隐患,在特定情况下会导致攻击者上传执行任意代码。 25、存在疑似*SS 漏洞描述: Web站点把用户的输入未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行任意HTML/JS代码。 这里所说的用户输入包括用户提交的GET、POST参数,还包含Referrer头,甚至是用户的Cookie。 跨站脚本的危害: 1.**劫持-攻击者可以在会话cookie过期之前劫持用户的会话,并以用户的权限执行操作,如发布数据库查询并查看结果。 2.恶意脚本执行-用户可能在不知情的情况下执行攻击者注入到动态生成页面中的JavaScript、VBScript
输出。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 漏洞 及其 解决方法
![提示](https://static.bdocx.com/images/bang_tan.gif)