- בלוג
- אבטחת אתרי וורדפרס – אינומרציה של שמות משתמשים
אבטחת אתרי וורדפרס – אינומרציה של שמות משתמשים
אבטחת אתרי וורדפרס – אינומרציה של שמות משתמשים
פורסם ב 18-03-2020
רמת סיכון: נמוכה
אורי נחמני
מומחה אבטחת מידע של ג’טסרבר
ליקוי זה מאפשר לתוקף זדוני לבצע אינומרציה של שמות משתמשים בשירותים שונים, בעזרת הגדרות מתירניות באפליקציות Web ובעזרת שימוש נכון ב-Brute-force יכול התוקף הזדוני לחשוף את שם המשתמש של פאנל הניהול. חשיפת מידע רגיש זה מהווה פרצה חמורה שכן, אם פאנל הניהול איננו מוגן בצורה כלשהי, יכול התוקף לבצע מתקפת – brute-force נוספת על הפרמטר של הסיסמה, ובכך להשלים את הפאזל הדרוש על מנת שיוכל לחדור אל אזור הניהול של האתר.
במערכות וורדפרס קיימת הגדרה דיפולטיבית אשר בעזרת הפרמטר author מאפשרת לחשוף את שמות המשתמשים באתר, חשיפת מידע זה אפשרית בגלל ש-wordpress משייכת כל עורך-author אל פרמטר -id מסויים, id מספר 1 יהיה תמיד היוזר עם ההרשאות הגבוהות ביותר, אם הגדרה זאת לא נחסמה מבעוד מועד, ניתן להריץ – Brute-force של מספרים על הפרמטר author, תשובת השרת תכיל את Header ה-Location אשר יחשוף את שם המשתמש המשוייך אל אותו ה-id.
במהלך בדיקת החוסן נעשה שימוש בכלי Nmap ובסקריפט – http-wordpress-users, סקריפט זה ביצע Brute-force של מספרים תוך העברת הפרמטר author אל האתר,
הסריקה חשפה את המשתמש הראשי באתר – root, אשר לו משוייך id מספר 1.
בדיקה ידנית יכולה להעשות על ידי גישה את הכתובת : http://3.120.144.6:31120/?author=1 ובדיקת כותר ה-location שחוזר מהשרת.
תמונות להמחשה ומהלך הבדיקה
הרצת הסקריפט ומציאת המשתמש
המחשה לכותר – “location” לאחר העברת הפרמטר “author=1”
המלצות לתיקון
יש לחסום מיידית את האופציה אשר מאפשרת לחשוף את שמות המשתמשים,
אסור לאפשר את העברת הפרמטר – author עם ערכי המספרים המציינים את ה-id של המשתמשים באתר.
ניתן לחסום זאת ב-2 דרכים :
- שינוי קוד ה-Function.php בתבנית האתר
- חסימה ברמת השרת על ידי עריכת קובץ ה-.Htaccess ושימוש ב-mod_rewrite לשם הגדרת הכלל.
דוגמה להגדרת כלל האבטחה בקובץ ה- .htaccess:RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* http://example.com/? [L,R=302]