PracticU

פריצה לשרת SQL מהאינטרנט - חלק 5

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › פריצה לשרת SQL מהאינטרנט - חלק 5
מילון מושגים:
SQL Injection - חולשה שבה קלט זדוני מוחדר לשאילתת SQL, ומאפשר לתוקף לקרוא או לשנות נתונים במסד.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
תגובה - המידע שהשרת מחזיר ללקוח בתשובה לבקשה, הכולל בדרך כלל נתונים וקוד סטטוס.
חולשה - פגם או חולשה במערכת או בתוכנה שעלול לאפשר פגיעה באבטחה אם לא יטופל.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
האש - פונקציה שממירה מידע לערך קצר באורך קבוע. שינוי קטן בקלט משנה את התוצאה, והיא חד-כיוונית.
SHA - משפחת פונקציות האש קריפטוגרפיות, המשמשות לאימות שלמות מידע ולחתימות דיגיטליות.

פריצה לשרת SQL מהאינטרנט - חלק 5
ההרצאה מציגה כלי אוטומטי לבדיקת אתרים שחשופים ל-SQL Injection, ואת מה שהכלי מסוגל לעשות אחרי שמצא פרצה. המטרה היא להבין את הסיכון ואת הדרך לזהות אותו, לא לשחזר את התהליך.
השלבים העיקריים
1. זיהוי פרצה אוטומטי: הכלי בודק אם פרמטר באתר מעביר קלט של משתמש ישירות לשאילתה של מסד הנתונים, בלי סינון.
2. זיהוי סוג מסד הנתונים: לפי התגובה של השרת הכלי מזהה את סוג מסד הנתונים ואת הגרסה שלו, ובכך מקבל תמונה של החולשות האפשריות.
3. שליפת מידע טכני: הכלי יכול לחשוף את המשתמש שמריץ את השאילתות, את מסד הנתונים הנוכחי, ואת רשימת הטבלאות והעמודות.
4. בדיקת הרשאות: בהרצאה מוצג שלמשתמש של מסד הנתונים יש הרשאות מנהל, ומכאן שהוא יכול לגשת לנתוני חשבונות המשתמשים.
5. שבירת hash חלש: סיסמאות שנשמרו בתקן SHA-1 נבדקו מול רשימת מילים נפוצה, וחלקן נמצאו. סיסמה שנשמרת בצורה כזו לא מוגנת מספיק.
6. מגבלות הכלי: המרצה מציין שהכלי לא מושלם ולפעמים נכשל, ולכן חשוב להבין ידנית מה הוא עושה.
איך מתגוננים
שימוש בשאילתות מוכנות (prepared statements) מפריד בין הקוד לבין קלט המשתמש, וכך הקלט לא יכול לשנות את השאילתה. כדאי גם להגביל את ההרשאות של חשבון מסד הנתונים שהאתר משתמש בו, ולשמור סיסמאות עם hash חזק ו-salt ולא בתקנים ישנים.
הפרצה נוצרת כששרת האתר מעביר קלט לא מסונן למסד הנתונים, ולכן התיקון מתחיל בקוד האפליקציה.
השיעור הבא בקורס: פריצה לאתר אינטרנט אמיתי

פרקי ההרצאה: פריצה לשרת SQL מהאינטרנט - חלק 5

  1. 00:00

    היכרות עם הכלי sqlmap ותפקידו

  2. 00:41

    אפשרויות הכלי - כתובת, POST ועומק בדיקה

  3. 01:42

    סוגי טכניקות לזיהוי SQL Injection

  4. 02:38

    עבודה עם בקשת HTTP שנשמרה לקובץ

  5. 05:51

    זיהוי גרסת מסד הנתונים (Banner)

  6. 07:21

    טביעת אצבע של השרת וגרסאותיו

  7. 08:39

    בדיקת המשתמש והרשאות מסד הנתונים

תמלול ההרצאה: פריצה לשרת SQL מהאינטרנט - חלק 5

