JavaScript Manipulaion
הערה חשובה!!
ב-javascript manipulation משנים את ה-DOM של דף האינטרנט באמצעות קוד JavaScript שמכניסים משורת הכתובת שבדפדפן.
גילוי דעת: נושא זה שייך לתחום האקינג / חקר מערכות. הנושא והדוגמאות המפורטות מיועדות ללמידה וידע בלבד.
כל פעולה שנוגדת את החוק, הינה באחריות העבריין בלבד!!.
הקודים מודגמים כשהם "פתוחים" וזאת כדי
לצמצם עד כמה שניתן אפשרות של שימוש לרעה בקוד דפדפן מקוצר
ומוסכם בזאת שאינני נושא באחריות לפעולות
של מי שקרא ועשה שימוש במידע זה
___________________________________________________________________________
כתיבת קוד
כדי לכתוב קוד בשורת הכתובת שבדפדפן, יש להקדים את במחרוזת :javascript
דוגמת קוד:
javascript: alert(document.cookie);
במקרה וקוד ה-JS מחזיר ערך כלשהו, הערך יופיע בדף במקום כל התוכן הקיים. לדוגמא:
javascript: document.URL;
לכן נשתמש בפונקצייה void, שמריצה את הפקודה שנתונה בה, והיא (void), לא מחזירה שום ערך. לדוגמא:
javascript: void(document.URL);
פרט נוסף שחשוב לציין, הדפדפן מריץ את הפקודה הראשונה שנכתוב. לכן, אם נרצה להריץ בפעם אחת כמה פקודות, נכניס אותם לפונקציה, ונקרא לפונקציה.
javascript: var n = func(); function func() {alert("first alert"); alert("secund alert");}
כאן השתמשתי בשיטה נוספת למנוע החזרת ערך מהפונקציה (למרות שבמקרה הזה היא לא מחזירה כלום). כשמקצים משתנה ב-JS, הוא לא מחזיר ערך. לכן גם אם הפונקציה תחזיר ערך כלשהו, הוא יבלע במשתנה n, ולא יעבור אחורה לדפדפן.
show pass
יש תוכנות שמראות את הסיסמאות שמוצגות ככוכביות. אבל סיסמאות שמוצגות כעיגולים, אין אפשרות לשלוף באמצעות תוכנה חיצונית.
אם התוכנה שממנה אנחנו מנסים לשלוף את הסיסמה היא הדפדפן, אנחנו יכולים להשתמש בקוד JS שרץ על הדף לוקאלית.
הקוד הבא רץ בלולאה על כל האלמנטים שבדף, ובודק אם הם מסוג password. אם כן, הוא מקפיץ אלרט עם הסיסמה.
זה הקוד כשהוא פתוח { ההדגמה באה לצמצם אפשרות של שימוש לרעה בקוד דפדפן מקוצר}
javascript: var p=r(); function r(){var g=0;var x=false;var x=z(document.forms);g=g+1;var w=window.frames;for(var k=0;k<w.length;k++) {var x = ((x) || (z(w[k].document.forms)));g=g+1;}if (!x) alert('Password not found in ' + g + ' forms');}function z(f){var b=false;for(var i=0;i<f.length;i++) {var e=f[i].elements;for(var j=0;j<e.length;j++) {if (h(e[j])) {b=true}}}return b;}function h(ej){var s='';if (ej.type=='password'){s=ej.value;if (s!=''){prompt('Password found ', s)}else{alert('Password is blank')}return true;}}
שינוי קוקיז (cookies manipulation)
לפעמים נרצה לשנות את הקוקיז בדף אינטרנט. אפשר להשתמש בתוספים, אבל כרגיל, מומלץ לדעת לעבוד ידנית בלי תוכנות שיעשו לנו את זה.
כדי להוסיף / לשנות קוקיז, הפקודה ב-JS היא:
document.cookie = "cookieName=cookieValue";
כתבתי קוד שסורק את הקוקיז, עובר ערך ערך ומקפיץ הודעת prompt שמכילה את שם הקוקיז ותיבת טקסט עם הערך שאותו תוכלו לשנות. לחיצה על אישור תעדכן את הקוקיז. לחיצה על ביטול תרוקן אותו. אם מופיעה בתיבת הטקסט המילה null יש ללחוץ על ביטול כדי להשאיר את הערך הזה בתור ריק ולא בתור מחרוזת null.
הנה הקוד כשהוא "פתוח":
void(main()); function main() { var n, v; var c = document.cookie.split("; "); for (i in c) { n = c[i].substr(0, c[i].indexOf("=")); v = c[i].substr(c[i].indexOf("=") + 1); document.cookie = n + "=" + escape(prompt(n, unescape(v))); } }
כאן טמונה נקודה חשובה. הפקודה prompt דורשת איפשור של המשתמש. הקוד לא נעצר לבקשת אישור, אלא ממשיך לרוץ. כך שהפונקציה prompt תחזיר כל הזמן false וכל הערכים של הקוקיז יתרוקנו. לכן נצטרך קודם כל לאפשר שליחת הודעות prompt באמצעות הקוד הבא:
javascript:void(prompt());
הקוד הזה יקפיץ לנו מלבן בראש הדפדפן ששואל אם לאפשר את הסקריפט, כמובן שלאשר. אחרי האישור נדביק את הקוד. הקוד בשביל שורת הכתובת:
javascript:void(main());function main(){var n,v;var c=document.cookie.split("; ");for(i in c){n=c[i].substr(0,c[i].indexOf("="));v=c[i].substr(c[i].indexOf("=")+1);document.cookie=n+"="+escape(prompt(n,unescape(v)));} }
מחיקת קוקיז
כדי למחוק קוקיז, צריך לתת לו תאריך תפוקה שלילי. לדוגמא:
javascript: void(CookieName=Value; expires=Thu, 01-Jan-1970 00:00:01 GMT");
הנה קוד שמוחק את כל הקוקיז
void(d());function d(){var c=document.cookie.split("; ");for(var i=0;i<c.length;i++)document.cookie=c[i].split("=")[0]+"=;expires=-1";}
הורדות מהירות
בשרתי הורדות כשבוחרים הורדה חינמית, צריך להמתין זמן מה עד להופעת הקישור להורדה. ההמתנה מלווה בשעון עצר שמורה כמה זמן נותר עוד לחכות. השעון מופעל, איך לא, באמצעות קוד JS. קיים משתנה שמכיל את מספר השניות שנותרו, וטיימר (setTimeOut) שרץ בכל שניה מפחית את המשתנה באחד, ומציג אותו.
באמצעות JS manipulation אפשר להוריד את כמות הזמן שנותרה ל-3 שניות, לדוגמא. לספור עד 3, ולהוריד.
בעלי השרתים החלו לפתח שיטות הגנה שונות.
השיטה הבטוחה היא: בדיקה בצד-שרת האם אכן עבר הזמן הדרוש להמתנה. החסרון הוא ברוחב הפס שנלקח מהשרת.
יתר השיטות הינן כמעט תמיד ניתנות לעקיפה.
אם פעולת ההורדה מוגדרת ב-action של הפורום, אפשר לפעיל אותה כך:
javascript:document.FormName.submit(); javascript:document.forms[i].submit();
אם יש אימות, אפשר לאפס אותו כך:
document.FormName.setAttribute("onsubmit", "return true;"); document.forms[i].setAttribute("onsubmit", "return true;");
גם לפקדים ניתן להתייחס לפי מיקום סידורי:
document.FormName.elements[i]
מומלץ ללמוד היטב את ה-DOM.
קרדיט לאתר אחר



ציטוט ההודעה
