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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-2471 — CVE-2021-2471 - MySQL Connector/J における XXE 脆弱性の PoC | Kitploit
ツール/GitHubGitHub/drunkenshells/cve-2021-2471
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストデータベースセキュリティ
GitHubdrunkenshells/cve-2021-2471

CVE-2021-2471

CVE-2021-2471 - MySQL Connector/J における XXE 脆弱性の PoC

リポジトリを見る
334年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2021-2471 - MySQL Connector/J における XXE

Oracle MySQL の MySQL Connectors 製品の脆弱性(コンポーネント: Connector/J)。影響を受けるサポート対象バージョンは 8.0.26 およびそれ以前です。
この脆弱性の攻撃が成功すると、重要なデータへの不正アクセス、または MySQL Connectors がアクセス可能なすべてのデータへの完全なアクセスが可能になり、さらに MySQL Connectors のハングアップや頻繁に繰り返されるクラッシュ(完全なDOS)を引き起こす不正な能力が生じる可能性があります。

Disclaimer:

この脆弱性は、Alibaba Cloud Security Team の Xu Yuanzhen 氏と Alibaba の Hongkun Chen 氏によって発見されました。
この PoC は研究目的で提供されています。明示的な許可なくターゲットを攻撃するために使用しないでください。

Vendor Disclosure:

この脆弱性に関するベンダーの開示と修正は、こちら で確認できます。

Proof Of Concept:

XXE 脆弱性は、悪意のある DTD エンティティを含む XML が MysqlSQLXML コンポーネントによって受信され、getSource() 関数が呼び出されたときにトリガーされます。

以下の mysql-connector-java-8.0.26.jar のコードに見られるように、DOMSource クラスが getSource() 関数の引数として指定されると、安全でない方法で DocumentBuilder を公開します。そのため、攻撃者がビルダーに渡される inputSource のコンテンツを制御できる場合、XXE を取得するために悪用される可能性があります:

root@kitploit:~
public <T extends Source> T getSource(Class<T> clazz) throws SQLException {
        try {
            this.checkClosed();
            this.checkWorkingWithResult();
            InputSource reader;
            if (clazz != null && !clazz.equals(SAXSource.class)) {
                SQLException sqlEx;
                if (clazz.equals(DOMSource.class)) {
                    try {
                        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
                        builderFactory.setNamespaceAware(true);
                        DocumentBuilder builder = builderFactory.newDocumentBuilder();
                        if (this.fromResultSet) {
                            inputSource = new InputSource(this.owningResultSet.getCharacterStream(this.columnIndexOfXml));
                        } else {
                            inputSource = new InputSource(new StringReader(this.stringRep));
                        }

                        return new DOMSource(builder.parse(inputSource));

悪意のある XXE を MysqlSQLXML に渡す方法は 2 つあります:

  • sqlxml.setString() 関数を使用する(攻撃者が任意の入力を setString 関数に呼び出しまたは伝播できる場合)
  • XML をデータベースに配置し、resultSet.getSQLXML() 関数を使用して結果セットを介して取得する(攻撃者がデータベースへの書き込みアクセス権を持っているか、被害者を攻撃者が制御するデータベースに誘導できる場合)

Additional Resources:

sqlxml.setString() を使用した PoC XXE
resultSet.getSQLXML() を使用した PoC XXE
脆弱な JAR のダウンロード
その他の XXE ペイロード

ツールをダウンロード