常见安全漏洞及其解决方案

1、 SQL注入漏洞

漏洞描述:
SQL注入被广泛用于非法入侵网站服务器,获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中,对用户输入的数据没有做好过滤,导致恶意用户可以构造一些SQL语句让服务器去执行,从而导致数据库中的数据被窃取,篡改,删除,以及进一步导致服务器被入侵等危害。

SQL注入的攻击方式多种多样,较常见的一种方式是提前终止原SQL语句,然后追加一个新的SQL命令。为了使整个构造的字符串符合SQL语句语法,攻击者常用注释标记如“-- ”(注意空格)来终止后面的SQL字符串。执行时,此后的文本将被忽略。如某个网站的登录验证SQL查询代码为strSQL = "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的身份登录系统。
漏洞危害:
• 数据库信息泄漏,例如个人机密数据,帐户数据,密码等。
• 删除硬盘数据,破坏整个系统的运行。
• 数据库服务器被攻击,系统管理员帐户被窜改(例如ALTER LOGIN sa WITH PASSWORD=‘xxxxxx’)。
• 取得系统较高权限后,可以篡改网页以及进行网站挂马。
• 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统,植入后门程序(例如xp_cmdshell "net stop iisadmin"可停止服务器的IIS服务)。

解决方案:
• 输入过滤,对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进行合法性校验;对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。MySQL也有类似的转义函数mysql_escape_string和mysql_real_ escape_string。Asp的过滤参考此页面http://blogs.iis.net/nazim/archive/ 2008/04 /28/ filtering-sql-injection-from-classic-asp.aspx
• 在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。
• 使用其他更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件,例如ASP.NET的SqlDataSource对象或是 LINQ to SQL,安全API库如ESAPI。
• 使用SQL防注入系统。
• 严格限制数据库操作的权限。普通用户与系统管理员用户的权限要有严格的区分。建立专门的账户,同时加以权限限制,满足应用的需求即可。

2、 HTTPHOST头部攻击

漏洞描述:
一般通用web程序是如果想知道网站域名不是一件简单的事情,如果用一个固定的URI来作为域名会有各种麻烦。开发人员一般是依赖HTTPHostheader(比如在php里是_SERVER[“HTTP_HOST”]),而这个header很多情况下是靠不住的。而很多应用是直接把这个值不做html编码便输出到了页面中,比如:
<linkhref=“http://_SERVER[‘HOST’]”(Joomla)
还有的地方还包含有secretkey和token,
<ahref=“http://_SERVER[‘HOST’]?token=topsecret”>(Django,Gallery,others)
这样处理问题一般会很容易遭遇到两种常见的攻击:缓存污染和密码重置。缓存污染是指攻击者通过控制一个缓存系统来将一个恶意站点的页面返回给用户。密码重置这种攻击主要是因为发送给用户的内容是可以污染的,也就是说可以间接的劫持邮件发送内容。
参考:http://drops.wooyun.org/papers/1383

3、 管理后台

漏洞描述:由于http请求的特点,hostheader的值其实是不可信的。唯一可信的只有SERVER_NAME,这个在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法hostheader。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。建议两种方法同时使用。网站后台管理系统主要是用于对网站前台的信息管理,如文字、图片、影音、和其他日常使用文件的发布、更新、删除等操作,同时也包括会员信息、订单信息、访客信息的统计和管理。将管理后台暴露在外网,存在一定的安全风险

4、 用户认证信息明文传输

漏洞描述:尽量将管理后台放在内网。并做好用户的访问权限控制,保证登录密码的复杂性。用户认证信息不是通过https加密信道传输,导致用户名密码等敏感信息泄露。
解决方案:以https方式传输此检测误报可能性较大,需要人工验证。

5、 可能存在CSRF攻击

漏洞描述:CSRF是CrossSiteRequestForgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/POST的事情——这些事情用户未必知道和愿意做,你可以把它想做HTTP会话劫持。
解决方案:在Web应用程序侧防御CSRF漏洞,一般都是利用referer、token或者验证码jQuery是一个兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在XSS漏洞。
详情请参看:
http://ma.la/jquery_xss/
http://blog.jquery.com/2011/09/01/jquery-1-6-3-released/

