לוצ'יאנו ארנגו: בסדר, חבר 'ה. השם שלי הוא לוצ'יאנו ארנגו. אני בכיתה י 'בבית אדמס. ואנחנו הולכים לדבר על הגנה אקטיבית אבטחת אינטרנט. אז אני עובד במשרד של מידע אבטחה בים. ובמשך הקיץ, אני נכלא ב SeguraTec, שהיה מידע חברת האבטחה ששימשה לבנק קולומביה. זה בעיקר שבו למדתי מה שלמדתי עד כה. וכך חלק מהחומר שאנחנו הולך לעבור על היום, יש לנו לא באמת דיבר עליו בכיתה. אבל שזה יקרה בקרוב. זה הולך להיות כמו SQL, JavaScript. ויש לנו לא ממש הלכנו על זה. אז אני יכול למיין את הטיסה דרכו, ו אתה אולי לא יודע כמה דברים. אבל תוך זמן קצר, תוכל ללמוד אותו. ואת כל זה יהיה הגיוני. גם דבר נוסף - להישאר מוסרי. חלק מהדברים שאתה לומד, אתה אפשר להשתמש בדרכים שאינן אתיות. אם זה שלך, בהחלט לנסות. אני בהחלט להניע אותך החבר 'ה לנסות שרתים משלך, נסה הולך בתוכם. תראה אם ​​אתה יכול לחדור אותם, אם אתה יכול לקבל בתוכם. אבל לא כל אחד אחר. שוטרים לא ממש אוהבים את הבדיחות ו השלם, אנחנו שמים את זה כאן. היינו להתעסק. הם באמת כועסים. אז מעל הראש לאתר זה. יש לי את זה נפתח ממש כאן. זהו אתר, וזה יש חבורה של דוגמאות. מה שקורה הוא שהדוגמא הראשונה הולך סוג של להיות הרבה יותר קל מהדוגמא האחרונה בתחושה שהדוגמא הראשונה הוא חסר ביטחון לחלוטין. והאחרון הוא מה סוג של אדם אבטחת אינטרנט נורמלי היה עושה. אבל אתה עדיין יכול סוג של לעקוף את זה. ואנחנו הולכים להתמקד באחד ושתיים, דוגמאות אחד ושתיים. על אישור. בואו נתחיל עם Scripting בין האתרים. JavaScript מנוהל על הדפדפן של הלקוח. זו שפת תכנות שאתה משתמש לרוץ על הדפדפן של הלקוח ולכן אתה לא צריך לעדכן את האתר ולחזור לשרת. אתה צריך אותו פועל. לדוגמא, פייסבוק, אין לך כדי לטעון מחדש את האתר למעמדו חדש עדכונים לבוא. זה שימוש ב-JavaScript כדי ליצור את כל הדברים האלה. אז אנחנו יכולים להזריק JavaScript הזדוני לאתרי האינטרנט. וכך, כאשר אנו שולחים קישור ל מישהו, אנחנו יכולים סוג של לשלוח אותו עם חלק מהקוד שאנחנו רוצים. יש מתמשך ושאינו מתמשך JavaScript - בין אתרים מתמשכים ושאינם מתמשכים scripting, אני מתכוון. וההבדל הוא שמתמשך הוא JavaScript שיהיה נשמר באתר האינטרנט. ושאינו מתמשך יהיה JavaScript שיהיה למעשה רק במקרה פעם אחת. אז בואו נסתכל על דוגמא ממש מהר. על אישור. אז האתר הזה, פשוט, שום דבר לא קורה כאן. ואנחנו הולכים לנסות להכניס קצת ב-JavaScript. אז הדרך בה אנו מתחילים לכתוב JavaScript הוא שאנחנו מתחילים עם התסריט מתחיל. ואנחנו סוגרים אותו בתסריט. אנחנו פשוט הולכים לשים את הודעה - אני אראה לך - התראה. התראה היא פונקציה כי JavaScript משתמש בו כדי להציג משהו. אז בואו ננסה את זה ממש מהר. אני הולך ללכת, הלו התראה. ובכן, שכחתי לשים - על אישור. אז זה פשוט. אנחנו שמים JavaScript באתר אינטרנט, וזה בא. וזה סוג של קורה רק באתר שלנו, נכון? אז זה נראה כאילו זה לא בעיה, נכון? אני מתכוון, איך אתה יכול להשתמש הזדון הזה? לכן הדרך שהאקרים עושים זה באמת פשוט. הם הולכים לתפוס אותו. הם יכולים לשלוח קישור זה כדי לך. אם אני אשלח קישור זה כדי לך עכשיו, ואתה פותח אותו, זה הולך אומר, הלו, ואמר כי האתר שלי הוא אומר לך שלום. ואז אם אני הייתי אומר משהו קצת יותר חכם, אם אני מושך את פונקצית JavaScript אני די של כבר כתב - אבל אם אתה מסתכל על זה, אני אלך על זה לפני שכתבתי אותו. אז אנחנו הולכים להגדיר פסק זמן. אנחנו הולכים לחכות כמה שניות. למעשה, אנחנו הולכים לחכות, אם אני לא טועה, חמש שניות. זה הולך באלפיות שני. ואז מה שאנחנו הולכים לעשות זה אנחנו הולך כדי להתריע שההתחברות הוקצב כדי להיכנס חזרה פנימה ואנחנו הולכים לשנות את המיקום למיקום אחר. אז אם אני שולח את האתר הזה למישהו, הם הולכים להיות גלישה סביב, ללא רוחות. שום דבר לא קורה. ותוך חמש שניות, זה הולך לומר, ההתחברות שלך שהוקצבה. אנא היכנס פנימה ברגע שהם ילחצו על אישור, אני הולך לקחת אותם לאתר אחר. יש להניח, שהאתר הולך להיות דומה לאתר ש הם היו בעבר. והם הולכים להיכנס אישורים לאתר שלי במקום אתר האינטרנט שלהם. ואז אני יכול לשלוח אנשים דוא"ל עם הקישור הזה. אני אומר, אה, הנה קישור. זהו בנק, למשל. אני אומר, כאן, ללכת על קישור זה. וברגע שהם שולחים אותו, הם הולך להיות גלישה מסביב. אני יכול לחכות ל15 שניות, 20 שניות, ואז צץ שאנא היכנסו שוב לחתום על גב. אתם יכולים לנסות את זה עם הרבה יותר דברים. זה מסובך, כי אתה החבר 'ה לא ראה את JavaScript, אז אולי לך לא יודע כמה פונקציות. אבל כל מה שאתה צריך לעשות הוא להתחיל עם תסריט, בסוף עם תסריט. ואתה יכול לשים כל דבר באמצע. התראה היא פונקציה, לחכות. מיקום חלון לוקח אותך למיקום חדש. אבל אתה יכול לעשות כל כך הרבה יותר. וכך הרעיון הוא ש אנחנו לוקחים את זה. אם אני הולך לדוגמא שתי, ואני לשים באותו הקוד הזה, זה לא הולך לעבודה. אז זה מדפיס את הכל בגלל מה מקור אתר זה עושה הוא אם אני אשים כאן משהו, זה יהיה להדפיס אותו ממש כאן. אז זה לא מדפיס שום דבר. דוגמא זו היא למעשה בדיקה כדי לראות אם תסריט הוא שם. אז כן, קדימה. שואל אותי. קהל: אינו שולח לקבל או לשלוח בקשה? לוצ'יאנו ארנגו: כן. הם שליחת בקשת גט. קהל: זה? לוצ'יאנו ארנגו: כן. גם דפדפנים להשתמש פוסט בקשות. אבל אני מנסה להראות בקשות גט כדי שנוכל לראות מה הוא הולך דווקא על. ולכן אם אנחנו מסתכלים על הקוד הזה - אז זה לא עובד יותר. ואם אנחנו נסתכל בקוד הזה, זה הולך להיות בדוגמא של שתיים. מה האדם הזה עושה, האדם אחראית על דפדפן זה - להיפתח, בסדר - מחליף את מילת התסריט. זה PHP, אשר ייתכן שחבר 'ה ראיתי קצת עדיין. הוא פשוט מחליף את מילת תסריט עם שם. אז לעומת זאת, אם אני הולך קדימה ופשוט לשים ב-- אם אני תופס את הקוד שלי שוב, ואני הולך כדי לשנות אותו קצת. במקום תסריט, אני הולך לשנות זה לתסריט עם הון ר 'ו אנחנו הולכים כדי לראות אם הקוד הזה עובד. אז זה לא להדפיס אותו, וזה סימן טוב. ואני מקווה בשתי שניות יותר, זה הולך לצוץ. ההתחברות שלך שהוקצבה. על אישור. זה בסדר. אז בדיקה לתסריט שאולי לא בהכרח יעבוד. האדם - זה גם יכול לבדוק באותיות גדולות תסריט, אותיות קטנות תסריט, מקרה str להשוות, לוודא שהם זהים. אבל ההאקר עדיין יכול לעשות סוג של מה שעשינו בVigenere כשעברנו בחזרה כמה תווים, לנוע קדימה. וזה יכול להבין איך לשים את הסקריפט בחזרה לשם, כך שהוא יכול להזריק תסריט זה. אז מה אתה רוצה להשתמש הוא htmlspecialchars כדי להגן על האתר שלך. ומה המשמעות של זה הוא שהוא עושה בטוח שמה שאתה מכניס - לדוגמא, ציטוטים או זה גדול או קטן מ - הוא הוחלף במשהו שלא יהיה - תן לי להתקרב לכאן - האמפרסנד בפועל. הוא יחליף HTML מיוחד אלה דמויות שאנו רואים כשאנחנו מדבר על - אוי, זה הולך לקחת אותי בחזרה ל-- תווים אלה ממש כאן. אלה מסמנים שמשהו מגיע. עבור HTML, שסוגר מתחיל אומר לנו שמשהו HTML הקשורים מגיע. ואנחנו רוצים להיפטר מזה. אנחנו לא רוצים לשים את ה-HTML לתוך website.k אנחנו לא רוצים שהמשתמש יהיה תוכל לשים משהו באתר האינטרנט שלהם שיכול להשפיע על אתר האינטרנט שלהם, כמו סקריפט או HTML או משהו כזה. מה שחשוב הוא שאתה לטהר את קלט המשתמש. אז המשתמשים יכולים הרבה דברים קלט. הוא יכול להזין כל מיני דברים כדי לנסות להערים על הדפדפן שלך לתוך עדיין הפעלת קוד התסריט הזה. מה אתה רוצה לעשות הוא לא רק להסתכל לתסריט, אבל תראה לכל דבר שיכול להיות זדוני. וhtmlspecialchars יעשה את זה בשבילך, אז אין לך לדאוג בקשר לזה. אבל אל תנסה לעשות בעצמך סוג של עם קוד משלך. האם כולם ברור על XSS? על אישור. בואו נלך להזרקת SQL. אז הזרקת SQL היא כנראה פגיעות מספר אחד באתרי אינטרנט שונים. אני מתכוון, דוגמא טובה - אני רק חוקר רחוק לדבר הזה. ואני מצאתי את המאמר מדהים הזה, שבו ראיתי שהרווארד נפרץ, היה פרוץ. ואני תוהה, ובכן, איך הם יעשו את זה? הרווארד זה מדהים ביותר, רוב לאבטח אוניברסיטה אי פעם. נכון? ובכן, כדי לפרוץ את השרתים, ההאקרים השתמשו טכניקה הנקראת הזרקת SQL. אז זה קורה על בסיס יום יום. אנשים שוכחים לקחת בחשבון להזרקת SQL. הרווארד עושה. אני חושב שזה אומר כאן, פרינסטון, סטנפורד, קורנל. אז איך אנחנו - אז מה הוא SQL זה זריקה שמביאה את כל אלה אנשים למטה? על אישור. אז SQL היא שפת תכנות ש אנו משתמשים כדי לגשת למסדי נתונים. מה שאנחנו עושים הוא שאנחנו בוחרים - אז מה זה קורא עכשיו הוא נבחרת הכל מהשולחן. SQL, זה משנה למסדי נתונים אלה שיש להם שולחנות מלאים של מידע. אז לבחור הכל ממשתמשים שם השם הוא שם משתמש. נכון? די פשוט. הרעיון של הזרקת SQL הוא שאנחנו להכניס קצת קוד זדוני שהיית להערים על השרת לתוך ריצת משהו שונה ממה שזה במקור היה פועל. אז בואו נגיד לשם משתמש, אנחנו מכניסים או 1 שווה 1. אז אנחנו שמים באו 1 שווה 1. הדרך שבה ייקרא עכשיו תהיה נבחרת ממשתמשים, כל דבר, החל משתמשים - זה הכל - כאשר שם הוא שם משתמש, אבל שם משתמש הוא או 1 שווה 1. אז שם הוא כלום או 1 שווה 1. 1 שווה 1 הוא תמיד נכון. אז זה תמיד יחזור מידע מהמשתמשים. על אישור. אנחנו לא צריכים שם משתמש נכון. רק אנחנו יכולים להיות כל דבר שאנחנו רוצים, והוא יחזור מידע שאנחנו צריכים. בואו נסתכל על דוגמא נוספת. אם יש לנו לבחור את כל מה ממשתמש, שבו שם הוא למשתמשי לוח DROP - אז מה אתה חושב שזה יהיה לעשות אם אני מכניס את שם המשתמש ככל שמשתמש לוח DROP? למישהו יש רעיון? כן. קהל: זה הולך לספר לי זה לזרוק את כל השולחנות. לוצ'יאנו ארנגו: זה הולך לספר לנו לזרוק כל דבר באתר, הכל במסד הנתונים. ומה שאנשים עושים זה ל-- כך אני הולך להראות לכם חבר 'ה. אני נכה שומט את השולחנות כי אני לא רוצה אותך חבר 'ה לרדת השולחנות שלי. בואו נסתכל על זה. אז זה פשוט מושך את המידע לאדם מסוים. אז איך אנחנו יודעים אם זה מושפע הזרקת SQL. אנחנו הולכים לבדוק ממש מהר אם אנחנו יכולים לשים משהו - תן לי להעתיק את הקוד הזה. אני הולך לעבור על זה בשנייה. אני הולך לשים את השורש ו1 שווה 1. כאן זה, זה אחוזים סימן 23 - מה שהוא באמת, אם אני נראה כאן ב-- דרך HTML לוקח במספרים, אם תסתכל כאשר אני מכניס בחלל כאן - אם הייתי משהו בחלל כאן, זה משנה את זה לאחוזים 2. האם אתם רואים את זה ממש כאן כאשר אני מכניס בחלל? הדרך בה הוא עובד היא שאתה רק יכול לשלוח ערכי ASCII באמצעות HTML. אז הוא מחליף, למשל, חלל עם אחוזים 20. אני לא יודע אם החבר 'ה ראה את זה לפני. היא מחליפה hashtag עם אחוזים 23. אנחנו צריכים hashtag בסוף או שמירה על כך שאנו יכולים להגיד לי מסד הנתונים לשכוח להגיב החוצה פסיק אחרון זה בסוף. אנחנו רוצים שזה לא לחשוב על זה. אנחנו רק רוצים את זה כדי לרוץ הכל שיש לנו מראש ו להגיב על כך. בואו נסתכל על זה. אז אם אני היה לשים משהו לא בסדר - נניח לדוגמא, אני מניח 2 שווים 1, זה לא נותן לי כלום. כשאני מכניס 1 שווה 1, והיא עושה להחזיר משהו, זה אומר לי ש זה פגיע הזרקת SQL. אני יודע עכשיו שכל מה אני שם אחרי זה - ולמשל, ירידת לוחות או משהו כזה בהחלט לעבוד. אני יודע שזה פגיע להזרקת SQL כי אני יודע ש מתחת למכסת המנוע, זה נותן לי לי לעשות 1 שווה דבר 1. בסדר? אם אנחנו מסתכלים על אלה אחרים אלה, מספר שתיים ומספר שלוש, זה הולך לעשות קצת יותר מבדיקה מתחת מכסה המנוע של מה זה. אז כל מי שתאפשר הירידה שום דבר עדיין לא ניסה? האם אתם מקבלים סוג של SQL עדיין? כי אני יודע שהחבר 'ה שיש לי לא ראיתי את זה עדיין, כך שזה סוג של מבלבל בשבילכם. בואו נסתכל. אז מהי הדרך למניעת SQLi? על אישור. אז זה באמת חשוב כי אתה החבר 'ה בהחלט רוצה למנוע זה באתרים שלך. אם לא, כל החברים שלך הולכים לעשות כיף שלך כשהם שחררו את כל הטבלאות שלך. אז הרעיון הוא שאתה לתקן את SQL בדרך מסוימת, ואילו לך להתאים מה תשומות המשתמש עם מחרוזת מסוימת. אז הדרך שזה עובד היא שאתה להכין את מסד הנתונים. אתה בוחר את השם, צבע וקלוריות מפרי בשם מסד הנתונים. ולאחר מכן שבו קלוריות היא פחות מ, ואנחנו שמים סימן שאלה יש אומר שאנחנו הולכים לקלט משהו בשנייה. וצבע שווה, ואנחנו שמים את שאלה סימן אומר שאנחנו הולכים כמו גם קלט משהו בשנייה. בסדר? ואז לבצע את זה, לשים 150 ואדום ב. ואת זה יבדוק לעשות בטוח ששני אלה - מערך זה יבדוק כי אלה שניים הם מספר שלם ו כי מדובר במחרוזת. ואז אנחנו הולכים, ואנחנו להביא הכל, אנחנו שמים אותו באדום. זה אומר שאנחנו להביא כל. זה אומר שאנחנו למעשה לבצע SQL הצהרה והחזרת אותו באדום. כאן אנו עושים את אותו הדבר, אבל אנחנו לעשות את אותו הדבר לצהוב. ואנחנו נביא את כולם. ובדרך זו, אנו למנוע מהמשתמש מלהיות מסוגל קלט משהו זה לא מה שאנחנו שצוינו, מחרוזת או שלם, למשל. אני מדבר קודם על להסתמך על אחרים. כאשר אתם מתחילים את הפרויקט שלך, אתה בהחלט הולכים להשתמש bootstrap או משהו דומה. יש לכם אי פעם נעשה שימוש וורדפרס? כנראה שיש לכם בשימוש Wordpress סיכוי הטוב ביותר. אז הבעיה בשימוש של אנשים אחרים דברים - אני רק הולך ממש מהר גוגל פגיעות וורדפרס. אם אני מושך את זה עכשיו - אני ממש עשיתי גוגל של שתי שניות. אנו יכולים לראות כי וורדפרס - זו מתוארכת כ'12 ספטמבר. 26 מתעדכנים. תצורת ברירת המחדל של וורדפרס לפני 3.6 אינם מונעים אלה קבצים מסוימים, אשר עשוי להקל על תקיפות Scripting המרובות אתרים. אז סיפור מהיר, פעם אחת שאנחנו עובדים עם - כל כך הייתי, בקיץ, עבודה התמחות. ואנחנו עובדים עם סוג של כמו חברת כרטיסי אשראי גדול. והם מסתמכים על משהו שנקרא - אני לא יודע אם אתם אי פעם שיחקו עם מוצר בשם ג 'ומלה. ג'ומלה היא מוצר המשמש ל שליטה - סוג של דומה ל וורדפרס, המשמש לבניית אתרי אינטרנט. אז היה להם אתר האינטרנט שלהם עובד על ג'ומלה. זהו למעשה כרטיס אשראי החברה בקולומביה. אני אקח אותך לשלהם אתר אינטרנט מהיר אמיתי. אז הם השתמשו בג'ומלה. והם לא מעודכנים ומלה לתוספת האחרונה. ולכן כאשר אנחנו לוקחים מבט על הקוד שלהם, היינו יכול למעשה להיכנס פנימה את הקוד שלהם ולגנוב את כל פרטי כרטיס אשראי שהיו להם, כל מספרי כרטיסי אשראי, השמות, כתובות. וזה בדיוק היה - והקוד שלהם היה בסדר גמור. היה להם קוד גדול. זה היה כל הביטחון. הם בדקו את כל מאגרי המידע. הם דאגו בין אתרים scripting היה בסדר. אבל הם השתמשו במשהו שלא היה מעודכן, שלא היה מאובטח. וכך הוביל אותם ל-- כך שחבר 'ה בהחלט הולכים להשתמש אחרים הקוד, מסגרות של האנשים אחרים של אנשים כדי לבנות את האתר שלך. ודא כי הם בטוחים כי לפעמים זה לא אתה, זה ש עושה טעות. אבל מישהו אחר עושה טעות, ו אז אתה נופל בגלל זה. סיסמאות וPII. אז סיסמאות. על אישור. בואו נסתכל על סיסמאות ממש מהר. על אישור. בבקשה תגיד לי שכולם משתמש מאובטח - אני מקווה שכולם כאן משתמש בסיסמות מאובטחת. אני רק מניח כי כבהנחה. אז אתם בהחלט הולכים תשמור סיסמות לאתרים שלך. אתה הולך לעשות משהו כזה התחברות או משהו כזה. מה שחשוב הוא לא לאחסן סיסמאות בטקסט רגיל. זה מאוד חשוב. אתה לא רוצה לאחסן סיסמא בטקסט רגיל. ואתה בהחלט לא באמת רוצה כדי לאחסן אותו בחשיש בדרך זו. אז מה הוא חשיש דרך אחת שכאשר אתה ליצור מילה, כאשר אתה שם את זה מילה לפונקצית חשיש, זה יהיה ליצור בחזרה איזה סתום הודעה או סט נסתר של מפתחות. אני אראה לך דוגמא. אני הולך חשיש password1 המילה שהם. Hash MD5 אז הוא הולך להחזיר אותי איזה מידע מוזר. הבעיה היא שאנשים שם בחוץ שרוצים להיכנס לאתרים שיש לי הבין כבר סוג של כל אלגוריתמי Hash MD5. מה שהם עשו זה שהם התיישבו עליהם מחשבים, והם מרוסקים כל מילה אפשרית יחידה שם בחוץ עד יש להם סוג של מה זה. אם הייתי צריך לחפש את זה - אני פשוט תפסתי את החשיש הזה. אם אני מקבל את זה מחשיש - אם אני נכנסתי לאתר, ואני מוצא חשיש זה כי אני מקבל מאגרי מידע, ואני מסתכל עליו, מישהו כבר הבין את זה בשבילי. כן. אז אנשים התיישבו, וכל מה שMD5 חשיש שאתה מכניס, הם הולכים אחזור אליך משהו שהוא מילה. אם אני חשיש מילה אחרת, כמו - אני לא יודע - trees2. אני לא רוצה להיות מאוכזב בחיפושים בגוגל שלי. הנה הוא, trees2. כל כך הרבה אתרים עדיין משתמש בחשיש MD5. הם אומרים, אה, זה בטוח. אנחנו לא אחסון בטקסט רגיל. יש לנו חשיש MD5 זה. וכל מה שאני צריך לעשות זה פשוט Google המספר. אני אפילו לא צריך לחשב בעצמי. אני רק יכול לגגל את זה, ומישהו כבר עשה את זה בשבילי. הנה חבורה שלהם. הנה חבורה של סיסמאות. אז בהחלט לא משתמש בחשיש MD5, כי כל מה שיש לך לעשות הוא Google אותו. אז מה אתה רוצה להשתמש במקום זה? על אישור. משהו שנקרא המלחה. אז מה המלחה הוא - האם אתם זוכרים שהיינו מדבר על אקראי ב-- אני לא בטוח מה pset זה היה - היה זה pset יש או ארבעה? אנחנו מדברים על מציאת המחט בערימת השחת. ובpset, הוא אמר שאתה יכול בעצם להבין מה אקראי יוצר בגלל שמישהו כבר רץ מיליון פעמים ורק אקראיים סוג של יצר את מה שהם מייצרים. מה אתה רוצה לעשות הוא לשים בקלט. אז זה מה שההמלחה הוא סוג של. הם כבר הבינו מה המלחה מחזיר לכל עבודה. אז מה עושה המלחה הוא אתה מכניס מלח. אתה שם במילה מסוימת. וזה יהיה חשיש מילה שבהתאם על מה לשים לך בפה. אז אם אני חשיש סיסמא אחת עם זה משפט, זה הולך לחשיש אחר, אם אני חשיש password1 במשפט שונה. זה סוג של נותן לו מקום להתחיל לhashing להתחיל. אז זה הרבה יותר קשה לחישוב, אבל אתה עדיין יכול לחשב את זה, במיוחד אם אתם משתמשים במלח רע. אנשים כבר גם הבינו מלחים נפוצים והבין מה שזה. מלחים אקראיים הם הרבה יותר טובים, אבל הדרך הטובה ביותר היא להשתמש משהו שנקרא קריפטה. ומה קריפטה מאפשר לך אל - כל כך פונקציות אלה כבר בנה עבורכם. אנשים רבים שוכחים את זה, או הם שוכחים להשתמש בו. אבל אם אני מסתכל למעלה PHP קריפטה, קריפטה כבר מחזיר מחרוזת חשיש בשבילי. וזה ממש מלחיו פעמים רבות וhashes את זה פעמים רבות. אז אנחנו לא צריכים לעשות את זה. אז כל מה שאתה צריך לעשות הוא לשלוח אותו לקריפטה. והיא תיצור חשיש גדול בלי שלך לדאוג מלח או משהו. כי אם היה לך מלח זה, יש לך לזכור את מה שאתה מלח משמש כי אם לא, אתה לא יכול לקבל אותך סיסמא בחזרה ללא מלח שבו השתמש. על אישור. וגם לזיהוי אישי מידע. אבטחה כל כך חברתית, כרטיסי אשראי - זה די ברור. אבל לפעמים אנשים שוכחים את דרכו העבודות היא, כמה מידע אתה עושה צריך באמת למצוא אדם אחד כמה? מישהו עשה מחקר על זו דרך חזרה. וזה היה כמו, אם יש לך שמו מלא, אתה לא יכול למצוא מישהו בקלות. אבל מה אם יש לך את שמו מלא ותאריך לידה שלהם? האם זה מספיק כדי לזהות מישהו באופן ספציפי? מה אם יש לך את השם ו כתובת רחוב שהם יחיו? האם זה מספיק כדי למצוא מישהו? וזה כשהם שואלים, מה הוא מידע המאפשר זיהוי אישי, ו מה שאתה צריך לדאוג לא להסגיר? אם אתה נותן לזיהוי אישי מידע שמישהו נותן לך, אתה עלול לקבל תביעה. ואנחנו בהחלט לא רוצים את זה. לכן, כאשר אתה שם את האתר שלך החוצה, ויש לך ממש מגניב עיצוב, אני מקווה שאתה עשית פרויקט גמר מדהים. כל שאתה סוג של רוצה לשים את זה שם בחוץ. אתה רוצה לוודא שכל מה אתה לוקח מהמשתמש, אם זה מידע המאפשר זיהוי אישי, אתה רוצה לוודא שאתה להיות באמת זהיר עם זה. הזרקת פגז. על אישור. הזרקת המעטפת מאפשרת לפורץ לקבל גישה לשורת הפקודה שלך בפועל בשרת שלך. וכך הוא מסוגל להפעיל קוד כי אתה לא יכול לשלוט. בואו ניקח דוגמה לכך מחרוזת יפהפייה ממש כאן. אם אנחנו נכנסים לאתר שוב, אני הולך להיכנס הזרקת קוד. אז מה המשמעות של זה הוא - זה גם מה שהיינו מסתכל על העבר. אנחנו נותנים למשתמש להכניס בכל מה שהוא רוצה, והוא ידפיס מה שאתה רוצה. אז אני הולך לשים את שיחה. מה שזה עושה הוא - זה יתחיל בשרשור. אז זה ייתן לי לנהל את מה פקודת הריצה של האדם לפני והפיקוד שלי. ואני מפעיל פקודת המערכת. והמחרוזות האחרונות אלה - זוכרים מה שדברתי איתך על בחורים, ואילו מה שאתה צריך כדי לקודד זה בשיטת ה-URL. אם אני מפעיל את זה עכשיו - אני אראה לך לכאן - אתה תראה שאני בסופו עד הפעלת הפקודה. זהו למעשה השרת בפועל כי האתר שלי הוא פועל. אז אנחנו לא רוצים את זה, כי אני יכול לרוץ - השרת הזה הוא לא שלי. אז אני לא רוצה להרוס אותו אחותו, השרת של מרקוס. אבל אתה יכול להריץ פקודות נוספות כי הם מסוכנים. ואולי, אתה יכול למחוק קבצים, להסיר את הספריות. אני יכול להסיר את ספרייה מסוימת אם אני רוצה, אבל אני לא רוצה כדי לעשות את זה למרקוס. הוא בחור נחמד. הוא נתן לי לשאול את השרת שלו. אז אני הולך לתת לו הנחה על אחד הטוב. אז מה שאנחנו לא רוצים להשתמש - אנחנו לא רוצה להשתמש בהערכה או במערכת. הערכה או מערכת מאפשרת לנו לבצע שיחות האלו מערכת. אמצעי הערכה להעריך. המערכת מתכוונת למה שרץ. זה להפעיל משהו במערכת. אבל אנחנו יכולים להוציא מחוץ לחוק את הדברים האלה ב PHP, כך שאנו לא משתמשים בם. ולהעלות את הקובץ. אני הולך לעשות מדהים דבר עם העלאת הקובץ. אבל כמו שאמרתי לך החבר 'ה, את התיק שלי דבר העלאה לא עובד. אם הייתי צריך להעלות קובץ עכשיו - אם הייתי להעלות קובץ, וזו תמונה - יש לך דבר להעלות זה תמונה. זה בסדר. שום דבר לא קורה. אבל אם יש לך קובץ העלאה, עבור דוגמא, והמשתמש בפועל שנוספו קובץ PHP או קובץ exe או משהו ככה, אז אתה עלול יש לי בעיה. זה עבד בעבר. למרבה הצער בשבילי, זה לא עובד יותר. אם אני, למשל, להעלות את הקובץ הזה, אני לא מקבל אישור להעלות הקובץ עקב השרת לא להיות שלי. אז הבחור ממש חכם. אז אנחנו לא רוצים - אני הולך להראות לכם חבר 'ה - בסדר, אלה הם כמה כלים ממש מגניבים. אז אלה - תיכנס - אם יש לך חבר 'ה בפיירפוקס - אני מקווה שאתה עושה. יש שתי תוספות בשם SQL להזריק שלי ובין האתרים סקריפט. הם פותחים את הצד קטן כמו ברים בצד. ואם אני היית הולך ל CS60 למשל - אז מה שהיא עושה זה נראה עבור כל הטפסים ש-- אני מקווה, אני לא אקבל בצרות בגלל זה. אבל בסדר. הנה מערכת הסיכה. לכן, כאשר אני מתחיל לחפש חורים ב המערכת, הדבר הראשון שאני עושה זה לפתוח את קטן והיפה הזה כלי בצד. ואני הולך לבחון את הצורות עם התקפות אוטומטית. ואז מה המשמעות של זה הוא שזה יהיה לאט לפתוח את חבורה של דפדפנים. הנה חבורה של דפדפנים. והיא מנסה בכל שילוב של Scripting בין האתרים שיש ואולי הוא, אם אתה רואה בצד. וזה ייתן לי תוצאה סוג של מה היא התשובה. כל לעבור. כמובן, כל מה שהם עוברים. אני מתכוון, הם ממש חכמים אנשים שם למעלה. אבל אם אני היה לרוץ - היה לי פעמים בעבר כאשר אני מפעיל את זה בפרויקט הגמר של התלמידים. אני פשוט להפעיל SQL הזרק אותי עם כל ההתקפות השונות. והיא מנסה להזריק SQL שרת סיכה זו. אז אם אנחנו לגלול למטה, ל למשל, זה אומר - זה טוב אם זה חוזר. אז זה בדק כמה ערכים מסוימים. והחזיר את השרת קוד שהיה שלילי. להסיר באופן זמני. זה טוב. הוא מנסה את כל הבדיקות הללו. אז אתה יכול פשוט להפעיל - הלוואי שהייתי יכול למצוא באתר אמיתי מהיר שיאפשר לי - אולי חנות CS50. וואו, זה הולך לוקח הרבה יותר מדי ארוך. אני אתן לי המבחן הראשון לא סיימתי נכון. אז זה מתלונן. אז אלה הם שלושה דברים. כלים אלה הם ללא תשלום. אתה יכול להוריד אותם ולהפעיל אותם על האתר שלך, ואת זה יגיד לך אם יש לך Scripting בין האתרים, אם יש לך SQL, אם יש לך משהו כמו. אני סוג של לקלקל. מה שחשוב - אוקיי, אז אף פעם לא סומך על המשתמש. לא משנה מה תשומות משתמשך, להפוך את בטוח שאתה לטהר אותה, מנקה אותה, שלך לבדוק את הדברים הנכונים, כי זה נותן לך את מה שאתה רוצה שהוא ייתן לך. תמיד להיות מעודכן במה שמסגרות לך שבעצם אתה משתמש. אם אתה משתמש במשהו כמו bootstrap - אני יודע שאתם הולכים להשתמש bootstrap בגלל שהוא הולך על זה בקרוב בכיתה - וורדפרס או משהו כזה, בדרך כלל זה יכול להיות פרוץ. ואז אתה אפילו לא יודע. אתה פשוט מפעיל את האתר שלך. וזה בטוח לחלוטין. ואתה יורד. אז אני לדוג ממש מוקדם. אבל אני רוצה להודות לPentest Labs. אני הולך להראות לכם חבר 'ה משהו בשם מעבדות Pentest. אם אתם באמת מעוניינים מה ביטחון באמת, יש אתר אינטרנט בשם מעבדות Pentest אם אתם הולכים אליו עכשיו. נו, טוב, זה לא זה. אני רק הולך להפעיל אותו ככה. גוגל אומרת לי את התשובה. על אישור. וזה מלמד להשתמש בך - אז זה אומר, ללמוד חדירת אינטרנט בדיקה בדרך הנכונה. זה מלמד אותך - אני מקווה, שאתה אדם מוסרי. אבל זה מלמד אותך איך אתה יכול להסתכל על איך אתה יכול לקבל בתוך אתרי אינטרנט. ואם אתה לומד איך אתה יכול להיכנס פנימה אתרי אינטרנט, אתה יכול ללמוד כיצד להגן על עצמך מלקבל אתרים בפנים. תן לי להתקרב כי אולי אתם לא מסתכלים על זכות זו. מהזרקת SQL לשלם, ולכן סוג של איך אני יכול לקבל מ-SQL הזרקה להפגיז. ואתה מוריד מכונה וירטואלית זה. והמכונה הווירטואלית כבר מגיעה עם האתר שאתה הולך לנסות את זה הלאה. אתה מוריד קובץ PDF זה. וזה יראה לך שורה אחרת שורה מה אתה צריך לעשות, מה שאתה בודק. זה מה שבעצם תוקף עושה כדי לקבל בתוך אתר. וחלק מהחומר הזה הוא מסובך. הלוואי שהייתי יכול ללכת על יותר דברים איתכם. אבל אני דואג שחבר 'ה יש לי לא ממש - זה מה שעברתי על עם חבר 'ה, בדיקות אינטרנט לבדיקות חדירה. לא ממש יודע מה SQL הוא ומה - הסמינר של קארל ג'קסון הוא מדהים גם כן. אתם לא יודעים סוג של מה זה. אבל אם אתה הולך לאתר הזה, ואתה להוריד הדרכות אלה ואלה קבצי PDF, אתה יכול להעיף מבט על סוג של מה תחום האבטחה באמת בבדיקות חדירה, לראות איך אתה יכול להגיע לאתרים מבפנים ולהגן על את עצמך ממנו. אז אם אני עושה סקירת סופר מהירה, זה תהיה למנוע Scripting בין האתרים. ברצונך להשתמש בכל htmlspecialchars זמן משהו תשומות משתמש. למנוע הזרקת SQL. אם אתה עושה את זה, אתה כבר טוב יותר מהרווארד היה כשהם הלכו לפר. ולוודא שסיסמות שלך לא בטקסט רגיל. הפוך לא רק לעשות חשיש בטוח שאתה בכיוון אחד אותם, אבל שאתה משתמש בקריפטה, PHP פונקציה שהראיתי לכם חבר 'ה. בדרך זו, אתה צריך להיות טוב. כמו כן, אם החברים שלך ייאפשרו לך, לרוץ SQL הזרק אותי באתרי האינטרנט שלהם. Scripting בין האתרים המנוהל באתרי האינטרנט שלהם. ואתם תראו הרבה אתרים אלה יש לי המון נקודות תורפה. זה מדהים כמה אנשים שוכחים כדי לטהר בסיסי הנתונים שלהם או לעשות בטוח מה המזינים של האדם לא קוד תסריט. על אישור. אני די הסתיים ממש מוקדם. אבל אם למישהו יש שאלות על שום דבר, אתה יכול לצלם אותי שאלה. כן. ללכת, ללכת. קהל: אני רק רוצה לשאול, אתה יכול להסביר איך הקובץ להעלות בדיוק עובד. לוצ'יאנו ארנגו: כן. אז תן לי להראות לך את הקובץ להעלות ממש מהר. אז להעלות קובץ - הבעיה שנינות להעלות קובץ כרגע הוא ש-- אני הולך לפתוח את הקוד, כך שחבר 'ה לראות את הקוד מאחורי הקלעים. וזה הוא להעלות. הנה קוד לקובץ הועלה. אנחנו מנסים להיכנס לזה ספרייה לכאן. ואנחנו מנסים, ברגע שהקלט קובץ, קובץ Isset - ולכן כאשר יש להגיש בקבצים, תמונה ש, ולאחר מכן אנחנו מנסים להעביר את זה כאן. אנחנו תופסים את הקובץ לכאן. השיטה היא POST, סוג, תמונה, קובץ. ואנחנו שולחים בקובץ זה. ואז ברגע שאנחנו מקבלים את זה, ולכן ברגע שקובץ יש תמונה, אנחנו מנסים לשלוח אותו לספרייה זו. הבעיה היא שאתר האינטרנט הוא לא נותן לי ללכת לספרייה זו, משום שהיא אינה רוצה אותי לחזור. הוא לא רוצה שאני אלך - אני צריך ללכת - אז הנה להעלות. הנה תמונות. אני צריך ללכת כל הדרך חזרה ל מתחיל והכניס אותו לשם ולאחר מכן ללכת ולשים אותו לתוך הספרייה. אז אם אני רץ חלון מסוף, ואני רוצה להעביר קובץ - [לא ברור] אפשר לראות את זה. אם אני רוצה להעביר את קובץ, יש לי לשים את שם הקובץ ולאחר מכן נתיב מלא אני רוצה לשלוח אותו. ולאחר מכן השרת לא נותנים לי לחזור לשם. ואז זה לא נותן לי לי להגיע לקובץ זה. אבל בדרך כלל - כך שאין קוד ל טעינת קובץ. אז בדרך כלל מה שיקרה הוא ש אדם לא בודק אם הקובץ שלי מסתיים. jpeg, אז הייתי רוצה לבדוק. תן לי לפתוח את הדוגמא אמיתית מדי מהיר. על אישור. זכותו של אדם זה - כך למשל, שני בודק אם preg_match - הנה זה כאן - כדי לוודא שבסופו PHP, וזה טוב. זה טוב. אבל יש גדול אמיתי בעיה עם זה. זה טוב. אבל אם הייתי צריך לשים את קובץ בשם myfavoritepicture.php.jpeg, שיכולתי עדיין פוטנציאל להיפטר jpeg ולהפעיל it.k זה PHP של מסוכן. אתה לא רוצה שהאדם יוכל כדי להפעיל קוד באתר שלך. אבל אז. Jpeg מאפשר לו לעבור. הרעיון הוא מה שאתה באמת רוצה לעשות הוא לא לוקח את קבצים, א אבל, בסדר, מה אתה באמת רוצה לעשות הוא לוודא כי אתה קורא על העולם כולו. ואין שום דבר. PHP בו. אין. Php ב שם קובץ כולו. קהל: אבל אתה יכול לשים. jpeg בסופו של הדבר. השרתים עדיין להריץ את הקוד. לוצ'יאנו ארנגו: לא, זה לא יהיה לרוץ בהתחלה. אתה צריך לחזור ולנסות כדי לראות אם אתה יכול - קהל: אז יש לנו - בסדר, רק קבוצה נוספת שכרוכה - לוצ'יאנו ארנגו: כן. קהל: אישור. לוצ'יאנו ארנגו: כן. על אישור. יש עוד שאלות? על אישור. אני הולך לעזוב את זה ולמיין של לנסות לראות אם אתם יכולים - האחרים הם קצת יותר מסובך משום שהם דורשים הרבה יותר ידע של SQL מאשר רק ידע מתחיל של SQL האינטרנט הוא ו מה-JavaScript. אבל אני הולך לנסות לשמור על הקשר הזה, ואני מקווה שאתם תלמדו על זה ולנסות להציץ מה אתה יכול לעשות וכמה דוגמאות אתה יכול לעבור אותו. מישהו יש לך אחר שאלות בקשר לזה? קדימה. כן, לירות, תירה. כן, קדימה. קדימה. קהל: אישור. אז שמעתי על איך קסם ציטוטים אינם מאובטחים מספיק. לוצ'יאנו ארנגו: מה - ציטוטים קסם? קהל: כן. אז זה מוסיף - לכן בכל פעם שאתה קלט משהו, זה תמיד מוסיף ציטוטים. לוצ'יאנו ארנגו: כן. כן. על אישור. קהל: ואז אני למרות שעבד, אבל אז חיפשתי אותו. והוא אמר שזה לא טוב. אבל אני לא בטוח למה. לוצ'יאנו ארנגו: כן. קהל: אין להשתמש בציטוטי קסם, בגלל שזה לא בטוח. לוצ'יאנו ארנגו: אישור. ציטוטים אז קסם הוא כשאתה מכניס SQL וזה כבר מוסיף את הציטוט בשבילך. קהל: זה תמיד מוסיף ציטוטים סביב כל מה שאתה מכניס פנימה לוצ'יאנו ארנגו: כן. אז הבעיה עם זה היא ש-- אני נסתכל - קהל: איך זה לרכוש משפט SQL? או שאני מניח שזה יכול להיות כמו ציטוט לבחור. לוצ'יאנו ארנגו: כן, אתה צריך ציטוטים טובים לSQL. קהל: לא, אבל השרת עושה את זה בשבילך. לוצ'יאנו ארנגו: ציטוטים קטנים אלה ממש כאן, הציטוטים הקטנים האלה? קהל: כן. לוצ'יאנו ארנגו: כן. הבעיה היא שאתה יכול להגיב מתוך שעבר - אוקיי, אז מה אני יכול לעשות הוא שאני יכול להגיב החוצה - אז בואו נסתכל על - תן לי לפתוח קובץ עריכת טקסט. תנו לי רק לערוך את זה ממש כאן באופן ישיר. על אישור. אתם יכולים לראות את זה בצורה ברורה? מה אני יכול לעשות הוא שאני יכול להגיב את האחרון שבהם. זה להגיב מתוך האחרון. ואז אני אשים אותו כאן, לשים כל הדברים זדוניים כאן. כך שהמשתמש למעשה המזינים, נכון? המשתמש לא מזין הדברים, נכון? זה מה שאני הולך לקלט כ האדם מנסה להיכנס פנימה. אני הולך לשים ב-- זה גרש אחד. זה פשוט משורבט בטעות. ואז מה הקוד הוא עומד לעשות - מצטער, אני הולך לקחת את זה. מה הקוד הוא הולך לעשות הוא זה הולך להוסיף ראשון מרכאות כאן. וזה הולך להוסיף אחרון גרש גם כן. וזה גם הולך להוסיף הסימן אחרון, אחרון ציטוט. אבל אני להעיר ציטוט אלה מסמן החוצה, כך שהם לא לרוץ. ואני מסיימת הציטוט הזה תציין כאן. האם אתה מבין? הלכת לאיבוד? אני יכול להגיב לציטוט האחרון סימן, ולטפל גרש ראשון. קהל: ובדיוק גימור את הראשון. לוצ'יאנו ארנגו: כן. ורק לסיים את הראשון. כן, זה נכון. זה מה שאני יכול לעשות. כן. שאלות אחרות כך? זו שאלה גדולה. לא, כן, אולי. יש לקוות, שאתם יהיו סוג של לעשות יותר הגיוני כשאתה לומד SQL ו דברים כאלה. אבל לוודא שאתה - לשמור על כלים אלה בשעון. מצטער, הכלים האלה לכאן. כלים אלה הם גדולים. אם למישהו יש שאלות, גם אתה יכול שלח לי. זה הדוא"ל הרגיל שלי. וזה בדוא"ל העבודה שלי, אשר כאשר אני עובד בים. בסדר, תודה. תודה, חבר 'ה. אתה טוב ללכת. אתה לא חייב להישאר כאן. לא למחוא כפיים. זה מוזר. בסדר, תודה, חבר 'ה.