常见WEB漏洞描述及修复建议(可收藏写报告用)-句芒安全实验室

注:以下内容部分摘自网络,部分工作总结。

一、明文传输

漏洞描述:
用户登录过程中使用明文传输用户登录信息,若用户遭受中间人攻击时,攻击者可直接获取用户密码

修复建议:
1.用户登录信息时使用加密传输,如密码在传输前使用安全的算法加密后传输,可采用的算法包括:不可逆hash算法加盐(4位及以上随机数,由服务器端产生);安全对称加密算法,如AES(128、192、256位),且必须保证客户端密钥安全,不可被破解或读出;非对称加密算法,如RSA(不低于2048位)、SM2等。
2.使用https来保证传输的安全。

 

二、SQL注入

漏洞描述:

Web程序代码中对于用户提交的参数未做过滤就直接放到SQL语句中执行,导致参数中的特殊字符打破了SQL语句原有逻辑,攻击者可以利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令等

修复建议:

采用sql语句预编译和绑定变量;对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换;查询语句使用数据库提供的参数化查询接口等。

三、跨站脚本攻击(xss)

漏洞描述:
Web程序代码中把用户提交的参数未做过滤或过了不严就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击、诱以及导用户再次登录,然后获取其登录凭证等。

修复建议:

对一些非法的参数,像<>、,",'等进行自动转义,或者是强制的拦截并提示,过滤双引号,分好,单引号,对字符进行HTML实体编码操作

四、不安全HTTP方法

漏洞描述:

目标服务器启用了不安全的传输方法,如PUT、TRACE、DELETE、MOVE等,

修复建议:

如无必要关闭不安全的传输方法,推荐只使用POST、GET方法

五、任意文件上传

漏洞描述:

文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严或webserver相关解析漏洞未修复而造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。

修复建议:

1.严格限制可上传的文件类型,前端和后端一起限制,后端可以进行扩展名检测,重命名文件、MIME类型检测以及限制上传文件的大小。

2.对上传文件内容进行严格校验及安全扫描,防止上传恶意脚本文件。

3.设置权限限制,禁止上传目录的执行权限。

4.严格限制上传的文件路径,将上传的文件放在安全的路径下,尽量放于webserver之外的远程服务器等。

5.上传文件重命名。

6.隐藏上传文件路径。

六、任意文件下载

漏洞描述:

攻击者可通过此漏洞读取服务器文件,例如获取账号密码等敏感信息,对服务器的正常运行造成安全威胁。

修复建议:

1.对下载路径进行过滤,如下载前对传入的参数进行过滤,并且对下载文件类型进行检查,是否是允许下载的类型,另外禁止使用回溯符../

2.限制目录访问权限

七、目录遍历

漏洞描述:

由于服务器端配置不当,开启了目录浏览,黑客可获得服务器上的文件目录结构,从而查看或下载敏感文件。

修复建议:

设置目录访问权限

八、未授权访问

漏洞描述:

由于没有对相关敏感页面进行访问权限的检查,导致攻击者无需登陆即可访问,从而获取敏感信息或进行未授权操作等。

修复建议:

对相关页面进行严格的访问权限的控制以及对访问角色进行权限检查

九、越权访问

漏洞描述:

由于没有对用户访问角色的权限进行严格的检查及限制,导致当前账号可对其他账号进行相关操作,如查看、修改等。

修复建议:

对用户访问角色的权限进行严格的检查及限。

十、应用程序错误信息泄露

漏洞描述:

攻击者可通过特殊的攻击向量,使web服务器出现500、404等相关错误,导致信息泄漏如绝对路径、webserver版本、源代码、sql语句等敏感信息,恶意攻击者很有可能利用这些信息实施进一步的攻击。

修复建议:

1.自定义错误页面或归一化错误页面信息提示

2.修复错误代码

十一、文件包含漏洞

漏洞描述:

本地文件包含是指程序代码在处理包含文件的时候没有严格控制。利用这个漏洞,攻击者可以先把上传的静态文件,或网站日志文件作为代码执行,或者包含远程服务器上的恶意文件,进而获取到服务器权限。

修复建议:

1.严格检查变量是否已经初始化。

2.对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现…/之类的目录跳转符。

3.严格检查include类的文件包含函数中的参数是否外界可控。

4.不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

十二、.网站敏感压缩文件泄露

漏洞描述:

误将网站备份文件或是敏感信息文件存放在某个网站目录下,外部攻击者可通过暴力破解文件名等方法下载该备份文件,导致网站敏感信息泄露。

修复建议:

1.不要在网站目录下存放网站备份文件或敏感信息的文件。

2.如需存放该类文件,请将文件名命名为难以猜解的字符串。

十三、CRLF HTTP 头部注入漏洞

漏洞描述:

