שלום אזרחי כדור הארץ

אני רוצה להכיר לכם תוכנה לביצוע הזרקות במערכות הSQL. כלי נחמד ביותר שיצא לי להשתמש בחצי השנה האחרונה. לא, לא מדובר בHavij החדש, אלא בדבר קצת יותר מתקדם. נא לקרוא את ההערות ואת כל האשכול, טנקס
הערות- לא אני, לא מפתח הקוד, ולא הפורום הזה לוקחים שום אחריות על כל מעשה לא חוקי אשר אתם עלולים לבצע בעקבות המדריך הזה. זכרו שפריצה לאתר מהווה עבירה על חוק המחשבים (שנת 1995), ועל חוקי משטרת ישראל בכלל, פעולה שתגרור אתכם לעונשים אפשרים, כגון קנס כספי גבוה, ואפילו מעצר. אנא, תבצעו את החומר הנלמד על המערכות שלכם באתרים שלכם (אפשר לפתוח אתר פריץ בכמה שניות)
- כתובת האתר אשר המדריך הורץ עליה צונזרה. לעומת זאת, לא צנזרתי את שמות מסדי הנתונים, טבלאות, עמודות, והערכים. למה? כי, מבחינה לוגית, בלי הכתובת לא ניתן לאתר את האתר הנ"ל ולנעול את האשכול מכיוון שהוא חוקי.
- המדריך נכתב על ידי יובל, (הידוע כCreyziStyle, Rainbow_Dash, Th3PonyWizard), תחת הרשיון CC-BY-SA-3.0. רשיון אשר מעניק לכל המעוניין את הזכות להעתיק את המדריך הנ"ל לכל מקום אליו חפץ לבכם, אך לא לטעון שזכויות הטקסט שייכות למעתיק בכל דרך שהיא. הקיצר, אסור לכם להוריד את ההערה הזאת. אנא, תמנעו מלהסתבך איתי בנושא הזה.
למנהל ו/או כל גורם סמכותי אחר
בהתבסס על הערה 1 (הכלי חוקי) והערה 2 (הקישור לאתר המובחן צונזר), האשכול הזה חוקי.
במידה וכן האשכול הזה ינעל, אשמח אם הגורם האחראי יפנה אלי בפרטי לפני הנעילה ו/או אחריה, עם צירוף מדויק ומורחב על איזה סעיף בדיוק אני עובר פה. מיותר לציין כי במידה ותרחיש כזה יתקיים, אערער על החלטה זו, ע"ע הערה 1,2.
למה להזריק עם כלי?
משתמשים בכלי באחד (או יותר) מן התרחישים הבאים:
- הזרקת בלינד מבוססת על SUBSTRING, שהיא, כאמור, קובץ בישבן לבצע לאורך זמן ולשלוף.
- הזרקת בלינד מבוססת על BENCHMARK / DELAY, ע"ע ידועה יותר בשם Time Based SQLi, שהיא עוד יותר מחרפנת לביצוע ידני ממושך.
- שליפת עמודות גדולה במיוחד דרך הזרקה. מן הסתם, אי אפשר לבצע DUMP ל10,000 עמודות דרך הדפדפן עם LIMIT.
ועוד כמה.
במקרים האלה, שימוש בהזרקה ידנית (דרך הדפדפן) הינה פעולה מתישה שעלולה לקחת שעות עד ימים, כאן הכלי נכנס.
חשוב:
לפי תפיסת המקצוע שלי (וכנראה גם על פי התפיסה של המשתמשים היותר וותיקים בתחום הזה) על המשתמש לדעת את מטרתו של הכלי אשר הוא משתמש בו, את שיטות ודרכי פעולת הכלי, איך בדיוק הכלי פועל ומה הוא מנסה להציג ולהשיג, ועוד.
בקיצור: הרצה תיאורטית מאחורי הקלעים.
לדעתי, כאשר המשתמש לא יודע את הנתונים הללו, הוא לא אמור להיות בקרבת כלים מסוג כזה. אז בהתבסס על ההנחה הזאת, אני יוצא בהשערה שיש לכם בסיס אפקטיבי בשפת SQL ואתם פחות-או-יותר שולטים במגוון הבסיסי של ההזרקות. זהו
לא מדריך שנועד למתחילים, אלא מדריך שנועד להציג לכם שימוש באותה התוכנה.
אוקי, אז כלי. למה לא Havij?- סקידי. כל כך סקידי.

