常见Web漏洞描述及加固建议.pdf
- 文档编号:14658305
- 上传时间:2023-06-25
- 格式:PDF
- 页数:32
- 大小:646.36KB
常见Web漏洞描述及加固建议.pdf
《常见Web漏洞描述及加固建议.pdf》由会员分享,可在线阅读,更多相关《常见Web漏洞描述及加固建议.pdf(32页珍藏版)》请在冰点文库上搜索。
序号序号漏洞名称漏洞名称危险危险等级等级漏洞描述、漏洞地址及解决方案漏洞描述、漏洞地址及解决方案1跨站脚本漏洞高漏洞描述:
跨站脚本攻击是指应用程序没有对用户的输入,以及页面的输出进行严格地过滤,从而使恶意攻击者能往Web页面里插入恶意代码,当用户浏览该页面时,嵌入其中Web里面的恶意代码会被执行,从而达到恶意攻击者的特殊目的。
漏洞地址:
解决方案:
1对用户输入的数据进行严格过滤,包括但不限于以下字符及字符串Javascriptscriptsrcimgonerror()=,.;:
#!
/*2根据页面的输出背景环境,对输出进行编码3使用一个统一的规则和库做输出编码4对于富文本框,使用白名单控制输入,而不是黑名单5在Cookie上设置HTTPOnly标志,从而禁止客户端脚本访问Cookie2SQL注入漏洞高漏洞描述:
当应用程序使用输入内容来构造动态SQL语句以访问数据库时,如果对输入的参数没有进行严格的过滤或者过滤不完整将会导致SQL注入攻击的产生。
恶意用户通过构造特殊的SQL查询语句把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
从而可以获取到数据库的相关信息,包括数据库账号密码信息,甚至可上传木马,从而控制服务器。
漏洞地址:
解决方案:
1对用户的输入进行严格过滤,包括所有的参数,URL和HTTP头部等所有需要传给数据库的数据。
包括但不限于以下字符及字符串selectandorlikeregxpfromwhereupdateexecorderbyhavingdropdelete(),.;:
#%+-_=/*2预编译SQL语句,而不要动态组装SQL语句,否则必须确保在使用输入的数据组装成SQL语句之前,对特殊字符进行预处理。
3以最小权限执行SQL语句3IIS波浪字符目录枚举漏洞高漏洞描述:
MicrosoftIIS处理波浪符号存在一个短文件/文件夹名泄露问题,攻击者可利用此漏洞枚举web目录中的文件,从而获取敏感信息。
解决方案:
1升级.NETFramework:
https:
/2或修改注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystemNtfsDisable8dot3NameCreation=dword:
1IIS短文件名枚举漏洞高漏洞描述:
MicrosoftIIS处理波浪符号存在一个短文件/文件夹名泄露问题,攻击者可利用此漏洞枚举web目录中的文件,从而获取敏感信息。
解决方案:
1升级.NETFramework:
https:
/2或修改注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystemNtfsDisable8dot3NameCreation=dword:
14敏感信息传输未加密中漏洞描述:
诸如用户名、密码和信用卡号之类的敏感输入字段未经加密即进行了传递,任何以明文传给服务器的信息都可能被监听窃取。
漏洞地址:
解决方案:
1对敏感信息进行加密后再传输2传输敏感信息页面采用https协议慢HTTP拒绝服务攻击漏洞中漏洞描述:
根据HTTP协议规定,服务器在处理请求之前,需要接收完整的HTTP请求。
所以如果HTTP请求未接收完整,或者网络传输速率非常慢,服务器会保留其资源,直到其余的数据也接收完成为止。
如果未完成的请求过多,就会占用服务器大量资源,从而导致拒绝服务攻击。
攻击者利用此漏洞可只使用较少的资源即可导致系统崩溃,运行中断。
解决方案:
1配置WEBServer相应文件,设置一个合适的超时时间(如5000ms),以及时释放资源。
2升级WEBServer版本。
密码字段通过GET方法传输中漏洞描述:
GET是Form的默认方法。
GET方法是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,导致敏感信息在多个位置有副本,增加了敏感信息泄露的风险。
漏洞地址:
解决方案:
1敏感信息应该采用POST方法提交,且提交前应进行加密测试文件未删除低漏洞描述:
web应用程序在开发过程中,程序员为了测试代码功能,在web目录下放置测试文件,该文件一般没有采用相应的安全措施,另外还可能包含敏感信息。
攻击者可能通过读取上述文件的内容,从而进一步攻击目标站点。
漏洞地址:
解决方案:
1将测试文件删除或者转移到其他合理的位置。
2测试应该在测试机上面进行,而非生产机。
3使用的测试页面建议限制可访问的源地址范围,如只允许内网访问或只允许明确的个别互联网IP进行访问ASP.NETPaddingOracle高漏洞描述:
PaddingOracle漏洞原是2010年黑客大会发布出来的十大漏洞之一,主要是针对ASPX加密算法,通过提交的密钥撞击,可以破解出应该WEB应用的配置信息如数据库用户的连接密码。
服务器如果开通远程数据库连接,直接给黑客攻击提供渗透渠道。
如果输入的密文不合法,类库则会抛出异常,这便是一种提示。
攻击者可以不断地提供密文,让解密程序给出提示,不断修正,最终得到的所需要的结果。
解决方案:
1厂商提供补丁http:
/2在网站根目录的web.config中设置customError为On,并指定错误信息页面,如下所示error.html需自己创建。
3限制能连接数据库的IP范围。
不安全HTTP方法未禁用高漏洞描述:
WebDAV(Web-basedDistributedAuthoringandVersioning)一种基于HTTP1.1协议的通信协议。
它扩展了HTTP1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对WebServer直接读写,还可以支持文件的版本控制。
不合理的权限配置导致任意用户可以通过PUT方法直接上传任意文件到有写权限的目录,例如攻击者可上传WebShell,从而控制网站。
解决方案:
1限制PUT、DELETE、SEARCH、COPY、MOVE等危险的方法的访问权限2如果不需要使用上述方法,应关闭方法默认错误信息未屏蔽低漏洞描述:
由于配置问题或代码问题访问目标出错时返回默认错误信息,可能包含SQL语句、Web应用的物理路径、应用的版本信息等等。
攻击者可以通过这些信息来进行下一步的攻击。
漏洞地址:
解决方案:
1优化代码从而避免程序报错2通过自定义错误页面来屏蔽错误信息,包括但不限于以下错误页面400,401,403,404,405,500等3系统正式上线后应关闭调试功能备份文件泄露中漏洞描述:
目标服务器上存在备份文件。
恶意攻击者可以通过浏览器浏览其内容或直接下载到本地进行深入分析。
如果备份文件中包含了源码,恶意攻击者可以通过对源码的分析,会更加容易的找到程序的脆弱点。
如果备份文件中包含了敏感的信息,则恶意攻击者有可能直接使用这些信息获取对目标服务器的控制。
漏洞地址:
解决方案:
1检查服务器WEB路径下的特殊后缀文件,注意一定要同时包含隐藏文件2删除无用的备份文件,对WEB源码目录建议仅设置可读权限,以免备份文件的写入3备份文件不能存储在服务器WEB应用的路径中,建议备份存储在其他专用备份服务器或其他移动存储介质上目录列表功能未禁用中漏洞描述:
当用户访问的网址是某个目录地址的时候,服务器自动显示该目录所包含的文件列表内容。
通过浏览服务器地址,可以查看到此目录下的所有文件的名称,一些敏感的文件可能被获取(例如存放数据库连接账户的配置文件等)。
解决方案:
1如果该功能非必须,请禁用2如果该功能为正常业务需要,请限制普通用户访问的范围仅为正常业务范围CVS信息泄露中漏洞描述:
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。
CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。
CVS文件如果被非法访问会泄露管理账号和物理路径,攻击者能利用这些信息进一步进行攻击。
漏洞地址:
解决方案:
1配置敏感文件的访问权限2或移除敏感文件到非Web应用的目录SVN信息泄露高漏洞描述:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
主要用于在多人开发环境下的源码的维护,SVN目录如果被非法访问,攻击者可通过该目录获取敏感信息,如网站服务器端源代码,从而利用这些信息进一步进行攻击。
漏洞地址:
解决方案:
1配置敏感文件的访问权限2或移除敏感文件到非Web应用的目录SSL证书过期中漏洞描述:
远程服务器的SSL证书已经过期。
远程服务使用SSL进行通信有助于帮助用户识别所访问的是否经过认证的网站。
如果证书已过期,浏览器会给出相应警告提示,用户点击确认后可继续访问。
如果通信流量被监听,也会提示证书存在问题。
此时如果用户没注意到,而习惯性关闭警告窗口,导致通信流量被监听而未发觉。
解决方案:
1购买或生成一个新的SSL证书来取代现有的。
SSL2.0协议未禁用中漏洞描述:
远程服务使用SSL2.0进行通信连接加密,根据公开的漏洞曝露报告,此版本的协议存在一些加密缺陷,并已废弃多年。
攻击者可以利用这些已公开的漏洞发动中间人攻击或解密受此影响的客户端之间的通信内容。
解决方案:
1禁用SSL2.0SSL3.0协议未禁用中漏洞描述:
支持SSLv3协议的网站存在被中间人攻击的风险,“Poodle”攻击(全称为PaddingOracleOnDownloadedLegacyEncryption)可以提取出SSL连接中的加密数据相应的明文信息。
攻击者可以利用这个漏洞发动中间人攻击或解密受此影响的客户端之间的通信内容。
解决方案:
1禁用SSL3.0密码明文存储高漏洞描述:
诸如密码和信用卡号之类的敏感字段在数据库中必须加密之后再存储。
否则敏感信息会容易泄露。
解决方案:
1采用通用的标准加密算法,不建议使用自行开发的算法2对于不需要还原的信息应采用不可逆的加密算法,且需要增加随机值管理地址泄露中漏洞描述:
站点信息的更新和配置通常通过后台管理来实现的,所以管理地址应该只有管理员知道,不向普通用户开放。
web应用程序开发者或者站点维护者可能使用常用的后台地址名称来管理,比如admin、manager等容易猜测的关键字。
攻击者可能通过爬虫程序或者使用常用的管理地址尝试访问目标站点,获取站点的后台管理地址。
攻击者已知管理地址后,可能结合其他漏洞,从而非法进入后台管理系统。
漏洞地址:
解决方案:
1使用不易猜测的后台管理地址名称。
2网站前端程序和后台管理程序分离,比如为后台管理地址设置一个二级域名。
3限制允许对管理页面访问的IP范围。
4如果不需要通过以上管理地址进行管理,建议关闭相关功能。
缺乏防暴力破解机制中漏洞描述:
登录页面没有使用验证码作为增强验证方式、密码错误次数限制或双因子认证等缺乏防暴力破解机制,攻击者可以利用口令破解工具进行表单破解从而获取正确的账号口令。
漏洞地址:
解决方案:
1登录页面增加图形验证码作为增强验证方式,建议图形验证码包含随机干扰像素、有扭曲、变形、重叠等元素,以增加口令破解难度。
2密码输入错误超过一定次数情况,应采用锁定账号等安全措施。
3采用双因子认证机制,如手机短信验证、U盾等。
配置文件泄露中漏洞描述:
应用程序的设置是通过配置文件来实现的,这些设置中包含敏感信息。
攻击者了解应用程序的具体配置文件内容,有利于进一步攻击。
漏洞地址:
解决方案:
1限制可以访问配置文件及其目录的权限,只允许管理员访问、修改。
敏感文件泄露中漏洞描述:
。
漏洞地址:
解决方案:
1限制可以访问文件及其目录的权限,只允许管理员访问、修改。
jQuerylocation.hash跨站脚本漏洞中漏洞描述:
Web应用程序中使用了低版本的jQuery,由于在低版本的jQuery的元素location.hash对输出数据过滤不够严格,导致调用location.hash会存在跨站脚本执行漏洞,从而威胁网站安全。
该漏洞在jQuery1.6.3已修复。
漏洞地址:
解决方案:
更新到最新版本的jQuery。
下载漏洞地址:
http:
/中漏洞描述:
Web网站中所调用的JavaScript库版本较低,存在跨站脚本执行漏洞。
漏洞地址:
解决方案:
1更新升级相应的JavaScript库ApacheHTTPServerhttpOnlyCookie泄露漏洞中漏洞描述:
ApacheHTTPServer在对状态代码400的默认错误响应的实现上存在Cookie信息泄露漏洞,成功利用后可允许攻击者获取敏感信息。
该漏洞在ApacheHTTPServer2.2.22-dev中已修复。
解决方案:
1升级ApacheHTTPServer到最新版本(升级前做好备份)弱口令高漏洞描述:
由于管理员安全意识不强,导致系统存在容易猜测的账号口令,如“admin”,“123456”,“888888”test”等弱口令。
攻击者可能通过尝试弱口令,从而非法进入系统。
漏洞地址:
解决方案:
1修改口令,建议采用大小写字母,数字,特殊字符混合并且长度大于8位。
2配置相应的密码策略,强制用户使用安全性相对较高的口令。
3定期组织安全意识培训,提高管理员安全意识。
用户名信息泄露中漏洞描述:
网站登录失败、账号注册、密码找回等功能,有些网站会提示类似“用户名不存在”的错误,攻击者可以通过该提示先猜测出系统存在哪些账号,然后再进一步猜测密码,降低了暴力破解的成本。
漏洞地址:
解决方案:
1采用模糊提示,如“登录失败”即可。
2增加动态验证码机制,防止被枚举账号名。
文件包含漏洞漏洞描述:
由于开发人员编写源码,开放着将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码会被解释执行。
由于并没有针对代码中存在文件包含的函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端解释执行。
文件包含攻击中WEB服务器源码里可能存在inlcude()此类文件包含操作函数,可以通过客户端构造提交文件路径,是该漏洞攻击成功的最主要原因。
漏洞地址:
解决方案:
1对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现./之类的目录跳转符。
2严格检查include类的文件包含函数中的参数是否外界可控。
3不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
日志文件泄露中漏洞描述:
日志文件是用于记录系统操作事件的记录文件或文件集合,操作系统有操作系统日志文件,数据库系统有数据库系统日志文件,等等。
如果非授权用户可以访问这些信息,将会泄露敏感信息,可能包括用户名,数据库语句,字段等等。
漏洞地址:
解决方案:
1将日志文件转移到其他合理的位置。
2设置相应权限,只允许相关用户访问Apache软件版本较低高漏洞描述:
主机使用的Apache软件版本过低(当前Apache/1.3.28)导致存在多个高危漏洞,可能存在溢出、注入、跨站脚本漏洞等等。
解决方案:
1升级Apache到最新版本,升级前请先做好备份。
WebLogic软件版本较低高漏洞描述:
主机使用的WebLogic软件版本过低导致存在多个中高危漏洞,可能存在溢出、注入、跨站脚本漏洞等等。
解决方案:
1升级WebLogic到最新版本,升级前请先做好备份。
示例文件未删除中漏洞描述:
应用程序在web目录下默认存在用于演示的文件,而非业务需要的文件,有些情况演示文件可能只考虑如何对功能的演示,而未考虑安全问题,存在一定安全风险。
漏洞地址:
解决方案:
1删除或者限制访问示例文件。
帮助文档未删除低漏洞描述:
应用程序在web目录下默认存在用于对程序进行说明的文档,而非业务需要的文档,有些情况这些文档可能会泄露软件或服务器的敏感信息。
漏洞地址:
解决方案:
1删除或者限制访问帮助文档。
Struts2远程命令执行漏洞紧急漏洞描述:
Struts2在2.3.15.1之前的版本,对“action:
”,“redirect:
”和“redirectAction:
”后面的数据过滤不严格,由于其后面的数据会被作为OGNL表达式进行处理,从而攻击者可以构造恶意的数据,来达到执行远程命令的目的。
解决方案:
1升级struts至最新版本(升级前请做好备份)Tomcat软件版本较低高漏洞描述:
主机使用的Tomcat软件版本过低,导致存在多个高危漏洞。
包括溢出、跨站脚本漏洞、拒绝服务攻击漏洞等等。
解决方案:
1升级Tomcat到最新版本,升级前请先做好备份。
Nginx软件版本较低高漏洞描述:
主机使用的Nginx软件版本过低导致存在多个高危漏洞。
包括溢出、拒绝服务攻击漏洞等等。
解决方案:
1升级Nginx到最新版本,升级前请先做好测试及备份。
PHP软件版本较低中漏洞描述:
主机使用的PHP软件版本过低导致存在多个高危漏洞。
包括溢出、拒绝服务攻击漏洞等等。
解决方案:
1升级PHP到最新版本,升级前请先做好备份。
PHPinfo信息泄露中漏洞描述:
PHPinfo页面包含了大量的关于PHP的当前状态信息,PHP的编译选项和扩展,PHP版本,服务器信息和环境,PHP环境,操作系统版本信息,web应用物理路径和PHP的许可信息等等。
漏洞地址:
解决方案:
1限制info.php的访问权限2如果不需要使用该页面,应删除info.php文件MySQL/MariaDB用户验证绕过漏洞高漏洞描述:
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。
也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库,大约256次就能够碰撞成功一次。
受影响的产品:
MySQL5.6.6MySQL5.5.24MySQL5.1.63MariaDB5.5.23MariaDB5.3.6MariaDB5.2.12MariaDB5.1.62解决方案:
1升级相应补丁,建议升级前做好数据备份框架注入漏洞高漏洞描述:
如果对用户输入的数据未进行严格过滤,攻击者可构造标签frame、iframe,包含伪造的登录框,引诱其他用户或管理员访问,并输入账号密码信息,从而发送到攻击者指定的服务器,达到窃取敏感信息的目的。
漏洞地址:
解决方案:
1对用户输入的数据进行严格过滤2根据页面的输出背景环境,对输出进行编码3使用一个统一的规则和库做输出编码OPTIONS方法未禁用低漏洞描述:
OPTIONS方法可以查询web服务器所支持的方法列表,它可能暴露敏感信息,比如可查询服务器支持哪些非安全的方法,便于恶意用户进行下一步攻击。
解决方案:
1禁用OPTIONS方法TRACE方法未禁用低漏洞描述:
存在跨域漏洞的情况下,支持HTTPTRACE方法的域存在泄露HTTP头部信息风险,攻击者可能通过该漏洞窃取cookies和其他认证信息。
解决方案:
1通过修改Web服务器配置文件禁用TRACE方法Debug功能未禁用低漏洞描述:
默认情况debug功能是关闭的,但是有时需要开启debug功能进行排错,而排错完成之后,可能会存了忘记关闭。
被攻击者利用可能泄露应用服务器的敏感信息。
解决方案:
1不需要debug功能时,应该将其关闭Struts2开发模式未关闭中漏洞描述:
默认情况debug功能是关闭的,但是有时需要开启debug功能进行排错,而排错完成之后,可能会存了忘记关闭。
被攻击者利用可能泄露应用服务器的敏感信息。
解决方案:
1关闭Struts2开发模式,在WEB-INF/classes/struts.properties文件修改如下:
struts.devMode=false源代码泄露高漏洞描述:
源代码中可能包含有敏感信息,并且源代码可以有效的帮助攻击者理解网站应用逻辑,为展开其他类型的攻击提供有利信息,降低攻击的难度。
漏洞地址:
解决方案:
1设置代码访问权限2修改存放位置任意文件上传漏洞高漏洞描述:
文件上传文件主要是用来向服务器上传图片文件或其它格式文件的上传接口,如果上传文件过滤不严就可能导致黑客通过其它手段来达到向服务器上传后门的目的。
漏洞地址:
解决方案:
1设置白名单,指定允许上传文件的文件格式2限制上传目录的权限(只开启读写权限,关闭执行权限)3对于重要的业务系统,对于上传的文件和图片等增加人工审核功能,审核通过后用户才可以访问。
漏洞描述:
漏洞地址:
解决方案:
远程管理端口未过滤中漏洞描述:
端口号22、3389、4899、5631、5901等是默认的远程管理通信端口。
连接上相应端口,输入管理员账号密码之后,即可对服务器进行远程管理。
远程管理端口如果对非管理员开放,恶意用户可通过猜解密码或者远程溢出等漏洞,从而对服务器进行远程控制。
未过滤端口:
解决方案:
1限制可访问远程管理端口的IP范围,建议只允许内网管理网网段访问;如需从互联网访问,采用通过VPN再访问。
2把默认的远程管理端口修改为其他端口3配置账号管理策略,如:
密码输入错误3次后锁定账号4及时升级操作系统补丁(升级前做好相应备份)数据库端口未过滤中漏洞描述:
端口号1433、1521、3306等是默认的数据库通信端口。
连接上相应端口,输入管理员账号密码之后,即可远程访问数据库中的数据。
数据库端口如果对非管理员开放,恶意用户可通过猜解密码或者远程溢出等漏洞,从而访问数据库敏感数据,甚至控制数据库所在服务器。
未过滤端口:
解决方案:
1限制可访问数据库端口的IP范围,一般情况只允许应用服务器访问即可。
2把默认的数据库通信端口修改为其他端口3配置账号管理策略,如:
密码输入错误3次后锁定账号4及时升级数据库系统补丁(升级前做好相应备份)FTP可匿名访问高漏洞描述:
FTP是TCP/IP网络上两台计算机传送文件的协议,运行FTP服务的站点如果开放匿名服务,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:
“anonymous”。
这个帐号不需要密码即可访问FTP服务器上的文件,存在泄露敏感文件的风险。
端口:
21解决方案:
1FTP服务器如有敏感信息,应该关闭匿名访问功能2及时升级FTP相关补丁(升级前做好相应备份)3如该FTP服务非必要功能,建议关闭FTP服务会话cookie未设置Secure标志低漏洞描述:
如果会话cookie设置了Secure标志,那么浏览器将会只允许服务器通过安全SSL隧道访问cookie,从而降低会话cookie被窃取的风险。
Cookie域:
Cookie名:
解决方案:
1给会话cookie设置Secure标志Apacheserver-info信息泄露中漏洞描述:
Apache/server-info文件显示了Apache的配置信息,为攻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 Web 漏洞 描述 加固 建议