התקפות SQL Injection מציבות סיכונים עצומים ליישומי אינטרנט התלויים במאגר נתונים כדי ליצור תוכן דינמי. בסוג זה של התקפה, האקרים לתפעל יישום אינטרנט בניסיון להזריק פקודות SQL שלהם לאלה שהונפקו על ידי מסד הנתונים. לדוגמה, עיין במאמר הזרקת SQL התקפות על מאגרי מידע. במאמר זה, אנו נסתכל בכמה דרכים אתה יכול לבדוק את יישומי האינטרנט שלך כדי לקבוע אם הם פגיעים להתקפות SQL Injection.
הזרקת SQL אוטומטי הזרקת
אפשרות אחת היא באמצעות סורק פגיעות אוטומטית של יישומי אינטרנט, כגון WebInspect של HP, AppleScan של IBM או Cailic's Hailstorm. כלים אלה מציעים דרכים אוטומטיות וקלות לניתוח יישומי האינטרנט שלך עבור פגיעות פוטנציאלית של SQL Injection. עם זאת, הם די יקר, פועל עד $ 25,000 לכל מושב.
ידנית הזרקת SQL בדיקות
מהו מפתח יישומים גרוע לעשות? אתה יכול למעשה לרוץ כמה בדיקות בסיסיות כדי להעריך את יישומי האינטרנט שלך עבור פגיעות של הזרקת SQL באמצעות לא יותר מאשר דפדפן אינטרנט. ראשית, מילה של זהירות: הבדיקות אנו מתארים רק לחפש בסיסי פגמים SQL Injection. הם לא יזהו טכניקות מתקדמות והם קצת מייגע להשתמש. אם אתה יכול להרשות לעצמך את זה, ללכת עם סורק אוטומטי. עם זאת, אם אתה לא יכול להתמודד עם תג המחיר, בדיקה ידנית היא צעד ראשון גדול.הדרך הקלה ביותר להעריך אם יישום פגיע היא להתנסות עם התקפות הזרקת מזיקים כי לא ממש לפגוע באתר שלך אם הם יצליחו אבל יספק לך ראיות שאתה צריך לתקן בעיה. לדוגמה, נניח שיש לך יישום אינטרנט פשוט זה נראה אדם במסד הנתונים ומספק מידע ליצירת קשר כתוצאה מכך. דף זה עשוי להשתמש בפורמט כתובת האתר הבא: http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike
אנו מניחים כי דף זה מבצע בדיקת מסד נתונים, תוך שימוש בשאילתה הדומה לאלו: בחר טלפון
מהמדריך
WHERE lastname = 'chapple' ו- firstname = 'mike'
בואו ניסוי עם זה קצת. עם ההנחה שלנו לעיל, אנחנו יכולים לעשות שינוי פשוט לכתובת URL זה בדיקות עבור התקפות הזרקת SQL: http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+AND+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1
אם יישום האינטרנט לא היה מוגן כראוי מפני הזרקת SQL, זה פשוט plugs זה שם פרטי מזויף לתוך משפט SQL שהיא מבצעת נגד מסד הנתונים, וכתוצאה מכך: בחר טלפון
מהמדריך
WHERE lastname = 'chapple' ו- firstname = 'mike'
ו (בחר לספור (*) מזויף)> 0
או '1' = '1'
תוכל לראות שהתחביר שלמעלה שונה מעט מזה שבכתובת האתר המקורית. לקחנו את החירות של המרת המשתנה המקודד ב- URL עבור מקבצי ASCII שלהם כדי להקל על הדוגמה. לדוגמה,% 3d הוא קידוד כתובת האתר עבור התו '='. הוספנו גם כמה הפסקות שורה למטרות דומות. הבדיקה מגיעה כאשר אתה מנסה לטעון את דף האינטרנט עם כתובת האתר המפורטת לעיל. אם יישום האינטרנט הוא התנהג טוב, זה יהיה להתפשט את הציטוטים יחיד מהקלט לפני העברת השאילתה למסד הנתונים. זה פשוט לגרום בדיקה מוזרה עבור מישהו עם שם פרטי הכולל חבורה של SQL. תראה הודעת שגיאה מהיישום הדומה לזו שבהמשך: שגיאה: לא נמצא משתמש עם שם mike + ו- + (בחר + ספירה (*) + מ + מזויף) +% 3e0 + OR + 1% 3d1
צ'אפל!
מצד שני, אם היישום הוא פגיע הזרקת SQL, זה יעבור את ההצהרה ישירות למסד הנתונים, וכתוצאה מכך אחת משתי אפשרויות. ראשית, אם לשרת שלך יש הודעות שגיאה מפורטות מופעלות (ואינך צריך), תראה משהו כזה: Microsoft OLE DB ספק עבור מנהלי התקן של ODBC שגיאה '80040e37'
Microsoft ODBC SQL Server Driver SQL Server שם עצם לא חוקי 'מזויף'.
/directory.asp, שורה 13
מצד שני, אם שרת האינטרנט שלך אינו מציג הודעות שגיאה מפורטות, תקבל שגיאה כללית יותר, כגון: שגיאת שרת פנימיתהשרת נתקל בשגיאה פנימית או בתצורה שגויה, ולא הצליח להשלים את הבקשה.
פנה למנהל השרת כדי להודיע על הזמן שבו אירעה השגיאה ועל כל דבר שעלול היה לגרום לשגיאה.
מידע נוסף אודות שגיאה זו עשוי להיות זמין ביומן שגיאות השרת.
אם אתה מקבל אחת משתי השגיאות לעיל, היישום שלך חשוף להתקפות הזרקת SQL. כמה צעדים שתוכל לנקוט כדי להגן על היישומים שלך מפני התקפות SQL Injection כוללות: הערכת התוצאות