0
点赞
收藏
分享

微信扫一扫

【解决安全扫描漏洞】---- 检测到目标站点存在 JavaScript 框架库漏洞

金牛豆豆 2024-12-02 阅读 12

1. 漏洞结果

1.1 漏洞扫描截图

输入图片说明

1.2 具体漏洞的 js 文件

输入图片说明

1.3 参考博客

Vue 项目安全扫描漏洞,JS 库版本太低,要求升级 YUI,过程总结

2. 定位漏洞

  1. jquery;
  2. js-cookie;
  3. jsencrypt。
2.1 开始狡辩
  1. jsencrypt 依赖包最新版本查询
    输入图片说明

  2. 漏洞项目的 jsencrypt 的版本
    输入图片说明

2.2 漏洞甩脸

输入图片说明

2.3 全局搜索

输入图片说明

2.4 找到漏洞代码

输入图片说明

3. 漏洞分析

输入图片说明

他的意思就是说 2.9.0 版本中的 Flash组件允许远程攻击者通过与swfstore.swf相关的向量注入任意web脚本或HTML导致的跨站脚本(XSS)漏洞。

3.1 检查是否使用了 YUI 的 Flash 组件

输入图片说明

3.2 安全扫描报告

输入图片说明

4. 解决办法

4.1 使用压缩后的文件
// 旧的引入方式
import JSEncrypt from 'jsencrypt'
// 新的引入方式
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
4.2 删除注释
  1. 删除注释:vue.config.js 配置代码
chainWebpack(config) {
// 删除注释
config.optimization.minimizer('terser').tap(args => {
// 直接修改 terserOptions 下的属性值,保留原有配置
// 这里访问 terserOptions 的时候并没有 output,访问不到 output.comments 需要直接赋值
args[0].terserOptions.output = {
comments: false,
}
return args
})
}
  1. 在漏洞项目运行报错
    输入图片说明

5. Vue项目WebPack打包删除注释和console

5.1 安装 uglifyjs-webpack-plugin
npm install uglifyjs-webpack-plugin -D
5.2 vue.config.js 配置
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
configureWebpack: {
optimization: {
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
// 删除注释
output: {
comments: false
},
// 删除console debugger 删除警告
compress: {
drop_console: true, //console
drop_debugger: false,
pure_funcs: ['console.log'] //移除console
}
}
})
]
}
}
}

6. 总结

  1. 最后通过安全扫描,其实这个漏洞只是存在隐患,项目中并没有使用 YUI 的 Flash 组件,因此是不存在这个漏洞,但是项目要通过安全扫描,没有办法,只能根据扫描工具的定位漏洞方法,去解决。
  2. 这个过程都是根据已存在的博客去依次排查解决,所以这些问题遇到了,就只能看能不能在网上找到解决办法,下一次一个安扫问题,估计不一定能解决。
举报

相关推荐

0 条评论