6、 jQueryXSS

漏洞描述:jQuery是一个兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在XSS漏洞。
详情请参看:
http://ma.la/jquery_xss/
http://blog.jquery.com/2011/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、 跨站脚本漏洞(XSS/CSS,Cross Site Scripting)

漏洞描述:Web程序没有对攻击者提交的含有可执行代码的输入进行有效验证,在某页面返回给访问该Web程序的任意用户,可能导致这些代码在用户的浏览器解释执行。
若验证后不能触发弹框,可能是测试用例的问题,请在ie、firefox、chrome下测试,并关闭浏览器自带的xss筛选器测试。
Web站点把用户的输入未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行任意HTML/JS代码。这里所说的用户输入包括用户提交的GET、POST参数,还包含HTTPReferrer头,甚至是用户的Cookie。
跨站脚本类型包括:
1.非持久型XSS,也就是反射型XSS,是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务器段。
2.持久型XSS:这是危害最直接的跨站类型,跨站代码存储于服务端(如数据库中)。常见情况是某用户在论坛发贴,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript代码。
3.DOMXSS:是一种发生在客户端DOM(Document Object Model文档对象模型)DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如URI,location,referer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不需要提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOMXSS漏洞。
4.UTF-7XSS,是指由于没有指定页面编码,导致浏览器将编码以UTF-7解析,形成XSS。
5.MHTMLXSS,漏洞原理参见:http://www.80vul.com/webzine_0x05/0x05IE下MHTML协议带来的跨域危害.html
跨站脚本的危害:
1.帐号劫持-攻击者可以在会话cookie过期之前劫持用户的会话,并以用户的权限执行操作,如发布数据库查询并查看结果。
2.恶意脚本执行-用户可能在不知情的情况下执行攻击者注入到动态生成页面中的JavaScript、VBScript、ActiveX、HTML甚至Flash内容。
3.蠕虫传播-通过Ajax应用,与CSRF漏洞结合,跨站脚本可以以类似于病毒的方式传播。跨站脚本负载可以自动将其自身注入到页面中,并通过更多的跨站脚本轻易的重新注入同一主机,而所有这些都无需手动刷新页面。因此,跨站脚本可以使用复杂的HTTP方式发送多个请求,并以用户不可视的方式自我传播。
4.信息窃取-攻击者可以通过重新定向和伪造站点将用户连接到攻击者所选择的恶意服务器并获得用户所输入的任何信息。
5.拒绝服务-通常攻击者通过在包含有跨站脚本漏洞的站点上使用畸形的显示请求,就可以导致主机站点反复的自我查询,出现拒绝服务的情况。
6.浏览器重新定向-在某些使用帧的站点上,用户可能在实际上已经被重新定向到恶意站点的情况下误导为仍处在原始站点上,因为浏览权地址栏中的URL仍保持不变。这是由于没有重新定向整个页面,而只是执行JavaScript的帧。
7.控制用户设置-攻击者可以恶意更改用户设置。
解决方案:

1.对输入数据严格匹配,比如只接受数字输入的就不能输入其他字符。不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

2.输入过滤,应该在服务器端进行。PHP在设置magic_quotes_gpc为On的时候,会自动转义参数中的单双引号,但这不足以用于XSS漏洞的防御,仍然需要在代码级别防御。