הטקסט המלא של הדקות הראשונות בהרצאה «פריצה לשרת SQL מהאינטרנט - חלק 5» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הזאת אנחנו נלמד על כלי שנקרא sql map sql map זה כלי מאוד מאוד מאוד חזק שאוטומטית בודק האם האתר חשוף לsql injection זאת אומרת שבעזרת sql map אנחנו נוכל לבדוק האם האתר חשוף לsql injection sql map

  2. 00:28

    אם אנחנו נראה מה זה sql map זה למעשה קובץ בפייתון בואו נראה את האפשרויות שלו ונתחיל להשתמש בו הוא יודע לתקוף לנו דרך url אנחנו יכולים להגיד לו url והוא בודק את האתר בפקודת גט הוא יכול גם להוסיף לזה את הפרמטר מינוס מינוס דאטה ולתת לו איזשהו מידע כתוספת שיהיה פוסט ולא רק גט אוקיי לתת לו url ולהגיד לו למטה באיזה

  3. 01:04

    דאטה שילך כמו פוסט איזה קוקיס להשתמש בהם אבל אנחנו לא הולכים לעשות את זה בדרך הקשה הזאת אנחנו נעשה דרך יותר פשוטה תכף והוא יודע לבד לחפש דאטאבייסים אנחנו יכולים להפנות אותו לדאטאבייס מסוים אחרי שגילינו איזה דאטאבייסים יש ואנחנו יכולים להגיד לו מה רמת הבדיקה כאילו כמה מה העומק של הפקודות שאפשר להריץ כדי שלא יתפסו אותנו אוקיי איזה טכניקות

  4. 01:40

    הוא יודע שימו לב הוא יודע הרבה שיטות של אסקיול אינג'קשן לדוגמה בליין וטיימינג והוא מאוד חכם והוא יודע להחזיר לי את הקארנט יוזר שלה והוא יודע את הקארנט דאטאבייס להחזיר לי ואת רשימת הטבלאות ואת רשימת העמודות כל מה שעשינו ידנית הוא יודע לעשות הוא יודע לעשות לי דאמפ לדאטאבייס ולטבלה מסוימת ואנחנו יכולים להגיד לו לאיזה טבלה אנחנו רוצים ולאיזה עמודות אנחנו רוצים

  5. 02:13

    איזה עמודות אנחנו רוצים הכלי הזה יודע גם לבדוק האם יש OS Shell, אם אפשר לעשות Web Shell כמו שעשינו, לפתוח Shell חזרה אלינו, כאילו למעשה להריץ את הסקריפט שלנו על שרת מרוחק, ויש לו עוד הרבה הרבה הרבה אפשרויות.

  6. 02:36

    בואו נתחיל להשתמש בכלי הזה. דבר ראשון, אני רוצה לא לעשות לו URL ידני, זה לא נוח לי. אני רוצה להשתמש באופציה יחסית חדשה, אני לא רואה שהיא כתובה פה, מינוס R נקראת.

  7. 02:52

    האופציה החדשה שנקראת מינוס R מאוד נוחה שזה למעשה להביא לו רקווסט בואו נתחיל להשתמש בזה ונראה אני מפעיל את ה-bop שזה פרוקסי אני מפעיל אותו מקומית כדי לתפוס את השאילתה את הרקווסט כדי לא לכתוב לו url ידנית אני אומר לו לתפוס את הרקווסט יופי ופה אנחנו נמצאים כבר בדף הנכון intercept is on מפעילים אותו מחכים פה לפרוקסי פרוקסי צריך כמובן את האתר להפנות לשם שנייה

  8. 03:32

    להפנות את האתר לפרוקסי הזה נטוורק אדוונס נטוורק סטטינגס מ-27.001.80.80 ופה אני לא כותב כלום בודק שהפרוקסי באמת מוגדר על 80.80 באמת פרוקסי אופשנס מוגדר על 80.80 ואני פה באינטרספט און מחכה לפקטים ובוא ננסה aaa לכתוב ו bbb כתבנו את זה האתר ממתין לתשובה מהשרת ולמעשה תפסנו פה את ה-request, את הבקשה.

  9. 04:17

    אני לוקח את כל הבקשה הזאתי ומעתיק פשוט לתוך קובץ copy to file. נעתיק אותו פשוט לקובץ ונקרא לזה בתיקיה של רות נקרא לזה user לא יודע מה request user request נקודה טקסט user request נקודה טקסט וזהו אני משחרר אותו יפה מאוד עכשיו אני כבר לא צריך לא את ה-webs הוא

  10. 04:52

    הוא יעשה הכל לבד בוא נעשה פה ls-l אני רואה את הuser request בוא נראה את הקובץ שזה בעצם הקובץ שעשינו שימו לב בתוך הקובץ יש רק את הטקסט כולל הפוסט המידע הזה למטה אחרי הכותרת נקרא פוסט דאטה זה מה שיכולנו לציין כאופציות אבל בגלל שיש לנו בקשה מלאה אנחנו נגיד לו תיקח את הבקשה הזאת

  11. 05:21

    ותתחיל לשחק איתה אז אנחנו עושים דבר כזה sqlmap-r עם ה-request הזה תתחיל תנסה דרך ה-request הזה, הוא בעצם מקבל גם את השרת, יש לו גם את הכתובת, הוא רואה גם את הפרמטרים והוא מבין שהפרמטר זה שם שלו שווה ערך, end, שם שלו שווה ערך,

  12. 05:44

    הוא מבין את כל התקן הזה והוא ינסה במקום השווה הזה, במקום ה-a-a הזה להציב כל מיני דברים כמו שאנחנו עשינו, order buyer ו-union ואת הכל.

  13. 05:56

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

  14. 06:11

    הוא אומר לי, תקשיב, אני גיליתי שהדאטאבייס הוא מיי אסקיואל, האם אתה רוצה להמשיך לחפש עוד, לבדוק עוד דאטאבייס אם אני אומר לא?

  15. 06:20

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

  16. 06:38

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

  17. 06:53

    והוא גם מראה לי את השאילתות שהוא עושה. הוא עושה username AA, שם את הצ'ופצ'יק והיה עשה את ה-end הזה. ולפי התוצאות של ה-end הזה, הוא הבין שהיוזרניים כן חשוף.

  18. 07:07

    זה בדיוק מה שאנחנו עשינו. עשינו צ'ופצ'יק, ראינו שיש לנו הודעת שגיאה, ולפי הודעת שגיאה אחרי זה הלכנו והמשכנו. ביקשנו ממנו רק באנר, הרי כתבנו לו באנר, והנה קיבלנו את הבאנר הזה, זה הבאנר.

  19. 07:21

    באנר אומר שזה מהsql 5.0 וגרסה 5.1.4 על אובונטו. אנחנו יכולים לקבל יותר מידע, לא רק הבאנר הזה, אפשר לעשות יותר מידע, שזה נקרא לעשות פינגר פרינט.

  20. 07:38

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

  21. 07:55

    באנר זה משהו מאוד כללי. לוקח לו קצת זמן לעשות את הפינגרפרינט. אתם רואים? Executing MySQL Comment Injection, פינגרפרינט.

  22. 08:09

    ואנחנו רואים פה שהוא ממש מביא לי את הגרסה, שזה Apache 2214, שזה PHP 532, מביא לי את כל המידע המפורט, שזה Linux, סומבונטו, 10.04. עכשיו, למה זה חשוב לי ככה? אני יודע איזה התקפות להריץ, אני יודע שלדוגמה ב-PHP או ב...

  23. 08:30

    מיי אסקיואל בגרסה מסוימת יש איזה חורי אבטחה את כל מה שהוא כותב לי פה על המסך הוא גם שם לי בתיקייה שימו לב, הוא שם לי את זה בתיקייה ואני יכול ממש לראות את הקובץ הזה של ה-output תכף אנחנו נסתכל עליו בואו ניתן לו משהו יותר מעניין לעשות נבקש ממנו לעשות current user

  24. 08:53

    שיראה לי מי זה היוזר הנוכחי היוזר שמחובר משרת ה-web למיי אסקיואל למעשה תחת איזה הרשאות אנחנו עובדים בתוך מיי אסקיואל CurrentDB, מה הדאטאבייס הנוכחי ו-HostName, מה השם של השרת והאם אני אדמיניסטרטור, האם יש לי הרשאות של אדמיניסטרטור בשרת, שזה גם מאוד מעניין, נכון?

  25. 09:25

    האם אני DBA או לא. עכשיו, את כל הפקודות האלו אתם יכולים לראות ב-Help שלו, זה לא שאני מכיר את זה בעל פה, אני פשוט הסתכלתי לפני הסרט ב-Help שלו וראיתי את זה שם.

  26. 09:38

    ואנחנו עושים Enter, והנה אנחנו רואים שקארנט יוזר שעובד זה mutualidate הדאטאבייס הנוכחי נקרא no wasp השם של השרת הוא כזה והוא דאטאבייס אדמיניסטרטור

לקורס המלא: קורס פריצה לאתרי אינטרנט אונליין

ההרצאה הקודמת: פריצה לשרת SQL מהאינטרנט - חלק 4

ההרצאה הבאה: פריצה לאתר אינטרנט אמיתי

הרצאות קשורות מקורסים אחרים

  • יבוא נתונים לשרת SQL
  • פריצה בכוח לשרת Brute Force FTP עם Hydra
  • הורדת תמונות מהאינטרנט ב-Xcode
  • איך לפרוץ סיסמה לשרת

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting