PracticU

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

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

פריצה לשרת SQL מהאינטרנט - חלק 1
SQL Injection הוא סוג פריצה שבו קלט שהמשתמש מזין באתר נכנס לשאילתת ה-SQL כחלק מהפקודה, ולא נשאר ערך נתון בלבד. השיעור מסביר את העיקרון, למה ההתקפה נפוצה כל כך, ולמה המרצה מגדיר אותה כאחת היעילות ביותר: היא מביאה ישירות אל מאגר הנתונים של החברה.
איך זה עובד
כשאתר בונה שאילתה מתוך הטקסט שהגולש הקליד, הטקסט שלו מתערבב עם הפקודה. אם האתר לא מבחין בין נתון לקוד, השרת עלול לפרש חלק מהקלט כחלק מהפקודה. המרצה מסביר ש-SQL מאפשר לרשום כמה פקודות ברצף מופרדות בנקודה-פסיק, ולכן פקודה אחת שהוזרקה יכולה להוסיף פעולות משלה. ההדגמה בשיעור נעשית על מסך ניהול של מסד נתונים, ואין בה פירוט של מסע פריצה מלא.
השרת לא מבחין מאיזו תוכנה הגיעה הפקודה. מבחינתו אין הבדל בין פנייה מאתר לבין פקודה שמישהו הריץ ידנית בכלי ניהול, ולכן ההגנה צריכה להיות בצד של האתר.
כלי ניטור
SQL Profiler מציג כל פקודה שרצה על השרת, יחד עם המשתמש, הזמן ומשך הביצוע. המרצה מציין שבשרת פעיל ירוצו אלפי שורות בדקה, ולכן אפשר לשמור את העקבות לטבלה ולנתח אותם אחר כך. אנשי DBA ואנשי אבטחת מידע משתמשים בכלי כזה כדי לזהות פקודות חשודות ופקודות שלוקחות זמן רב.
איך מגנים
1. פרמטרים במקום שרשור טקסט: הקלט של המשתמש מועבר לשאילתה כפרמטר נפרד, וה-SQL מטפל בתווים המיוחדים בעצמו. לפי המרצה זו הדרך הבטוחה ביותר, והיא נתמכת ב-.NET.
2. הרשאות מינימליות: חשבון האתר צריך רק את ההרשאות שהוא באמת צריך. המרצה מדגים שאם לחשבון יש גישה לטבלאות, הפריצה יכולה לקרוא אותן. לכן מומלץ להגביל אותו להרצה של פרוצדורה מוגדרת בלבד.
3. לא לסמוך על סינון ידני: החלפת תווים או בריחה ידנית של גרשיים לא מספיקה, כי יש דרכים רבות לעקוף אותה. המרצה ממליץ להשאיר את ההגנה למנגנון הפרמטרים.
4. הגנה על פרטי החיבור: המחרוזת ב-Web.config מכילה שם משתמש וסיסמה לשרת ה-SQL. אם הקובץ נחשף, הפריצה לשרת נעשית קלה יותר, ולכן ההרשאות צריכות להיות מוגבלות גם אז.
שימו לב
בדיקת חדירות נעשית רק על מה שמותר לבדוק, ובאישור הלקוח. המרצה מזכיר שפריצה ללא אישור היא עבירה פלילית.
SQL הוא בסיס חובה לכל מי שרוצה לעסוק באבטחה, ובלי הבנה של שאילתות קשה להבין את הנושא. עכשיו אתם יודעים לזהות מדוע קלט לא מטופל הוא סיכון, ואיך נכון לבנות את השאילתה.
השיעור הבא בקורס: פריצה לשרת SQL מהאינטרנט - חלק 2

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

  1. 00:00

    מבוא לחולשת SQL Injection ולמה היא מסוכנת

  2. 00:38

    שאילתת חיפוש בטבלת מוצרים באתר

  3. 01:22

    איך אתר מרכיב שאילתה מתוך קלט המשתמש

  4. 04:01

    מבנה פקודות SQL ותחביר ההפרדה

  5. 07:20

    גבולות בין נתונים לקוד ותווי מירכאות

  6. 12:10

    כלי SQL Profiler לניטור פקודות בשרת

  7. 18:45

    קוד חיפוש שמעביר את הקלט ללא בדיקה

  8. 19:22

    שימוש בפרמטרים כהגנה בשאילתה

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

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

  1. 00:03

    שלום לכולם, בסרט הזה אנחנו נלמד מה זה SQL Injection ואנחנו בעצם נקבל מידע מהשרת SQL שלא היינו צריכים לקבל אותו, נפרוץ לתוך שרת SQL.

  2. 00:18

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

  3. 00:31

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

  4. 00:39

    יש פה הרבה הסברים, אנחנו נתחיל לראות בעצמנו. בואו ניכנס לשרת sql, הנה יש לי פה שרת sql ואנחנו מריצים סלקט, אנחנו בוחרים מטבלת פרודקטס בעצם עמודות name descriptions ו-keyboards.

  5. 01:04

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

  6. 01:19

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

  7. 01:34

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

  8. 01:51

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

  9. 02:04

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

  10. 02:16

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

  11. 02:29

    יפה מאוד. מי שלא יודע sql בכלל הוא חייב להכיר קצת sql לפחות תראו כמה הרצאות ראשונות בתוך קורס sql.

  12. 02:40

    אני לא יכול להסביר לכם את כל ה sql עכשיו על רגל אחת אז אני מניח שאת הבסיס לפחות את הבסיס אתם כבר מכירים. מי שלא מכיר את הבסיס חייב לראות כמה הרצאות על sql.

  13. 02:52

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

  14. 03:02

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

  15. 03:14

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

  16. 03:26

    אז אמרנו דבר כזה, שפה הבן אדם כותב משהו והאתר האינטרנט הזה הולך דאטאבס לsql, למסד נתונים של sql ומריץ שם שאילתה ומביא לו נתונים חזרה למסך, אוקיי?

  17. 03:44

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

  18. 03:59

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

  19. 04:16

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

  20. 04:34

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

  21. 04:45

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

  22. 04:57

    לדוגמה, אני יכול לעשות פה פקודה שנקראת wait for, wait for זה תמתין, כן? delay, ולהגיד לו כמה זמן אני רוצה שהוא יחכה.

  23. 05:10

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

  24. 05:20

    אתם רואים? קווירי רץ 3, 4, 5, ואז הסתיים. הפקודה הזאתי בנפרד עושה לי דיליי של חמש שניות. הפקודה הזאתי עושה לי סתם מדפיסה ל-1 על המסך.

  25. 05:34

    אתם רואים? 1 על המסך. ואני שמתי ביניהם נקודות פסיק. כך עובד SQL. זה שפה סטנדרטית. Standard Query Language הזה עובד על כל המערכות בעצם.

  26. 05:46

    אז אני עושה פה execute, להריץ את זה והכל מתעכב לי 5 שניות ובסוף יש לי תוצאה, טבלה ראשונה וטבלה שנייה. אוקיי, איך אני הולך לנצל את העובדה הזאת?

  27. 06:03

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

  28. 06:23

    זה בעצם החלק הזה, זה למעשה ה-search שאני כותב כאן. אני יכול פה לכתוב AA, אני יכול לכתוב מה שבא לי.

  29. 06:30

    אוקיי? יפה. אז מה שאני עושה זה דבר כזה, אני אומר ל-SQL חמוד, אתה רואה הגרש מסיים את הפקודה. אני אומר לו, הפקודה שלך פה הסתיימה.

  30. 06:42

    הוא חושב שהפקודה הסתיימה, למרות שבפועל היא מסתיימת אחרי זה. נקודה פסיק ו-wait for 5 שניות. למעשה אני גורם ל-SQL לחשוב שהחלק הזה שאמור להיות חלק של נתונים הפכתי אותו לפקודה אוקיי זאת אומרת זה אמור להיות אזור שבו אתה מקבל משהו מהמשתמש ומחפש את זה זה אמור להיות נתון הנתון אסור לו להיות מורד זה לא קוד שמריצים אותו וגם

  31. 07:13

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

  32. 07:31

    לאזור של קוד. איך אני עושה את זה? אני בעצם שם תיק, גרש. הגרש הזה אומר ל-SQL, נגמרה פה האזור של החיפוש, כמו שזה היה במקור, זוכרים? הרי במקור האזור של החיפוש נגמר בגרש הזה, אוקיי?

  33. 07:50

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

  34. 08:07

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

  35. 08:20

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

  36. 08:39

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

  37. 08:54

    אז אנחנו נוסיף לו פה שני מינוסים שני מינוסים כאלו אומרים לsql שמעכשיו זה סתם הערות של משתמש סתם הוא כתב לעצמו כל מיני דברים בצד.

  38. 09:06

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

  39. 09:20

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

  40. 09:32

    ואני מכניס את זה בתוך ה-search. אני אומר לו, תסגור את השאילתה, תפתח פקודה חדשה שעושה המתנה של 5 שניות, תמתין חמש שניות, אני רוצה לראות ככה, אם יש לי המתנה בפועל של חמש שניות זה אומר שהפקודה רצה, אם הפקודה הזאת עובדת ורצה וממתינה חמש שניות אני ממשיך מה שנקרא לתקוף את האתר,

  41. 09:53

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

  42. 10:03

    יופי, בואו ננסה את זה, search, תראו באמת האתר מתעכב חמש שניות, תסתכלו טוב טוב טוב טוב טוב, האתר מתעכב חמש שניות ואז נתן לי תוצאה, זה אומר שהאתר הזה, אפשר לתקוף אותו בשיטה הזאת, בשיטת SQL Injection.

  43. 10:20

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

  44. 10:39

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

  45. 10:55

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

  46. 11:05

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

  47. 11:24

    אז אני לא רוצה למנוע את הגרש, ומה שכן אני יכול לעשות, יש מה שנקרא Escaped Characters. Escaped Characters זה אומר, כשאתה שם שני גרשיים, אז הוא הופך אותם לגרש אחד.

  48. 11:36

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

  49. 11:51

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

  50. 12:10

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

  51. 12:25

    בואו נראה בעצם את הכלים שיש לי, אוקיי? קודם כל ככה, יש לי כלי מאוד מאוד חזק שנקרא SQL Profiler, ששם אני רואה כל מה שרץ על SQL.

  52. 12:39

    בתוך ה-SQL, אם אתם תיכנסו, יש הרבה כלי עזר. אני חושב שיש את זה רק ב-SQL המלא, גם ב-2008, גם ב-2003, גם ב-2012, יש את הכלים, חוץ מ-Management Studio, שזאת הסביבה שאני עובד איתה.

  53. 12:58

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

  54. 13:24

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

  55. 13:43

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

  56. 13:58

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

  57. 14:11

    זה אומר מי נכנס, מי יצא, לוגין ולוגאוט. רק את ה-Batchים, את הפקודות, את ה-RPC ו-Existing Connections, הכל בסדר. יופי, יופי, יופי. נעשה run.

  58. 14:24

    אנחנו מתחילים לעקוב אחרי כל הפקודות שמגיעות לשרת. לדוגמה, בואו נריץ את הפקודה הזאת. תראו, אתם יכולים לראות שה-Batch התחיל, הפקודה התחילה, והנה הפקודה הסתיימה.

  59. 14:39

    לקח לה 5000 מילי שניות, שזה ואחת. זאת אומרת, 5,000, 5 שניות, מי הריץ אותה, מאיזה שרת וכו'. ופה אנחנו רואים את הפקודה שרצה. אתם רואים? יפה.

  60. 14:53

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

  61. 15:04

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

  62. 15:37

    לא רץ פה שום דבר אז נורא כיף לנו ככה להסתכל על זה ולא לחפש במיליון שורות את השורה שאנחנו צריכים זה למעשה עבודה של אנשי DBA ואנשי אבטחת מידע.

  63. 15:49

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

  64. 16:15

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

  65. 16:29

    ברגע שאני מזהה שהדבר הזה עובד, הנה, דרך אגב, אתם יכולים לראות פה, תסתכלו, אתם רואים? שזה אותו דבר. שרת SQL לא אכפת לו אם זה אתר אינטרנט שהריץ את זה, אם זה הריץ את זה בן אדם מתוך כזה כלי שמייקרוסופט נותנים לנו, שזה Management Studio מאוד נוח.

  66. 16:50

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

  67. 17:17

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

  68. 17:47

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

  69. 18:18

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

  70. 18:45

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

  71. 19:09

    הוא נכנס לכאן, אוקיי? זאת פקודה Select, כל הפקודה הזאת, איפה שהשם like ומה שהמשתמש הכניס, או keyword, לא משנה, זה עוד עמודות, אפשר לחפש לפי עמודות נוספות, אוקיי?

  72. 19:25

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

  73. 19:38

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

  74. 20:00

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

  75. 20:31

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

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

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

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

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

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

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

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