3.输出编码:
一:用户输入的参数值会展现在HTML正文中或者属性值中例如:
1)html正文中<ahref=‘http://test.com’>Un-trustedinput
2)属性值:<inputname="searchword"value=“Un-trustedinput”>
此时需要将红色的不可信内容中做如下的转码(即将<>‘“转成html实体): <--&gt;<>--&gt;> '--&gt;' "--&gt;" –>` (反引号)

二:用户输入落在这里,如果无法避免的话,建议严格限制用户的输入,比如输入为整数时,要验证输入是否只包含数字。当输入为字符串时,将字符串用单引号或双引号包含起来,并且对用户的输入字符中包含的单双引号过滤或转换为HTML实体。
4.编码时使用ESAPI库或其他antixss库。
5.针对UTF-7XSS,应指定网页字符集编码。使用’Content-Type’头或标记。
6.针对MHTMLXSS,将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在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。

解决方案:目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.microsoft.com/technet/security/
http://technet.microsoft.com/en-us/library/cc959352.aspx此检测误报可能性较大,需要人工验证。

14、 CSRF

漏洞描述:CSRF是CrossSiteRequestForgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/POST的事情——这些事情用户未必知道和愿意做,你可以把它想做HTTP会话劫持。

解决方案:在Web应用程序侧防御CSRF漏洞,一般都是利用referer、token或者验证码测试发现WEB程序存在文件上传功能,文件上传可能会存在重大的安全隐患,在特定情况下会导致攻击者上传执行任意代码。

15、 HTTPHOST头部攻击

漏洞描述:一般通用web程序是如果想知道网站域名不是一件简单的事情,如果用一个固定的URI来作为域名会有各种麻烦。开发人员一般是依赖HTTPHostheader(比如在php里是_SERVER[“HTTP_HOST”]),而这个header很多情况下是靠不住的。而很多应用是直接把这个值不做html编码便输出到了页面中,比如:
<linkhref=“http://_SERVER[‘HOST’]”(Joomla)
还有的地方还包含有secretkey和token,
<ahref=“http://_SERVER[‘HOST’]?token=topsecret”>(Django,Gallery,others)
这样处理问题一般会很容易遭遇到两种常见的攻击:缓存污染和密码重置。缓存污染是指攻击者通过控制一个缓存系统来将一个恶意站点的页面返回给用户。密码重置这种攻击主要是因为发送给用户的内容是可以污染的,也就是说可以间接的劫持邮件发送内容。
参考:http://drops.wooyun.org/papers/1383

解决方案:由于http请求的特点,hostheader的值其实是不可信的。唯一可信的只有SERVER_NAME,这个在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法hostheader。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。建议两种方法同时使用。此检测误报可能性较大,需要人工验证。

16、 DOMXSS

漏洞描述:发生在客户端DOM(DocumentObjectModel文档对象模型)DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不需要提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOMXSS漏洞

解决方案:
1.对输入数据严格匹配,比如只接受数字输入的就不能输入其他字符。不仅要验证数据的类型,还要验证其格式、长度、范围和内容。
2.输入过滤,应该在服务器端进行。PHP在设置magic_quotes_gpc为On的时候,会自动转义参数中的单双引号,但这不足以用于XSS漏洞的防御,仍然需要在代码级别防御。
3.输出编码,一:用户输入的参数值会展现在HTML正文中或者属性值中例如:
1)html正文中<ahref=‘http://test.com’>Un-trustedinput
2)属性值:<inputname="searchword"value=“Un-trustedinput”>
此时需要将红色的不可信内容中做如下的转码(即将<>‘“转成html实体): <--&gt;<>--&gt;> '--&gt;' "--&gt;" –>`(反引号)

二:用户输入落在

最好不要让用户的输入落在这里,如果无法避免的话,建议严格限制用户的输入,比如输入为整数时,要验证输入是否只包含数字。当输入为字符串时,将字符串用单引号或双引号包含起来,并且对用户的输入字符中包含的单双引号过滤或转换为HTML实体。
4.编码时使用ESAPI库或其他antixss库。jQuery是一个兼容多浏览器的javascript库,经探测,被检测系统使用的jquery版本存在XSS漏洞。
详情请参看:
http://ma.la/jquery_xss/
http://blog.jquery.com/2011/09/01/jquery-1-6-3-released/

17、 ApacheTomcat版本低于4.1.37

漏洞描述:更新ApacheTomcat到最新版本该漏洞是通过版本号探测的,可能存在误报。
该版本ApacheTomcat存在多处安全漏洞,请更新到最新版本。
CVE-2008-0128,CVE-2008-1232,CVE-2008-2370
参考:
http://cve.scap.org.cn/CVE-2008-0128.html
http://cve.scap.org.cn/CVE-2008-1232.html
http://cve.scap.org.cn/CVE-2008-2370.html
解决方案:更新ApacheTomcat到最新版本

