דילוג לתוכן

תנאי מרוץ והברחת בקשות ​

כלי תנאי מרוץ / הברחת בקשות מספק שני כלים ייעודיים להתקפות HTTP הרגישות לתזמון ולהתקפות ברמת הפרוטוקול.

תנאי מרוץ ​

לשונית תנאי המרוץ שולחת כמה עותקים של בקשה בו-זמנית לאותה נקודת קצה, ומאפשרת להשוות תגובות ותזמון בין ההרצות המקבילות.

מתי להשתמש ​

  • TOCTOU (זמן הבדיקה/זמן השימוש): בדקו אם בקשות מקבילות יכולות להפריד בין בדיקה לבין פעולה שמשנה מצב.
  • מניפולציה בחשבון: שלחו שינויים מקבילים ביתרה, מימושי קופונים או פעולות הכפופות למגבלות כדי לבדוק הוצאה כפולה או מימוש יתר.
  • עקיפת מגבלות הצבעה או קצב: ודאו שהמגבלות לכל משתמש נאכפות באופן אטומי.

הפעלת בדיקת מרוץ ​

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

מרוץ בחבילה יחידה ב-HTTP/2 ​

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

הברחת בקשות HTTP ​

לשונית הברחת הבקשות בודקת איך שרת מטפל בכותרות Content-Length ו-Transfer-Encoding עמומות כדי לזהות חוסר סנכרון בין שרת החזית לשרת העורפי.

רקע ​

כאשר פרוקסי הפוך ושרת עורפי אינם מסכימים היכן בקשה אחת מסתיימת והבאה מתחילה, אפשר לצרף קידומת מוברחת מבקשה A לתחילת בקשה B. ההשפעה נעה מהרעלת מטמון ועד עקיפת אימות והזרקת בקשות שרירותיות.

סוגי חוסר סנכרון ​

סוגתיאור
CL.TEשרת החזית משתמש ב-Content-Length; השרת העורפי משתמש ב-Transfer-Encoding
TE.CLשרת החזית משתמש ב-Transfer-Encoding; השרת העורפי משתמש ב-Content-Length
TE.TEשניהם משתמשים ב-Transfer-Encoding אך מגיבים באופן שונה לכותרת מוסווית

הפעלת בקשת בדיקה להברחה ​

  1. בחרו את נקודת הקצה של היעד בלשונית הברחת הבקשות.
  2. בחרו את סוג חוסר הסנכרון לבדיקה.
  3. לחצו על הרצת בדיקת הברחת בקשות. הכלי שולח את הבקשה שנבנתה במיוחד ומודד את התגובה.
  4. פקיעת זמן קצוב או תגובה בלתי צפויה לבקשה השנייה ברצף מעידות על חוסר סנכרון אפשרי.
  5. אשרו ידנית לפני יצירת ממצא; תוצאות חיוביות שגויות מתקבלות כאשר תנאי הרשת גורמים לפקיעת זמן קצוב שאינה קשורה לבקשת הבדיקה.

תוכנה קניינית. כל הזכויות שמורות.