Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-2471 — PoC لـ CVE-2021-2471 - XXE في MySQL Connector/J | Kitploit
أدوات/GitHubGitHub/drunkenshells/cve-2021-2471
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقأمن قواعد البيانات
GitHubdrunkenshells/cve-2021-2471

CVE-2021-2471

PoC لـ CVE-2021-2471 - XXE في MySQL Connector/J

عرض المستودع
332منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2021-2471 - XXE في MySQL Connector/J

ثغرة في منتج MySQL Connectors من Oracle MySQL (المكون: Connector/J). الإصدارات المتأثرة هي 8.0.26 والإصدارات السابقة.
يمكن أن تؤدي الهجمات الناجحة على هذه الثغرة إلى الوصول غير المصرح به إلى البيانات الحرجة أو الوصول الكامل إلى جميع البيانات التي يمكن الوصول إليها من MySQL Connectors، بالإضافة إلى القدرة غير المصرح بها على التسبب في تعليق أو تعطل متكرر (DOS كامل) لـ MySQL Connectors.

إخلاء المسؤولية:

تم اكتشاف هذه الثغرة بواسطة Xu Yuanzhen من فريق أمان Alibaba Cloud و Hongkun Chen من Alibaba.
يتم تقديم هذا الإثبات المفاهيمي لأغراض البحث. لا تستخدمه لمهاجمة أهداف ليس لديك إذن صريح لاستغلالها.

إفادة البائع:

يمكن العثور على إفادة البائع وإصلاح هذه الثغرة هنا.

الإثبات المفاهيمي:

تتكون ثغرة XXE من XML يحتوي على كيانات DTD ضارة يتم استلامها بواسطة مكون 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:

  • استخدام الدالة sqlxml.setString() (إذا كان بإمكان المهاجم استدعاء أو نشر إدخال عشوائي إلى الدالة setString)
  • وضع XML في قاعدة البيانات واسترجاعه عبر مجموعة النتائج باستخدام الدالة resultSet.getSQLXML() (إذا كان للمهاجم صلاحية الكتابة على قاعدة البيانات، أو يمكنه توجيه الضحية إلى قاعدة بيانات يتحكم بها المهاجم)

موارد إضافية:

PoC XXE باستخدام sqlxml.setString()
PoC XXE باستخدام resultSet.getSQLXML()
تحميل JAR الضعيف
حمولات XXE أخرى

تنزيل الأداة