最近公司在整顿公司安全漏洞,有涉及到前端的安全漏洞整理了一些和修复方式如下;
测试工具
列举下面四个示例,具体使用方法和步骤可以自行搜索
1. 自动化扫描工具(适合全面检测)
-
Nessus
虽然主要用于基础设施扫描,但其Web插件可检测部分前端漏洞(如不安全的HTTP头、过时的前端库)。 -
AIScanner
专注于Web应用扫描,可检测XSS、CORS配置错误等前端安全问题。
2. 应用缺陷分析工具(针对Web漏洞)
-
SQLMAP
主要用于SQL注入,但也会检测与前端相关的漏洞(如基于DOM的漏洞)。 -
Gatling自动化渗透测试系统
可能包含对前端漏洞(如XSS)的自动化测试模块。
3. 静态分析工具(代码层面检测)
-
MobSF (Mobile Security Framework)
主要用于移动应用,但支持对Web前端代码(如JavaScript、HTML)的静态分析,可发现XSS、硬编码凭证等问题。
4. 动态分析工具(运行时检测)
-
天问供应链分析平台
如果支持Web应用动态扫描,可能覆盖前端漏洞(如第三方库漏洞、CORS配置)。
常见安全漏洞
1、web应用未授权访问(高危)
未授权访问漏洞是指攻击者无需登录或授权即可访问某些本应受到保护的网络资源。这种漏洞通常发生在Web应用程序或数据库等系统中,攻击者可以通过直接访问URL或利用特定的工具来访问和操作这些资源。
测试过程:使用netdata进行测试
修复建议:
- 开启鉴权。
- 将其放置在内网服务器,禁止外部访问。
2、Spring Boot Actuator未授权访问(高危)
Actuator是Spring Boot 提供的服务监控和管理中间件。当 Spring Boot 应用程序运行时,它会自动将多个端点注册到路由进程中。而由于对这些端点的错误配置,就有可能导致一些系统信息泄露、XXE、甚至是 RCE 等安全问题。
测试过程:
- 动扫描探测 常见Actuator端点路径如下
/actuator /actuator/health /actuator/env /actuator/metrics /actuator/beans /actuator/mappings /actuator/httptrace /actuator/heapdump /actuator/loggers /actuator/sessions (Spring Session时存在) - 扫描工具
Burp Suite:使用Intruder模块批量测试常见端点
Nmap:nmap --script http-vuln-cve2013-0156 <target>
专用扫描器:如SpringBoot-Scan等工具 - HTTP响应特征
访问/actuator返回JSON格式的端点列表
/actuator/health返回类似{"status":"UP"}的响应
/actuator/env返回大量环境变量信息
响应头中可能包含X-Application-Context字段
3、webpack源码泄露(中危)
Webpack 源码泄露通常是由于配置不当导致的,攻击者可以通过 .map 文件还原源码,从而获取敏感信息如 API 接口、加密算法等。以下是修复此问题的有效方法。
测试过程:1、使用浏览器插件检测([Wappalyzer]->Webpack)。2、控制台查看sources
修复建议:1、webpack配置`productionSourceMap: false`。2、删除或禁止访问正式环境中的js.map文件
4、lodash原型漏洞(中危)
攻击者通过修改对象原型链来执行恶意操作或破坏应用程序的正常行为
测试过程:控制台输入如下代码 如果弹框是All Good,代表正常,有Bad news就是存在漏洞的;
const payload = '{"constructor": {"prototype": {"lodash": true}}}'
_.defaultsDeep({}, JSON.parse(payload))
if({}.lodash === true){ alert("Bad news :(\nYou're (still) vulnerable to Prototype Pollution") } else { alert("All Good! :)\nYou're NOT vulnerable (anymore) to Prototype Pollution") }
修复建议:1、将 Lodash 升级到 4.17.21 或更高版本。2、使用的插件里的lodash版本无法升级参考如下`element ui lodash`漏洞修复方式
element ui lodash漏洞
项目中使用了element ui 不管是什么版本的element,element里面关联功能使用了lodas4.17.10的版本。
解决思路
1、在element的package.json 依赖项里面没有直接使用lodash。所以不能直接把element ui下载到本地修改依赖项。
结果:无法修改
2、在项目配置webpack 强制限制lodash版本,
结果:设置无效
3、通过cdn的方式在入口html里面引入lodash。
两种形式
第一种 把lodash的文件下载到本地
第二种
<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.core.js"></script>
!!注意script引入的位置需要在body标签下面
结果:成功
5、备份文件泄露(中危)
备份文件泄露漏洞是指由于网站或系统管理员的运维不当,将备份文件、数据库配置文件等敏感信息存放在WEB目录下,且未设置适当的访问权限,导致这些文件可以被公开访问和下载,从而造成敏感信息泄露的安全问题
测试过程:DirBuster/Dirsearch:通过字典爆破常见备份文件路径
修复建议:删除此备份文件
6、JQuery-XSS跨站脚本攻击(中危)
jQuery版本过低造成xss漏洞,XSS漏洞是由于Web应用程序对用户输入的数据没有进行充分的验证和过滤,导致攻击者能够在网页中注入恶意脚本1。当用户访问这些被注入恶意脚本的网页时,浏览器会执行这些脚本,从而使得攻击者能够窃取用户信息、篡改页面内容或进行其他恶意操作。
测试过程:控制台输入 $.fn.jquery
修复建议:升级jquery版本到3.6.0+
7、AJP未授权访问漏洞(中危)
Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器.默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互.但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应用根目录下的任意文件,如果配合文件上传任意格式文件,将可能导致任意代码执行(RCE).该漏洞利用AJP服务端口实现攻击,未开启AJP服务对外不受漏洞影响(tomcat默认将AJP服务开启并绑定至0.0.0.0/0)
测试过程: Apache-Tomcat-Ajp(CVE-2020-1938)漏洞利用姿势_ajp lfi 利用-CSDN博客
修复建议:关闭8009端口。
8、Tomcat版本信息泄露(低危)
当调用不存在的页面或服务时,Tomcat会返回版本号或Spring异常信息
测试过程:调用一个不存在的页面或服务
修复建议:1. 隐藏版本信息,修改ServerInfo.properties文件,删除版本相关信息。2. 在web.xml中配置自定义错误页面,避免直接显示默认错误信息
454

被折叠的 条评论
为什么被折叠?



