Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
JavaSecLab — 脆弱なコードと修正済みコード、攻撃シナリオ、ソース/シンク監査ノート、およびセキュリティトレーニングとツール評価のためのセキュアコーディングガイダンスを備えた包括的なJava脆弱性ラボ。 | Kitploit
ツール/GitHubGitHub/whgojp/javaseclab
静的コード分析 (SAST)脆弱性分析コード分析ウェブセキュリティCTFペネトレーションテストDevSecOps学習と教育ラボと実践
GitHubwhgojp/javaseclab

JavaSecLab

脆弱なコードと修正済みコード、攻撃シナリオ、ソース/シンク監査ノート、およびセキュリティトレーニングとツール評価のためのセキュアコーディングガイダンスを備えた包括的なJava脆弱性ラボ。

リポジトリを見る
8817773ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

JavaSecLab - 総合的なJava脆弱性ラボ

License Java Version Developed by whgojp GitHub Repo stars GitHub forks

中文ドキュメント


概要

JavaSecLabは、アプリケーションセキュリティの学習、コード監査の実践、セキュア開発トレーニング、セキュリティツールの評価のための総合的なJava脆弱性ラボです。Spring Bootをベースに構築されており、脆弱なコード、修正済みの実装、現実的な攻撃シナリオ、監査指向のsourceとsinkのメモ、修復ガイダンス、セキュアコーディングの解説、トラフィック分析の例を提供します。

目標は実践的です。脆弱性がどのように悪用されるかを理解するだけでなく、なぜコード内に存在するのか、そしてどのように修正すべきかをユーザーが理解できるようにすることです。

home

show

対象読者

  • セキュリティサービスチーム: 脆弱性の原因、悪用経路、修正方法、監査フロー、トラフィックパターンを説明するために活用できます。
  • 企業のセキュリティチーム: SDL、DevSecOps、セキュア開発トレーニング、セキュリティ意識向上プログラムに利用できます。
  • セキュリティ研究者: SAST、DAST、IAST、RASP、SCA、xAST、到達可能性分析、その他のセキュリティツールをテストできます。
  • Java開発者: 抽象的なチェックリストではなく、実際のコードから一般的なアプリケーションセキュリティ問題を学べます。

脆弱性モジュール

JavaSecLabは、幅広いJava Webセキュリティシナリオをカバーしています。具体的には以下の通りです。

  • XSS、CSRF、CORS、JSONP、URLリダイレクト、XFFスプーフィング、サービス拒否、XPathインジェクション
  • SQLインジェクション、任意ファイルの読み取り/アップロード/ダウンロード/削除、SSRF、XXE、RCE
  • ビジネスロジックの欠陥: IDOR、キャプチャのセキュリティ、決済のセキュリティ、並行処理のセキュリティ
  • 機密情報の漏洩、ログイン対抗、リクエスト署名、JWT認証情報のセキュリティ
  • SpELインジェクション、SSTI、Javaデシリアライゼーション
  • Fastjson、Jackson、XStream、Log4j2、Shiro、SnakeYAML、XMLDecoder、その他のコンポーネント/エコシステムのケース
  • Spring Bootエコシステムの露出: Swagger、Actuator、Druid、MySQL JDBCデシリアライゼーションなど

オンラインデモ

デモサイト: http://whgojp.top/

デフォルトアカウント: admin/admin

JavaSecLabは意図的に脆弱に作られており、危険なエンドポイント、脆弱な依存関係、安全でない設定を含んでいます。自身のデプロイは分離された環境でのみ実行してください。パブリックインターネットに直接公開しないでください。

このプロジェクトが存在する理由

作者は企業のセキュリティ職務に従事し、脆弱性のライフサイクル全体を経験してきました。ペネトレーションテストやセキュリティ評価の後、脆弱性はTAPDやJiraなどのシステムを通じて開発チームに割り当てられることがよくあります。実際には、次の2つの疑問が繰り返し浮上します。

  1. なぜこの動作が脆弱性なのか?
  2. この脆弱性はどのように修正すべきか?

JavaSecLabは、脆弱性の動作、脆弱なコード、修復アプローチ、監査の考え方を結びつけるために作られました。テキストのみのレポートやPoCと比較して、このプロジェクトはコードの観点から脆弱性を理解することを重視しています。

コード監査では、まずsink(コマンド実行、SQL実行、ファイルアクセス、テンプレートレンダリング、デシリアライゼーション、レスポンス出力など)を特定するのが一般的なワークフローです。次に監査者は、対応するsource(リクエストパラメータ、ヘッダー、Cookie、アップロードファイル、シリアライズデータ、データベースの内容など)を特定するために逆方向に追跡します。JavaSecLabの多くのシナリオは、このsourceからsinkへの経路を中心に設計されており、学習とツール検証の両方に役立ちます。

