7-Zip アーカイブにおける重大な CVE-2023-52169 シンボリックリンクトラバーサル脆弱性を実演・検出する、魅力的なインタラクティブ Web アプリケーションです。
../、..\\)/、C:\\)リポジトリをクローン
git clone <repository-url>
cd Se7enSlip
依存関係をインストール
npm install
開発サーバーを起動
npm start
ブラウザを開く
http://localhost:3000 にアクセス
# 自動リロード付き開発
npm run dev
# テスト用の脆弱性 ZIP ファイルを作成
npm run create-test-zip
# 本番ビルド
npm run build
この脆弱性により、攻撃者は悪意のある ZIP アーカイブを作成し、脆弱な 7-Zip バージョンで解凍すると、意図した解凍ディレクトリの外にファイルを書き込むことができます。これは以下を通じて達成されます:
../ シーケンスを使用して解凍フォルダから脱出┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 悪意のある ZIP │───▶│ 脆弱な 7-Zip │───▶│ システム侵害 │
│ │ │ < v23.01 │ │ │
│ • ../../../etc/ │ │ │ │ • ファイル上書き│
│ • /tmp/evil.sh │ │ 解凍パスの検証 │ │ • コード実行 │
│ • シンボリック │ │ に失敗 │ │ • 権限昇格 │
│ リンク │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
POST /api/scanZIP ファイルをアップロードして脆弱性をスキャンします。
リクエスト: zipfile フィールドを含むマルチパートフォームデータ
レスポンス:
{
"filename": "test.zip",
"totalEntries": 10,
"suspicious": [...],
"riskLevel": "HIGH",
"recommendations": [...],
"metadata": {
"totalSize": 12345,
"suspiciousPatterns": {...}
}
}
GET /api/vulnerability-infoCVE-2023-52169 に関する詳細情報を取得します。
レスポンス:
{
"cve": "CVE-2023-52169",
"cvssScore": 7.8,
"downloadUrl": "https://www.7-zip.org/download.html",
"references": [...]
}
POST /api/create-test-zipさまざまな脆弱性パターンを含むテスト ZIP ファイルを生成します。
レスポンス: テスト用の悪意のあるエントリを含む ZIP ファイルのダウンロード
public/css/
├── styles.css # CSS カスタムプロパティを含むメインスタイルシート
├── animations/ # アニメーションキーフレームとトランジション
├── components/ # コンポーネント固有のスタイル
└── responsive/ # メディアクエリとレスポンシブデザイン
:root {
--primary: #00ff88; /* ネオングリーン */
--secondary: #ff4757; /* 危険レッド */
--accent: #3742fa; /* エレクトリックブルー */
--bg-primary: #0a0a0a; /* ディープブラック */
--text-primary: #ffffff; /* ピュアホワイト */
}
PORT=3000 # サーバーポート
NODE_ENV=production # 環境モード
UPLOAD_LIMIT=52428800 # ファイルサイズ制限(50MB)
RATE_LIMIT_WINDOW=900000 # レート制限ウィンドウ(15分)
RATE_LIMIT_MAX=50 # ウィンドウあたりの最大リクエスト数
アプリケーションには複数のセキュリティレイヤーが含まれています:
// コンテンツセキュリティポリシー
helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
// ... 追加のディレクティブ
}
}
})
# 脆弱性を含むテスト ZIP を作成
npm run create-test-zip
# 生成されたファイルには以下が含まれます:
# - パストラバーサルエントリ(../)
# - 絶対パス(/tmp/、C:\)
# - シンボリックリンクエントリ
# - 長いパス名
# - 実行可能ファイル
NODE_ENV=production を設定FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
version: '3.8'
services:
se7enslip:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
volumes:
- ./uploads:/app/uploads
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細は LICENSE ファイルを参照してください。
教育目的のみ: このツールはセキュリティ研究と教育のために設計されています。生成されるテスト ZIP ファイルには、デモンストレーション目的でシミュレートされた悪意のあるパターンが含まれています。このツールを悪意のある活動に使用しないでください。セキュリティツールをテストする前に、必ず適切な許可を得てください。
🔒 セキュリティを維持し、最新を保つ