יום חמישי, 12 ביולי 2018

SQL INJECTION - המדריך לתוכנה Havij

SQL INJECTION - המדריך לתוכנה Havij

על סדר היום:

- הקדמה
- הסבר כללי על SQLi
- הסבר כללי ומידע על התוכנה Havij
- SQLi - מתחילים!
- סיכום

- הקדמה

לפני שנתחיל אני יכול להגיד שהמתקפה הזאת היא כרגע בטופ 10 של התקפות אפליקטביות ואני אישית מוצא מדי יום הרבה אתרים פריצים לחולשה הזאת.
חשבתי קצת לפני שעשיתי את המדריך הזה האם לעשות מדריך יותר תאורתי ולהסביר יותר על המתקפה(מה שיותר מצריך ידע מוקדם של SQL - PHP) 
או לעשות מדריך יותר פרקטי(אם אפשר סקידר) ולהשתמש בתוכנות צד שלישי כמו Havij. כמובן שבהמשך במידה ויהיה ביקוש אעשה מדריך יותר תאורטי שמסביר על המתקפה יותר טוב ובלי תוכנות צד.

- הסבר כללי על SQLi

הזרקת SQL (באנגלית: SQL Injection) היא שיטה לניצול פרצת אבטחה בתוכנית מחשב בעזרת פניה אל מסד הנתונים. השם נובע מכך שהמשתמש מכניס קוד SQL לשדה קלט אליו אמורים היו להיכנס נתונים תמימים. באופן זה יכול משתמש זדוני לחרוג לחלוטין מן התבנית המקורית של השאילתה, ולגרום לה לבצע פעולה שונה מזו שיועדה לה במקור. הזרקת SQL היא מקרה פרטי של קבוצה רחבה של פרצות אבטחה הנקראות הזרקות קוד, שמתרחשות כאשר תוכנה כלשהי יוצרת קוד בזמן ריצה על־פי הקלט ובלי לבדוק את תוכן הקלט תחילה.
כל תוכנית שבונה שאילתות SQL תוך שילוב של נתונים מן המשתמש, עלולה להיות פגיעה להזרקה, עלולה לחשוף נתונים שהמתכנת חשב שלא יוכלו להחשף ועלולה לגרום נזק לנתונים עצמם ומכיוון שכך, היא עלולה להיות פגיעה ללוחמת סייבר.
*תודה לויקיפדיה על המידע הזה*

- הסבר כללי על התוכנה - Havij

Havij היא תוכנה אוטומטית לניצול פרצת SQLi שעוזרת לPenetration Testers למצוא פגיעויות של SQLi בעמודים באינטרנט. 
התוכנה עושה הכל בשבילנו אם זה למצוא את הפגיעות, העמודות, להוציא שמות של מסדי נתונים, שמות של טבלאות, עמודות וכו...
כמו כן אפשר לערוך\להוסיף\להסיר תוכן קיים במסדי נתונים. עוד דברים שהתוכנה יכולה לעשות זה למצוא עמודי התחברות
מרשימה שנמצאת בתוכנה שבעזרתה יהיה סיכוי למצוא את הCpanel של האדמין, וגם לDecrypt לסיסמאות מוצפנות MD4\5.
התוכנה זמינה בגרסא חינמית ובגרסא בשלום, היום אני ישתמש בגרסא החינמית. להורדה - https://uploadfiles.io/2jmer *הסיסמא - cyberforums*

- SQLi - מתחילים!

אחרי הרבה הקדמות חפירות הסברים הגיע הזמן להתחיל!
היום אנחנו נראה איך מוצאים פגיעות של SQLi ואיך מוציאים ממנה את כל המידע שנמצא על מסדי הנתונים.
יש הרבה דרכים למצוא אתרים פריצים לSQLi אחד הדרכים הטובות היא בעזרת -
Dorks (כמה מילות חיפוש שבעזרתם יהיה אפשר למצוא פגיעויות להסבר מפורט יותר גגלו את המילה).
אבל למי יש זמן לחיפושים? נשתמש באחד האתרים האהובים עליי ללימוד - hackyourselffirst!
נקח למשל את הכתובת הזאת שיכולה להיות פגיעה לSQLi:
http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V10
ונשים אותה בשורת קישור בתוכנה ונלחץ על Analyze:
התוכנה סיימה את החיפוש ומצאה פגיעות של SQLi באתר נוכל לקבל עוד פרטים ומידע בחלונית הסטטוס למטה *ראה תמונה*
נלחץ על "Tables" וכמו שאנחנו רואים התוכנה מצאה לנו את השם של המסד נתונים במקרה שלנו זה - hackyourselffirs_db.
כדי למצוא את כל הטבלאות שנמצאות במסד הנתונים שמצאנו נסמן את מסד הנתונים ונלחץ על "Get Tables" ונתן לתוכנה כמה שניות כדי להוציא את כל הטבלאות.
כמו שרואים בתמונה יש לנו כמה טבלאות מאוד מעניינות אבל הכי בולטת לעין היא - "UserProfile" ששם אם שאלתם נמצא כל שמות המשתמשים והסיסמאות.
כדי להוציא את העמודות שנמצאות בטבלת - "UserProfile" נסמן את הטבלה ונלחץ על - "Get Columns" - תמונה להמחה:
כמו שניתן לראות יש בטבלת "UserProfile" 6 עמודות - UserId,Password,LastName,isAdmin,FirstName,Email.
אתם יכולים לנחש לבד איזה עמודות מעניינות אותנו ואת זה אתם יכולים לראות לבד : )
לקינוח וסתם לכיף שיניתי שם שם אחד המכוניות לשם של הפורום נראה את הראשונה שישנה את זה חזרה : )

- לסיכום 

היום למדנו להשתמש בתוכנה Havij כדי לנצל פגיעות SQLi, התוכנה הזאת עזרה לי הרבה מאוד אבל אין כמו להשתמש ידני בשיטות של פעם בלי תוכנות שעושות בשבילך הכל. אני חוזר ואומר שאם יהיה ביקוש ללמוד SQLi עם שאילתות פשוטות בלי תוכנות אני אעשה, ובכללי הולך לעלות בקרוב מדריך של CSRF ולאט לאט נכנס יותר לעניינים של תחום הווב.

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