הם מצאו גרסה חדשה של מתקפת הברחת HTTP לבקשות

ل מערכות אינטרנט בהן החזית מקבלת חיבורים באמצעות HTTP / 2 ומעביר אותם לקצה האחורי באמצעות HTTP / 1.1 שעותנחשפו לגרסה חדשה של מתקפת "הברחת בקשות HTTP", היא מאפשרת באמצעות שליחת בקשות לקוח מעוצבות במיוחד, לחלק את תוכן הבקשות של משתמשים אחרים המעובדים באותה זרימה בין חזית לקצה.

ההתקפה יכול לשמש להזרקת קוד JavaScript זדוני בפגישה עם אתר לגיטימי, עקוף מערכות הגבלת גישה ויירטו פרמטרי אימות.

כותב המחקר הוכיח את האפשרות לתקוף מערכות נטפליקס, ורייזון, ביטבוקט, נטליפי CDN ואטלסליאן, וקיבל 56.000 $ בתוכניות תגמול על זיהוי נקודות תורפה. הבעיה אושרה גם במוצרי F5 Networks.

הבעיה משפיע חלקית על mod_proxy בשרת http של Apache (CVE-2021-33193), תיקונים צפויים בגרסה 2.4.49 (מפתחים קיבלו הודעה על הבעיה בתחילת מאי וניתנו להם 3 חודשים לתקן אותה). ב- nginx, היכולת לציין במקביל את הכותרות "אורך תוכן" ו"קידוד העברה "נחסמה בגרסה הקודמת (1.21.1).

עקרון הפעולה של השיטה החדשה של בקשות תואמות בתנועה דומה לפגיעות שגילה אותו חוקר לפני שנתיים, אך הוא מוגבל לממשקים המקבלים בקשות באמצעות HTTP / 1.1.

ההתקפה הקלאסית של "הברחת HTTP בקשות" התבססה על העובדה שחזיתות וחזיתות מפרשות את השימוש בכותרות "אורך תוכן" HTTP באופן שונה (קובע את גודל הנתונים הכולל בבקשה) ו"קידוד העברה: נתחים "( מאפשר לך להעביר נתונים בגושים) ...

לדוגמה, אם הממשק תומך רק ב"אורך תוכן "אך מתעלם מ"קידוד העברה: מקוטע", תוקף יכול לשלוח בקשה המכילה את הכותרות "תוכן אורך" ו"קידוד העברה: מקוטע ", אך את הגודל jw.org he "אורך התוכן" אינו תואם את גודל המחרוזת הגדושה. במקרה זה, הקצה הקדמי יעבד ויפנה את הבקשה בהתאם ל"אורך התוכן ", והקצה האחורי ימתין להשלמת החסימה על סמך" קידוד ההעברה: נתח ".

בניגוד לפרוטוקול הטקסטואלי HTTP / 1.1, המנותח ברמת השורה, HTTP / 2 הוא פרוטוקול בינארי ומתמרן בלוקים נתונים בגודל קבוע מראש. עם זאת, HTTP / 2 השתמש בכותרות פסאודו התואמים לכותרות HTTP רגילות. בעת אינטראקציה עם ה- backend באמצעות פרוטוקול HTTP / 1.1, frontend מתרגם כותרות פסאודו אלה בכותרות HTTP / 1.1 HTTP דומות. הבעיה היא שה- backend מקבל החלטות לגבי ניתוח השידור מבוסס על כותרות HTTP שהוגדרו על ידי חזית, מבלי לדעת את הפרמטרים של הבקשה המקורית.

אפילו בצורה של כותרות פסאודו, הערכים "אורך תוכן" ו"קידוד העברה " ניתן להזרים אותם, למרות שהם אינם בשימוש ב- HTTP / 2, מכיוון שגודל כל הנתונים נקבע בשדה נפרד. עם זאת, בעת המרת בקשת HTTP / 2 ל- HTTP / 1.1, כותרות אלה עוברות ויכולות לבלבל את הצד האחורי.

ישנן שתי אפשרויות התקפה עיקריות: H2.TE ו- H2.CL, שבו ה backend מתעתע על ידי קידוד העברה שגוי או ערך אורך תוכן שאינו תואם את הגודל האמיתי של גוף הבקשה שהתקבל על ידי ה- endend באמצעות פרוטוקול HTTP / 2.

כדוגמה להתקפה H2.CL, גודל שגוי מצוין בכותרת הפסאודו אורך התוכן בעת ​​הגשת בקשה HTTP / 2 לנטפליקס. בקשה זו מובילה להוספת כותרת אורך תוכן HTTP דומה בעת גישה למערך האחורי באמצעות HTTP / 1.1, אך מאז הגודל ב אורך תוכן פחות מהאמיתי, חלק מהנתונים בתור מעובד כתחילת הבקשה הבאה.

כלי ההתקפה כבר נוספו לערכת הכלים של Burp וזמינים כתוסף Turbo Intruder. פרוקסי אינטרנט, איזני עומסים, מאיצי אינטרנט, מערכות למסירת תוכן ותצורות אחרות שבהן הבקשות מופנות מחדש בתכנית חזית-גב תומכות בבעיה.

מקור: https://portswigger.net


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.