同じ脆弱性タイプは、実際のシステムでは複数のトリガー経路を通じて現れることがよくあります。そのためJavaSecLabは、可能な限り主要な脆弱性クラスに対して複数のシナリオを提供し、異なるコーディングパターン、フレームワーク機能、ビジネスフローがリスクにどのように影響するかをユーザーが比較できるようにしています。

トラフィック分析

JavaSecLabには、学習者がリクエスト/レスポンスの動作とコード実行を結びつけられるよう、脆弱性トラフィック分析の例が含まれています。より明確なパケット、より良い再現手順、追加の分析例の貢献を歓迎します。

flow1

例えば、時間ベースのSQLインジェクションシナリオでは、レスポンスの遅延を通じてトラフィックパターンを観察できます。サーバーは約5秒後に応答します。

flow2

技術スタック

  • Spring Boot
  • Spring Security
  • MyBatis / MyBatis-Plus
  • JPA / Hibernate
  • Thymeleaf
  • Layui
  • MySQL

デプロイ

リポジトリをクローンします:

root@kitploit:~
git clone https://github.com/whgojp/JavaSecLab.git
cd JavaSecLab

git clone

IDEAによるローカルデプロイ

要件:

  • JDK 8
  • MySQL 8.0+
  • Maven
  1. データベースを作成し、sql/JavaSecLab.sqlをインポートします。

  2. src/main/resources/application.ymlでアクティブプロファイルをdevに設定します:

    root@kitploit:~
    spring:
      profiles:
        active: dev
    
  3. src/main/resources/application-dev.ymlでデータベース接続を更新します:

    root@kitploit:~
    username: root
    password: QWE123qwe
    url: jdbc:mysql://localhost:13306/JavaSecLab?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
    
  4. IDEAまたはMavenからアプリケーションを起動します。

デフォルトアカウント: admin/admin

login

Dockerデプロイ

要件:

  • Docker
  • Docker Compose

オプション1: 公開イメージで起動する:

root@kitploit:~
docker compose -f docker-compose.image.yml up -d

オプション2: イメージをローカルでビルドしてラボを起動する:

root@kitploit:~
mvn clean package -DskipTests
docker compose -p javaseclab up -d

起動後にデータベースが空の場合は、手動でsql/JavaSecLab.sqlをインポートしてください。

docker deployment

docker deployment

その他のデプロイオプションとトラブルシューティングの注意事項については、デプロイガイドを参照してください。

セキュリティに関する注意

JavaSecLabは脆弱なラボプロジェクトです。再現と教育のために、危険なエンドポイント、脆弱な依存関係、安全でない設定を意図的に保持しています。ローカルまたは分離されたネットワークでのみ実行してください。

推奨される注意事項:

  • JavaSecLabをパブリックネットワーク上に直接デプロイしないでください。
  • 使い捨てのアカウント、テストデータベース、分離されたコンテナを使用してください。
  • 機密性の高いホストディレクトリをコンテナにマウントしないでください。
  • Docker Composeを実行する前に、公開されるポートを確認してください。
  • アップロードファイル、生成ファイル、ログは信頼できないデータとして扱ってください。

このプロジェクトのセキュアコード例は、教育とデモンストレーションを目的としています。実際のビジネスシステムでは通常、認証、監査、レート制限、データ検証、依存関係のガバナンス、監視、アラート、多層防御が必要です。

コントリビューション

Issueとプルリクエストを歓迎します。優れたコントリビューションには以下が含まれます。

  • 脆弱なコードと修正済みコードが明確な新しい脆弱性シナリオ
  • より正確なsource/sinkのメモとコード監査の解説
  • より良い脆弱性トラフィックパケットと分析メモ
  • デプロイの修正とドキュメントの改善
  • ラボでの教育を容易にするUIとインタラクションの改善

ライセンス

私たちがフリーソフトウェアについて語るとき、それは自由を指しており、価格ではありません。

JavaSecLabはApache License 2.0の下でリリースされています。詳細はLICENSEを参照してください。

Star履歴

Star History Chart

変更履歴

リリースノートとプロジェクトの履歴については、更新ログを参照してください。

作者

作者のブログ: 今天是几号

アプリケーションセキュリティ、セキュア開発、SDL、DevSecOps、脆弱性ラボに興味がある方は、ぜひコミュニティグループにご参加ください。

WeChat Community group

スポンサー

JavaSecLabがお役に立ったなら、スポンサーシップをいただけると幸いです。サポートはオンライン環境の維持とプロジェクトの継続的な改善に使用されます。

Sponsor JavaSecLab
ツールをダウンロード