自学内容网 自学内容网

使用 OWASP Dependency-Check 扫描 Spring Framework 漏洞

👉洛秋资源小站

使用 OWASP Dependency-Check 扫描 Spring Framework 漏洞

操作系统:CentOS Linux release 8.4

环境准备

文中软件下载:https://url50.ctfile.com/d/35034150-64445956-8f093f?p=8173 (访问密码: 8173)

1. 下载并配置 OpenJDK 11

# 创建工作目录
mkdir -p /opt/springvs
cd /opt/springvs

# 下载 OpenJDK 11
wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/11/jdk/x64/linux/OpenJDK11U-jdk_x64_linux_hotspot_11.0.25_9.tar.gz

# 解压 JDK
tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.25_9.tar.gz

2. 下载并配置 OWASP Dependency-Check

# 下载最新版本的 Dependency-Check
wget https://github.com/jeremylong/DependencyCheck/releases/download/v11.1.1/dependency-check-11.1.1-release.zip


# 解压
unzip dependency-check-11.1.1-release.zip

# 配置 JAVA_HOME (大概位于17行)
vim dependency-check/bin/dependency-check.sh 
export JAVA_HOME=/opt/springvs/jdk-11.0.25+9

# 添加到系统路径
export PATH=$PATH:/opt/springvs/dependency-check/bin

3. 创建漏洞扫描脚本

将以下内容保存为 /opt/springvs/spring-vulnerability-scan.sh

#!/bin/bash

# 设置扫描目标目录
TARGET_DIR=$1
if [ -z "$TARGET_DIR" ]; then
    echo "请指定要扫描的目录"
    exit 1
fi

# 创建临时工作目录
WORK_DIR=$(mktemp -d)
REPORT_DIR="vulnerability_reports"
mkdir -p $REPORT_DIR

echo "开始扫描 Spring Framework 漏洞..."

# 使用 OWASP Dependency-Check 进行漏洞扫描
echo "运行 OWASP Dependency-Check..."
dependency-check.sh \
    --project "Spring-Security-Scan" \
    --scan "$TARGET_DIR" \
    --format "HTML" "JSON" \
    --out "$REPORT_DIR" \
    --suppression "suppression.xml"

# 检查 Spring Framework 版本并评估 CVE-2024-22243 风险
check_spring_version() {
    local version=$1
    local major_minor=$(echo $version | cut -d. -f1,2)
    local patch=$(echo $version | cut -d. -f3)
    
    case $major_minor in
        "6.1")
            if [ "$patch" -le "3" ]; then
                echo "当前版本 $version 受 CVE-2024-22243 影响"
                echo "建议升级到 6.1.4 或更高版本"
                return 1
            fi
            ;;
        "6.0")
            if [ "$patch" -le "16" ]; then
                echo "当前版本 $version 受 CVE-2024-22243 影响"
                echo "建议升级到 6.0.17 或更高版本"
                return 1
            fi
            ;;
        "5.3")
            if [ "$patch" -le "31" ]; then
                echo "当前版本 $version 受 CVE-2024-22243 影响"
                echo "建议升级到 5.3.32 或更高版本"
                return 1
            fi
            ;;
    esac
    return 0
}

# 专门检查 CVE-2024-22243
echo "检查 CVE-2024-22243..."
if grep -q "CVE-2024-22243" "$REPORT_DIR/dependency-check-report.json"; then
    echo "警告: 发现 CVE-2024-22243 漏洞!"
    
    # 提取 Spring Framework 版本信息
    SPRING_VERSION=$(grep -r "org.springframework.spring" "$TARGET_DIR" | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+" | head -n 1)
    if [ ! -z "$SPRING_VERSION" ]; then
        echo "当前 Spring Framework 版本: $SPRING_VERSION"
        check_spring_version "$SPRING_VERSION"
    fi
else
    echo "未发现 CVE-2024-22243 漏洞"
fi

# 生成漏洞摘要报告
echo "生成漏洞摘要..."
echo "扫描时间: $(date)" > "$REPORT_DIR/summary.txt"
echo "目标目录: $TARGET_DIR" >> "$REPORT_DIR/summary.txt"
echo "发现的高危漏洞数量: $(grep -c "CRITICAL" "$REPORT_DIR/dependency-check-report.json")" >> "$REPORT_DIR/summary.txt"
echo "发现的中危漏洞数量: $(grep -c "HIGH" "$REPORT_DIR/dependency-check-report.json")" >> "$REPORT_DIR/summary.txt"

echo "扫描完成!详细报告保存在 $REPORT_DIR 目录下"

# 清理临时文件
rm -rf $WORK_DIR

4. 设置执行权限

chmod +x /opt/springvs/spring-vulnerability-scan.sh

目录结构

完成配置后,/opt/springvs 目录结构如下:

/opt/springvs/
├── dependency-check/
│   └── bin/
│       └── dependency-check.sh
├── jdk-11.0.25+9/
└── spring-vulnerability-scan.sh

使用方法

  1. 设置环境变量(如果尚未添加到 .bashrc):
export PATH=$PATH:/opt/springvs/dependency-check/bin
  1. 运行扫描:
cd /opt/springvs
./spring-vulnerability-scan.sh /path/to/your/spring/project

注意事项

  1. 首次运行时会下载 NVD 数据库,这可能需要一些时间
  2. 确保系统有足够的磁盘空间(建议至少 2GB)
  3. 如果遇到网络问题,可以考虑配置国内镜像源
  4. 报告将生成在当前目录下的 vulnerability_reports 文件夹中

扫描结果

扫描完成后,你可以在 vulnerability_reports 目录下找到:

  • HTML 格式的详细报告
  • JSON 格式的完整数据
  • 简要的文本摘要报告

这个配置专门针对 Spring Framework 的 CVE-2024-22243 漏洞检测进行了优化,同时也会扫描其他潜在的安全问题。

👉 最后,愿大家都可以解决工作中和生活中遇到的难题,剑锋所指,所向披靡~


原文地址:https://blog.csdn.net/weixin_40055370/article/details/144762360

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!