常见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相关解析漏洞未修复⽽造成的,如果⽂件上传功能实现代码没有严格限制⽤户上传的⽂件后缀以及⽂件类型,攻击者可通过 W
eb 访问的⽬录上传任意⽂件,包括⽹站后门⽂件(webshell),进⽽远程控制⽹站服务器。
修复建议:
1.严格限制可上传的⽂件类型,前端和后端⼀起限制,后端可以进⾏扩展名检测,重命名⽂件、MIME类型检测以及限制上传⽂件的⼤⼩。
2.对上传⽂件内容进⾏严格校验及安全扫描,防⽌上传恶意脚本⽂件。
3.设置权限限制,禁⽌上传⽬录的执⾏权限。
4.严格限制上传的⽂件路径,将上传的⽂件放在安全的路径下,尽量放于webserver之外的远程服务器等。
5.上传⽂件重命名。
6.隐藏上传⽂件路径。
六、任意⽂件下载
漏洞描述:
攻击者可通过此漏洞读取服务器⽂件,例如获取账号密码等敏感信息,对服务器的正常运⾏造成安全威胁。
修复建议:
1.对下载路径进⾏过滤,如下载前对传⼊的参数进⾏过滤,并且对下载⽂件类型进⾏检查,是否是允许下载的类型,另外禁⽌使⽤回溯符../
2.限制⽬录访问权限
七、⽬录遍历
漏洞描述:
由于服务器端配置不当,开启了⽬录浏览,⿊客可获得服务器上的⽂件⽬录结构,从⽽查看或下载敏感⽂件。
修复建议:
设置⽬录访问权限
⼋、未授权访问
漏洞描述:
由于没有对相关敏感页⾯进⾏访问权限的检查,导致攻击者⽆需登陆即可访问,从⽽获取敏感信息或进⾏未授权操作等。
webserver接口开发修复建议:
对相关页⾯进⾏严格的访问权限的控制以及对访问⾓⾊进⾏权限检查
九、越权访问
漏洞描述:
由于没有对⽤户访问⾓⾊的权限进⾏严格的检查及限制,导致当前账号可对其他账号进⾏相关操作,如查看、修改等。
修复建议:
对⽤户访问⾓⾊的权限进⾏严格的检查及限。
⼗、应⽤程序错误信息泄露
漏洞描述:
攻击者可通过特殊的攻击向量,使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是否为可信域名。
⼗五、l 配置不当
漏洞描述:
⽹站根⽬录下的 l ⽂件指明了远程 Flash 是否可以加载当前⽹站的资源( 图⽚、⽹页内容、Flash等)。如果配置不当,可能导致遭受跨站请求伪造(CSRF)攻击。
修复建议:
对于不需要从外部加载资源的⽹站,在 l ⽂件中更改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版本信息、中间件类型及版
本信息等,通过对这类信息的收集,攻击者可制定具有针对性的攻击计划
修复建议:
删除与业务⽆关的页⾯,如果是必须需要使⽤的中间件管理页⾯,建议对该页⾯进⾏访问权限的控制
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论