18、 目录浏览

漏洞描述:文件信息、敏感信息的泄露,为进一步的针对性攻击提供了信息
如:www.abc.com/databackup/若存在目录浏览,则数据库备份文件暴露就可被任意下载
解决方案:你必须确保此目录中不包含敏感信息。
可以在Web服务器配置中限制目录列表。建议修正所使用的Web服务器软件的目录权限设置。例如,在IIS中取消目录浏览:
在nginx中取消目录浏览:
去掉配置文件里面的目录浏览项:autoindexon;
在apache中取消目录浏览:
在Apache配置文件中的目录配置中的“Indexes”删除或者改为“-Indexes”发现设定的敏感关键字信息

19、 发现敏感关键字

漏洞描述:发现设定的敏感关键字信息

解决方案:用户认证信息不是通过https加密信道传输,导致用户名密码等敏感信息泄露。

20、 WEBDAV开启

漏洞描述:WebDAV是一种基于HTTP1.1协议的通信协议.它扩展了HTTP1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法。
使应用程序可直接对WebServer直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。当开启了WebDAV后,并且配置了目录可写,便会产生很严重的安全问题。
1禁用WebDAV。
2如果要使用WebDAV的话,加上权限验证。OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。开启该方法有可能泄漏一些敏感信息,为攻击者发起进一步攻击提供信息。
解决方案:建议关闭该功能

21、 用户认证信息明文传输

漏洞描述:用户认证信息不是通过https加密信道传输,导致用户名密码等敏感信息泄露。

解决方案:以https方式传输此检测误报可能性较大,需要人工验证。

22、 ApacheStruts类加载器安全绕过漏洞

漏洞描述:ApacheStruts框架是一个一个基于JavaServlets,JavaBeans,和JavaServerPages(JSP)的Web应用框架的开源项目。
ApacheStruts存在安全绕过漏洞,攻击者利用漏洞绕过某些安全限制和执行未经授权的操作。
参考:
http://www.cnvd.org.cn/flaw/show/CNVD-2014-02702
解决方案:下载补丁进行修复:
http://struts.apache.org/

23、 Cookie没有设置HttpOnly

COOKIE的HTTPOnlyflag没有设置,对于很多只依赖于cookie验证的网站来说,HttpOnlycookies是一个很好的解决方案,在支持HttpOnlycookies的浏览器中(IE6以上,FF3.0以上),javascript是无法读取和修改HttpOnlycookies,这样可让网站用户验证更加安全
解决方案:尽可能给cookie加上HTTPOnly属性

24、 发现文件上传点

漏洞描述:WEB程序存在文件上传功能,文件上传可能会存在重大的安全隐患,在特定情况下会导致攻击者上传执行任意代码。

25、 存在疑似XSS

漏洞描述:Web站点把用户的输入未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行任意HTML/JS代码。这里所说的用户输入包括用户提交的GET、POST参数,还包含HTTPReferrer头,甚至是用户的Cookie。

跨站脚本的危害:
1.帐号劫持-攻击者可以在会话cookie过期之前劫持用户的会话,并以用户的权限执行操作,如发布数据库查询并查看结果。

2.恶意脚本执行-用户可能在不知情的情况下执行攻击者注入到动态生成页面中的JavaScript、VBScript、ActiveX、HTML甚至Flash内容。

3.蠕虫传播-通过Ajax应用,与CSRF漏洞结合,跨站脚本可以以类似于病毒的方式传播。跨站脚本负载可以自动将其自身注入到页面中,并通过更多的跨站脚本轻易的重新注入同一主机,而所有这些都无需手动刷新页面。因此,跨站脚本可以使用复杂的HTTP方式发送多个请求,并以用户不可视的方式自我传播。

4.信息窃取-攻击者可以通过重新定向和伪造站点将用户连接到攻击者所选择的恶意服务器并获得用户所输入的任何信息。

5.拒绝服务-通常攻击者通过在包含有跨站脚本漏洞的站点上使用畸形的显示请求,就可以导致主机站点反复的自我查询,出现拒绝服务的情况。