- Sqlmap הרבה יותר מהיר. שליפת מסדי נתונים שלמים במהירות הבזק (אפשר אפילו להגביר את מספר הסוקאטים - Threads ל10), ושמירת הDUMP במגוון שלם של סיומות באופן נוח.
- Sqlmap רץ על פייטון. שפה מבוססת מפרש אשר לא תלויה במערכת ההפעלה אשר התסריט רץ עליה (כי היא משתמשת בספריות מובנות, וגם מפרשת את עצמה ורצה במקום, נוסח Shell) אי לכך ובניגוד לHavji, לתוכנה לא יקפצו באגים מסתוריים ולא מוסברים אשר יקטעו את תהליך הפעולה וככול הנראה ירגיזו אתכם. מיותר, לא?
- כלי 'חינוכי'. הוא מראה לך את כתובת ההזרקה כל פעם, מסביר בפרטי-פרטים כל פעולה שהוא מבצע, ומיידע אותך על שינוי כלשהו של נתונים, בדיקות כלשהם, וכו'. לא רק זה, אלא שכל פעם המשתמש צריך להקליד את פקודות ההזרקה (שאגב, מאוד 'כיף'), ואפילו לשנות את סוגי ההזרקה ידנית דרך הפקודות במידה ופעולה כזאת תידרש. לפעמים היא תידרש. ז"א הרגשה שהמשתמש עובד למען הצלחתו בתיאום עם הכלי, ולא לתת לתוכנה לעשות את כל העבודה.
- פריקינג FREEWARE. תוכנה חינמית לגמרי המופצת לכולם ללא גרוש מצידכם. בניגוד ל, אהמ, 220$ לגרסת ה'PRO'.
- הרבה פונקציות, יכולות, וסוגי התקפות שלא נמצאים לא בHavij או בתוכנה אחרת. פרטים בסוף הדף.
ועוד 1338 סיבות שאין לי כוח, זמן, או עצבים לפרט
הורדה
http://lmgtfy.com/?q=sqlmap
הרבה אנשים מסתבכים עם ההורדה. אני לא הולך לעזור בנושא הזה, מסיבה פשוטה: נוב פילטר. 3:
נא לזכור שהתוכנה עצמה חוקית, רק תלוי איך אתם משתמשים בה. בדיוק כמו האשכול הזה.
לפני שמתחילים
הפצת הלינוקס שלי: Ubuntu 11.10 & GNOME3
(כי BACKTRACK = פיחס)
ועל הפלטפורמה הזו המדריך הזה נכתב. אני אישית לא מאמין שיש הבדל בפקודות (אם אני לא טועה, בווינדוס זה פותח את הפייטון דרך הCMD ומשמה את הקובץ בסטייל דומה) למרות שבעיות אחרות עלולת לצוץ למשתמשי החלונות. מה לעשות? תעברו ללינוקס, גם ככה יותר טוב. 3:
LETS GO
דבר ראשון, תפתחו את הTERMINAL / פייטון / CMD / מה שזה לא יהיה (
הנה שלי לדוגמא)
אחר כך, תתאימו את מיקום הרצת הפקודות שלכם לתקייה שהתקנתם בה את הSQLMAP. בלינוקס הפקודה לביצוע הפעולה הנ"ל תהיה CD, אני כמעט בטוח שזה אותו דבר לגבי ווינדוס.
דבר שני: על מנת לראות שההתקנה הושלמה, הכלי מציג את הפלט, ואת כל הפקודות האפשריות, הקלידו
(תזכרו את הפקודה הזו, אתם כנראה תשתמשו בה בעתיד על מנת לבדוק את רשימת הפונקיות והכלים שיש לתוכנה להציע, מן הסתם שאני אבצע פה סקירה בסיסית במטרה לשלוף מסד נתונים, אני לא הולך להסביר פה את הכל)
פלט:

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

אכן, אתר ידוע.
עכשיו, לאקשן~
הקלידו את הפקודה הבאה בהתאם לפרטים שלכם:
קוד:
./sqlmap.py -u http://www.CreyziStyle.com/download.php?cat=34 --dbs
פירוק הפקודה:
-u = התחלת כל הזרקה, אחרי זה מדביקים את הכתובת.
CreyziStyle.com = האתר הפריץ שלנו. מן הסתם, הוא דמיוני.
download.php = דף האתר אשר ברשותו פרמטר לא מסונן.
cat=34 = הפרמטר הלא מסונן במטודת GET, כולל הערך שלו.
--dbs = הפקודה לניתוח (FingerPrint) כללי ושליפת שמות מסדי הנתונים.
פלט:
שימו לב:
[WARNING] = 'אזהרה', לרוב זה לא יהיה כל כך חשוב, אבל כדאי לשים לב על זה.
[CRITICAL] = אזהרה קריטית, לרוב שגיאה דרסטית. חשוב ביותר לשים לב אליהן.
[INFO] = מידע לנוכח פעולה כלשהי. מיידע את המשתמש על הנעשה.
בגלל שחיבור האינטרנט שלי חלש ביותר, התוכנה ספציפית התנתקה לי בטעות פעם אחת וחזרה.
אז מה אנחנו רואים?- התוכנה מזהה על ההתחלה את המסד כMYSQL (היא מקטלגת את הזיהוי כ'השערה פרועה', ועל כך ממשיכה לבצע בדיקות מספר)
- מבצעת הזרקות במגוון סוגים שונים.
- מנסה הזרקת UNION, מיידעת שORDER BY אפקטיבי, מגיעה ל9 עמודות
עוד משהו: הדבר האחרון שנכתב? התוכנה תשאל אם אתה מעוניין לבדוק את הפרמטרים האחרים בכתובת במידה וניתן לבצע את ההזרקה בהם. אם יש בכתובת שלכם יותר מפרמטר אחד, זה מומלץ, ספציפית למקרה הזה, מיותר. אז רשמתי N (שזה NO) והמשכתי.
המשך הפלט לאחר שכתבתי N:
אז מה רואים?
- התוכנה הצליחה לזהות 3 סוגי הזרקות שונים לאותו הכתובת, מטודת GET.
- פרטי הWEBSERVER שרץ על האתר: שירות MySQL, Apache
- 2 מסדי הנתונים של האתר
- קובץ לוג של ההזרקה נשמר בתקיית הOUTPUT של תקיית הSQLMAP. עוד טריק שימושי.
ממשיכים
כאשר אנחנו יודעים את שם מסד הנתונים, אנחנו ממשיכים.
קוד:
./sqlmap.py -u http://www.CreyziStyle.com/download.php?cat=34 -D evt_evt --tables
תמונת דוגמא
פירוק הפקודה:
-D = פקודה לנימוק שם מסד הנתונים (אחרי הפקודה)
evt_evt = מסד הנתונים שממנו מתבצעת השליפה.
tables-- = הפקודה הסופית לביצוע הפעולה, וזו הינה, שליפת הטבלאות.
פלט:

