
このプロジェクトは、Zip Slip 脆弱性 (CVE-2019-10743) を、脆弱なバージョンの mholt/archiver パッケージを使用してデモンストレーションします。
Zip Slip は、Snyk のセキュリティ研究者によって発見された脆弱性です。 この脆弱性は、実際に使用されている複数のパッケージに影響を及ぼしていることが判明しました。この脆弱性が悪用されると、以下のような問題が発生する可能性があります。
mholt/archiver は、アーカイブファイルや圧縮ファイルを扱うためのシンプルで一貫した API を提供する Go パッケージです。.zip、.tar、.tar.gz、.7z、.rar などの形式をサポートしています。
mholt/archiver パッケージを使用してファイルを展開する../../../../../tmp/hacked.txt)を含めることができる# 脆弱なサーバーを起動
./docker-run.sh start
# サーバーを停止
./docker-run.sh stop
# ログを表示
./docker-run.sh logs
# クリーンアップ
./docker-run.sh cleanup
注意: docker-run.sh に実行権限があることを確認してください:
# 実行権限を付与
chmod +x ./docker-run.sh
コンテナが起動したら、以下のようなコマンドを使用してテスト環境にアクセスできます:
# アプリケーションを実行しているコンテナに接続
docker exec -it zipslip-vulnerable-server /bin/bash
# Python の依存関係をインストール
pip3 install -r requirements.txt
# ペイロードを実行
python3 test_exploit.py -p "../../../../../../tmp/hacked.txt" -c "You were pwned!"
注意: 上記のコマンドはコンテナ内で実行可能である必要があります。
-u, --url: サーバー URL (デフォルト: http://localhost:8080)-z, --zip: ZIP ファイル名 (デフォルト: malicious_test.zip)-p, --path: パストラバーサルファイル名 (デフォルト: ../../../malicious_escaped.txt)-c, --content: ファイルの内容この脆弱性を修正するには:
mholt/archiver バージョン 3.3.2 以降を使用