חיפוש מותאם
חיפוש מותאם
חיפוש מותאם
קידום אורגני סודי

הסבר פשוט על הפרצה GravityForms <= 2.9.1.3 – Unauthenticated Stored Cross-Site Scripting

מה קרה כאן?
במערכת וורדפרס (WordPress), יש תוסף פופולרי בשם Gravity Forms, שנועד ליצירת טפסים באתר.

בגרסאות הישנות שלו (עד 2.9.1.3), יש חולשה שגורמת לכך שהתוסף לא מסנן נכון את המידע שמזינים אליו.

איך ההאקר מנצל את זה?
האקר יכול להכניס קוד זדוני (בדרך כלל קוד JavaScript) לתוך אחד מהשדות של הטופס – במקרה הזה, דרך ה-alt parameter (המשמש לתיאור תמונות). בגלל שהתוסף לא מנקה את המידע כמו שצריך, הקוד נשמר במסד הנתונים של האתר.

מה המשמעות של זה?
בכל פעם שמישהו מבקר בעמוד שמכיל את הנתונים הזדוניים, הדפדפן שלו מבצע את הקוד שההאקר שתל.

מה האקר יכול לעשות עם זה?

  1. לגנוב מידע של משתמשים – למשל, לגנוב סיסמאות, עוגיות (cookies) או מידע שמוזן לטפסים.
  2. לגרום למשתמשים להפעיל פעולות מסוכנות – למשל, לגרום למשתמש שמחובר כאדמין ללחוץ על קישור שייתן להאקר שליטה באתר.
  3. להפיץ וירוסים או נוזקות – אם הקוד שההאקר הכניס מפנה את המשתמשים לאתר אחר שמדביק אותם.

מה מסוכן כאן במיוחד?

  • התוקף לא צריך להיות מחובר לאתר בכלל – זה נקרא “Unauthenticated”, כלומר כל אחד יכול לנצל את החולשה בלי הרשאות מיוחדות.
  • הקוד נשמר במסד הנתונים – ולכן הוא ממשיך לפעול שוב ושוב, עד שמישהו מוחק אותו.

איך מתקנים את זה?

  • לעדכן את התוסף לגרסה החדשה שבה כבר תיקנו את החולשה.
  • להשתמש בתוסף אבטחה שמזהה ניסיונות כאלה.
  • לבדוק אם כבר יש קוד זדוני באתר ולנקות אותו.

איך למצוא ולנקות קוד זדוני בבסיס הנתונים של וורדפרס שנוצר בגלל הפרצה ב-Gravity Forms?

1. להבין איפה הקוד יכול להימצא

מכיוון שהפרצה מאפשרת להזריק קוד JavaScript זדוני לתוך alt parameter של תמונות בטפסי Gravity Forms, הקוד הזדוני יישמר במסד הנתונים של וורדפרס בתוך אחת מהטבלאות הבאות:

  • wp_posts – אם הקוד הזדוני הוזרק לפוסטים, דפים, או תוכן אחר שנשמר באתר.
  • wp_postmeta – אם הקוד הוזרק לתוך מטא-נתונים של פוסטים (למשל, תיאור תמונה).
  • wp_options – אם התוקף הצליח להזריק קוד לאחת מהאפשרויות שנשמרות עבור Gravity Forms או תוספים אחרים.
  • wp_gravityforms_entry_meta – אם הקוד הוזרק לתוך תשובות שנשלחו דרך טפסים.

2. איך למצוא את הקוד הזדוני בבסיס הנתונים

שיטה 1: חיפוש ישיר ב-phpMyAdmin
  1. היכנס ל-phpMyAdmin (או לכלי ניהול מסד נתונים אחר).
  2. בחר את בסיס הנתונים של האתר.
  3. השתמש בשאילתת חיפוש כדי למצוא את הקוד הזדוני.
				
					SELECT * FROM wp_posts WHERE post_content LIKE '%<script%';
				
			
				
					SELECT * FROM wp_postmeta WHERE meta_value LIKE '%<script%';
				
			
				
					SELECT * FROM wp_options WHERE option_value LIKE '%<script%';
				
			
				
					SELECT * FROM wp_gravityforms_entry_meta WHERE value LIKE '%<script%';
				
			
  1. אם אתה רואה תוצאות עם קוד JavaScript שנראה חשוד (כמו onclick="...", onerror="...", eval(...) או קישורים מוזרים), כנראה שזה קוד זדוני.
 
חיפוש מתקדם דרך SSH (אם יש לך גישה לשרת)

אם יש לך גישה לשרת דרך SSH, תוכל להשתמש בפקודה

 

				
					grep -R "<script" /var/www/html/wp-content/

				
			

איך למחוק את הקוד הזדוני

מחיקה ידנית ב-phpMyAdmin
  1. אם מצאת קוד זדוני בשאילתות, לחץ על “ערוך” (Edit) ליד השורה המתאימה.
  2. מחק רק את הקוד הזדוני והשאר את שאר התוכן.
  3. לחץ על “שמור” (Save).
שימוש בשאילתת עדכון לניקוי

אם יש הרבה רשומות נגועות, תוכל להריץ שאילתה שמוחקת את הקוד:

				
					SELECT * FROM wp_gravityforms_entry_meta WHERE value LIKE '%<script%';
				
			
				
					UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '<script>', '');

				
			

🔒 איך לנקות ולמנוע פרצות XSS ב-Gravity Forms בוורדפרס?

 

מהי הפרצה ב-Gravity Forms ואיך האקרים מנצלים אותה?

  • פרצת Stored XSS שהתגלתה בגרסאות עד 2.9.1.3 מאפשרת להאקרים להכניס קוד זדוני ללא צורך בהתחברות לאתר.
  • הקוד נשמר בבסיס הנתונים ומופעל בכל פעם שמשתמש מבקר בדף נגוע.

איך למצוא קוד זדוני במסד הנתונים?

✅ בדיקה ידנית דרך phpMyAdmin – הרצת שאילתות SQL לחיפוש <script> בטבלאות:

  • wp_posts
  • wp_postmeta
  • wp_options
  • wp_gravityforms_entry_meta
				
					grep -R "<script" /var/www/html/wp-content/
				
			

איך למחוק את הקוד הזדוני ולנקות את האתר?

  • מחיקה ידנית של קוד זדוני מתוך הטבלאות ב-phpMyAdmin.
  • שאילתות SQL לניקוי המידע מכל הרשומות הנגועות.
  • ביצוע גיבוי לפני מחיקה!

איך למנוע מתקפות בעתיד?

🔹 עדכון מיידי של Gravity Forms לגרסה החדשה.
🔹 התקנת תוסף אבטחה (Wordfence, Sucuri) לאיתור והסרת קוד זדוני.
🔹 שימוש ב-Web Application Firewall (WAF) להגנה על האתר.
🔹 הגבלת גישה ל-phpMyAdmin ולמסד הנתונים.

⚠️ חשוב: לפני שאתה מוחק או משנה נתונים בבסיס הנתונים, תעשה גיבוי מלא כדי למנוע אובדן מידע חשוב.

4. למנוע פריצות נוספות בעתיד

✅ עדכן את Gravity Forms לגרסה החדשה ביותר.
✅ התקן תוסף אבטחה כמו Wordfence או Sucuri שיזהה קוד זדוני.
✅ הגבל גישה ל-phpMyAdmin כדי למנוע מתקפות נוספות.
✅ הוסף Web Application Firewall (WAF) שיחסום התקפות XSS עתידיות.