6.浏览器重新定向-在某些使用帧的站点上,用户可能在实际上已经被重新定向到恶意站点的情况下误导为仍处在原始站点上,因为浏览权地址栏中的URL仍保持不变。这是由于没有重新定向整个页面,而只是执行JavaScript的帧。

7.控制用户设置-攻击者可以恶意更改用户设置。

解决方案:
1.对输入数据严格匹配,比如只接受数字输入的就不能输入其他字符。不仅要验证数据的类型,还要验证其格式、长度、范围和内容。
2.输入过滤,应该在服务器端进行。PHP在设置magic_quotes_gpc为On的时候,会自动转义参数中的单双引号,但这不足以用于XSS漏洞的防御,仍然需要在代码级别防御。
3.输出编码,一:用户输入的参数值会展现在HTML正文中或者属性值中例如:
1)html正文中<ahref=‘http://test.com’>Un-trustedinput
2)属性值:<inputname="searchword"value=“Un-trustedinput”>
此时需要将红色的不可信内容中做如下的转码(即将<>‘“转成html实体): <--&gt;<>--&gt;> '--&gt;' "--&gt;" –>`(反引号)

26、 敏感文件泄露

漏洞危害:例如备份文件、打包文件、系统接口、保密文档、管理后台这些文件可能会泄漏一些敏感信息,帮助恶意用户准备进一步攻击。

解决方案:在生产系统中删除或限制访问这些文件;用户认证信息不是通过https加密信道传输,导致用户名密码等敏感信息泄露。以https方式传输此检测误报可能性较大,需要人工验证。

27、 任意页面跳转

漏洞描述:Web应用程序接收到用户提交的URL参数后,没有对参数做“可信任URL”的验证,就向用户浏览器返回跳转到该URL的指令,例如:http://www.abc.com/redirect.do?url=www.hacker.com
危害:被用来实施钓鱼攻击

解决方案:限制跳转域名或对跳转进行验证,如白名单,黑名单限制,或带上token参数。发现设定的敏感关键字信息

28、 UTF-7 XSS

漏洞描述:指由于没有指定页面编码,导致浏览器将编码以UTF-7解析,形成XSS。

解决方案:应指定网页字符集编码。使用’Content-Type’ 头或标记

29、 Json劫持漏洞

漏洞描述:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。但是如果这种交互的方式用来传递敏感的数据,并且传输的时候没有做太多安全性控制的话将导致安全漏洞,根据敏感信息的不同导致会导致应用遭受不同级别的攻击。

解决方案:1 referer的来源限制,利用前端referer的不可伪造性来保障请求数据的应用来源于可信的地方,某些情况下(如存在xss)可能导致被绕过。
2 token的加入,利用token对调用者的身份进行认证,这种方式对于调用者的身份会要求力度较细,但是一旦出现xss也可能导致前端Token的泄露,从而导致保护失效。

30、 Nginx远程安全漏洞

漏洞危害:CVE:CVE-2013-2070 CNNVD:CNNVD-201305-235 nginx是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。Nginx中存在远程安全漏洞。攻击者可利用该漏 洞造成拒绝服务或获得敏感信息。

解决方案:目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接: http://nginx.org/

31、 nginxURIProcessing安全绕过漏洞

漏洞危害:CVE:CVE-2013-4547 CNNVD:CNNVD-201311-336 nginx是俄罗斯软件开发者Igor Sysoev所研发的一款HTTP和反向代理服务器,也可以作为邮件代理服务器。nginx 0.8.41至1.4.3版本和1.5.7之前的1.5.x版本中存在安全漏洞,当程序验证请求URIs包含未转义的空格字符时存在错误。远程攻击者可利 用该漏洞绕过既定的限制。

解决方案:目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接: http://mailman.nginx.org/pipermail/nginx-announce/2013/000125.html

32、 Nginx‘access.log’不安全文件权限漏洞

漏洞危害:CVE:CVE-2013-0337 CNNVD:CNNVD-201302-530 nginx是多平台的HTTP服务器和邮件代理服务器。Nginx中的access.log中存在不安全文件权限漏洞。本地攻击者利用该漏洞获得访问到全 局可读的日志文件权限进而从中提取敏感信息,信息的获得有助于其他攻击。

解决方案:无

33、 内网地址信息泄露.

漏洞危害:发现页面存在内网地址信息泄露风险,可能会对进一步的黑客攻击提供信息。

解决方案:外网生产环境去除内网地址信息。

34、 SSLv3POODLE漏洞

漏洞危害:这个漏洞和之前的 B.E.A.S.T ( B rowser E xploit A gainst S SL T LS) 非常相似,但是目前还没有可靠的解决办法,除非完全禁用 SSLv3 的支持。简单的说,攻击者可获取你加密流中的明文数据。

解决方案:
Apache
在Apache的SSL配置中禁用SSLv3和SSLv3:
SSLProtocolall-SSLv2-SSLv3
Nginx
在Nginx只允许使用TLS 协议:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

35、 ApacheHTTPServer拒绝服务漏洞

漏洞危害:该漏洞是通过版本号探测的,可能存在误报Apache HTTP Server是一款开源的流行的HTTPD服务程序.当处理包含大量Ranges头的HTTP请求时,ByteRange过滤器存在一个错误,攻击者可以向服务器发送特制HTTP请求,消耗大量内存,造成应用程序崩溃CVE-2011-3192

解决方案:更新Apache到最新版本http://httpd.apache.org

36、 点击劫持:缺少X-Frame-Options头

漏洞危害:Clickjacking(点击劫持)是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼在2008年首创的。是一种视觉欺骗手段,在web端就是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。服务器端没有返 回X-Frame-Options头部,导致该站点存在点击劫持攻击的威胁。X-Frame-Options HTTP 响应头,可以指示浏览器是否应该加载一个iframe中的页面。网站可以通过设置X-Frame-Options阻止站点内的页面被其他页面嵌入从而防止 点击劫持。如果您确定不需要将网站内容嵌入其他站点中,请开启选项。

解决方案:在站点配置文件httpd.conf中添加如下配置,限制只有站点内的页面才可以嵌入iframe。Header always append X-Frame-Options SAMEORIGIN
配置之后重启apache使其生效。该配置方式对IBM HTTP Server同样适用。如果同一apache服务器上有多个站点,只想针对一个站点进行配置,可以修改.htaccess文件,添加如下内容:Header append X-FRAME-OPTIONS “SAMEORIGIN"到 nginx/conf文件夹下,修改nginx.conf ,添加如下内容:add_header X-Frame-Options"SAMEORIGIN”;重启Nginx服务。

37、 windowsIISHTTP.SYS远程代码漏洞

漏洞危害:在4月的补丁日,微软通过标记为“高危”的MS15-034补丁,修复了HTTP.SYS中一处远程代码漏洞CVE-2015-1635。据微软公告 (https://technet.microsoft.com/en-us/library/security/MS15-034)所称,当存在该漏洞 的HTTP服务器接收到精心构造的HTTP请求时,可能触发远程代码在目标系统以系统权限执行。这是对于服务器系统影响不小的安全漏洞,任何安装了微软IIS 6.0以上的的Windows Server 2008 R2/Server 2012/Server 2012 R2以及Windows 7/8/8.1操作系统都受到这个漏洞的影响。

解决方案:尽快安装微软官方补丁(地址:https://technet.microsoft.com/zh-cn/library/security/MS15-034)。补丁安装完毕后,要及时重启服务器。

38、 Flash跨域访问

漏洞危害:crossdomain.xml 是一个策略文件,定义 Web 页面资源是否能从不同域的 Flash 应用程序进行访问。当 Web 站点的 crossdomain.xml 策略太宽容(例如,允许任何域的 Flash 文件访问站点资源)时,会产生问题。
可能会导致“跨站点伪造请求”或“跨站点跟踪”(“跨站点脚本编制”的变体)之类的攻击。

解决方案:请设置crossdomain.xml 文件中 allow-access-from 实体的 domain 属性来包括特定域名,而不是任何域。

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值