אותו תהליך, רק שהפעם הטבלאות מוצגות.
לדעתי כבר הבנתם את הקונספט, אבל אני אמשיך למען השלמת המדריך.
ממשיכים לעמודות:
קוד:
./sqlmap.py -u http://www.CreyziStyle.com/download.php?cat=34 -D evt_evt -T users --columns
תמונת דוגמא
ניתוח:
T- = פקודת נימוק הטבלה.
users = הטבלה שלנו
columns-- = הפקודה הסופית, שהיא עכשיו שליפת העמודות.
פלט:
הסבר:
מתחת לCOLUMN מופיע שמות העמודות
מתחת לTYPE מופיעות סוג העמודה. בהנחה שאתם כן יודעים SQL, אתם אמורים לדעת מה רובם מסמלים. אם אתם לא, אני אישית לא מבין מה אתם עושים באשכול הזה |:
ביצוע השליפה - DUMP
חיחי, ה'גראנד פינאל' של המדריך שלנו D:
קוד:
./sqlmap.py -u http://www.CreyziStyle.com/download.php?cat=34 -D evt_evt -T users -C username,pass --dump
תמונת דוגמא
פירוק:
-C = פקודת נימוק העמודה
username,pass = שני העמודות (מופרדות בפסיק) שאנחנו מעוניינים לשלוף.
--dump = מובן מאליו
התוכנה תקלוט את הפקודה, תבצע את החישובים, ותקפיץ את השאלה הבאה:

1 = לעקוב אחרי בקשת המשתמש לעמודות, ולבצע חישוב התאמה
2 = לשלוף את אותן העמודות במדויק.
אני ממליץ לעקוב אחרי ברירת המחדל ולעשות 1.
פה התהליך לרוב יקח דקה-שלוש. תלוי בגודל מסד הנתונים.
פלט:

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

אני אישית שיניתי את פורמט השמירה לCSV, לנוחות קריאה. אפשר לשמור את הפלט במגוון של פורמטים, כולל TXT.
זהו. כאן המדריכון הקטן לשימוש בSqlmap נגמר.
אבל חשבתם שזה הכל? זה רק קצה הדובדבן.
- התוכנה תומכת ב9 סוגי מסדי נתונים: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB
- תמיכה בכל סוג הזרקה מוכר ואפשרי. (Union Based, Blind Based, Boolian Blind Based, Time-Based Blind, Error based, Double Query Based, xPath Based) ועוד מלא.
- תומך באפשרות חיבור ישיר למסד הנתונים של האתר ע"י משתמש וסיסמת משתמש הSQL.
- מנגנון פריצת האשים מובנה
- אופציה לשלב פרוקסי דרך ההזרקה, כולל דפדפן TOR מובנה.
- אופציה להשתמש בגוגל דורקינג דרך הכלי, ושליפת אתרים דרך התוצאות בגוגל.
- בMYSQL, POSTGERESQL, וMSSQL, ישנה תמיכה בהורדת והעלאת קבצים דרך שירות הSQL.
- הרצת שאילתות ישירות על השרת, כאשר ניתן בגישות המתאימות.
ועוד מלא.
זהו כלי חכם שנועד לאנשים חכמים.
מקווה שלמדם משהו!
(ואגב, אתם מוזמנים להמליץ לי על מה לבצע מאמר בפעם הבאה.)
(וכן, אשמח לתגובה או שניים. חרשתי לא מעט על תהליך הכתיבה של המסמך הזה.)