CRLF 是“回车 + 换行”(\r\n)的简称。在 HTTP 协议中,HTTPHeader 与 HTTP Body 是用两个 CRLF 符号进行分隔的,浏览器根据这两个 CRLF 符号来获取 HTTP 内容并显示。因此,一旦攻击者能够控制 HTTP 消息头中的字符,注入一些恶意的换行,就能注入一些会话 Cookie 或者 HTML 代码。

修复建议:

过滤 \r 、\n 之类的换行符,避免输入的数据污染到其他 HTTP 消息头。

十四、URL 跳转漏洞

漏洞描述:

Web 程序直接跳转到参数中的 URL ,或页面引入任意的开发者 URL,被攻击者利用可实施钓鱼攻击等操作。

修复建议:

在控制页面转向的地方校验传入的URL是否为可信域名。

十五、Crossdomain.xml 配置不当

漏洞描述:

网站根目录下的 crossdomain.xml 文件指明了远程 Flash 是否可以加载当前网站的资源( 图片、网页内容、Flash等)。如果配置不当,可能导致遭受跨站请求伪造(CSRF)攻击。

修复建议:

对于不需要从外部加载资源的网站,在 crossdomain.xml 文件中更改allow-access-from的domain属性为域名白名单。

十六、敏感信息泄露

漏洞描述:

在页面中或者返回的响应包中泄露了敏感信息,通过这些信息,攻击者可进一步渗透。

修复建议:

1.如果是探针或测试页面等无用的程序建议删除,或者修改不易被猜到的名字。

2.禁用泄露敏感信息的页面或应用。对相关敏感信息进行模糊化处理,在服务器端进行。

3.对服务器端返回的数据进行严格的检查,满足查询数据与页面显示数据一致,切勿返回多余数据。

4.屏蔽错误信息。

十七、weblogic SSRF服务器请求伪造

漏洞描述

目标存在weblogic SSRF服务器请求伪造漏洞。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。Weblogic中间件默认带有“UDDI 目录浏览器”且为未授权访问,通过该应用,可进行无回显的SSRF请求。攻击者可利用该漏洞对企业内网进行大规模扫描,了解内网结构,并可能结合内网漏洞直接获取服务器权限。

修复建议:

1.删除uddiexplorer文件夹

2.限制uddiexplorer应用只能内网访问

十八、IIS短文件名泄露漏洞

漏洞描述:

Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行 Microsoft Windows的互联网基本服务。 Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。攻击者可通过该漏洞尝试获取网站服务器下存放文件的文件名,达到获取更多信息来入侵服务器的目的。

修复建议:

修改Windows配置,关闭短文件名功能。

十九、目标URL存在host头攻击漏洞

漏洞描述:

为了方便的获得网站域名,开发人员一般依赖于HTTP Host header,但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。

修复建议:

1.web应用程序应该使用SERVER_NAME而不是host header。

2.在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在Nginx里 还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单 并开启UseCanonicalName选项。

二十、登录绕过漏洞

漏洞描述:

由于对登录的账号及口令校验存在逻辑缺陷,或再次使用服务器端返回的相关参数作为最终登录凭证,导致可绕过登录限制,如服务器返回一个flag参数作为登录是否成功的标准,但是由于代码最后登录是否成功是通过获取这个flag参数来作为最终的验证,导致攻击者通过修改flag参数即可绕过登录的限制。

修复建议:

修改验证逻辑,如是否登录成功服务器端返回一个参数,但是到此就是最终验证,不需要再对返回的参数进行使用并作为登录是否成功的最终判断依据

二十一、短信/邮件轰炸

漏洞描述:

由于没有对短信或者邮件发送次数进行限制,导致可无限次发送短信或邮件给用户,从而造成短信轰炸,进而可能被大量用户投诉,从而影响公司声誉。

修复建议:

对发送短信或邮件的次数进行限制,如1分钟只能发送1次短信或邮件,并且需要在服务器进行限制。

二十二、web服务测试页面信息泄露

漏洞描述:

由于没有删除默认的且与业务无关的页面,导致信息泄露,如:webserver版本信息、中间件类型及版本信息等,通过对这类信息的收集,攻击者可制定具有针对性的攻击计划

修复建议:

删除与业务无关的页面,如果是必须需要使用的中间件管理页面,建议对该页面进行访问权限的控制

二十三、不安全的提示信息

漏洞描述:

登陆处输入不存在账号提示账号不存在,输入存在账号错误密码提示密码错误,攻击者可根据提示信息爆破存在账号

修复建议:

统一修改提示为模糊提示,例如账号或密码错误

原文公众号链接:https://mp.weixin.qq.com/s/S3t8ACle3bdJ7SQdWLF_iQ

也可微信搜索公众号:句芒安全实验室

公众号回复关键字:修复建议下载,即可免费获取word及pdf版。

接下来会写一个针对CS架构的系统渗透测试文章,喜欢的朋友可以点个关注,公众号后面会长期维护。

猜你喜欢

转载自blog.csdn.net/Key_book/article/details/105857257