ภาวะแข่งขันและการลักลอบส่งคำขอ
ภาวะแข่งขัน / ลักลอบส่งคำขอมีเครื่องมือเฉพาะทางสองชนิดสำหรับการโจมตี HTTP ที่อ่อนไหวต่อจังหวะเวลาและการโจมตีระดับโปรโตคอล
ภาวะแข่งขัน
แท็บภาวะแข่งขันส่งสำเนาคำขอหลายชุดไปยังเอนด์พอยต์เดียวกันพร้อมกัน และให้คุณเปรียบเทียบการตอบกลับกับเวลาของการทำงานที่ขนานกัน
เมื่อใดควรใช้
- TOCTOU (เวลาที่ตรวจสอบ/เวลาที่ใช้งาน): ทดสอบว่าคำขอที่ทำงานพร้อมกันสามารถแทรกคั่นระหว่างการตรวจสอบกับการดำเนินการที่เปลี่ยนสถานะได้หรือไม่
- การจัดการบัญชีโดยมิชอบ: ส่งการเปลี่ยนยอดคงเหลือ การใช้คูปอง หรือการดำเนินการที่มีขีดจำกัดพร้อมกัน เพื่อทดสอบการใช้จ่ายซ้ำหรือการใช้สิทธิ์เกินจำนวนที่อนุญาต
- การเลี่ยงข้อจำกัดการลงคะแนนหรืออัตราคำขอ: ยืนยันว่าข้อจำกัดต่อผู้ใช้ถูกบังคับใช้แบบอะตอมหรือไม่
การทดสอบภาวะแข่งขัน
- สร้างคำขอเป้าหมายในแท็บภาวะแข่งขัน หรือส่งคำขอไปยังแท็บนั้น
- ตั้งค่า จำนวนคำขอพร้อมกัน ซึ่งกำหนดจำนวนสำเนาที่จะส่งขนานกัน
- คลิก ส่งคำขอ สำเนาทั้งหมดจะส่งในเวลาที่ใกล้เคียงกันมากที่สุด
- ตรวจดูตารางการตอบกลับ ได้แก่ รหัสสถานะ เนื้อหา และเวลาที่ใช้ของแต่ละสำเนา
- ความแตกต่างระหว่างการตอบกลับ (รหัสสถานะต่างกัน เนื้อหาการตอบกลับต่างกัน หรือสำเร็จอย่างไม่คาดคิดในสำเนา 2+) บ่งชี้ถึงช่วงเวลาที่เกิดภาวะแข่งขันได้
การแข่งขันด้วยแพ็กเก็ตเดียวใน HTTP/2
เมื่อเป้าหมายรองรับ HTTP/2 ให้เปิด H2 แบบแพ็กเก็ตเดียว (โหมด HTTP/2) HTTP/2 ส่งคำขอขนานทั้งหมดแบบมัลติเพล็กซ์ผ่านการเชื่อมต่อเดียว ซึ่งขจัดความผันผวนของระยะหน่วงเครือข่ายและทำให้คำขอไปถึงเซิร์ฟเวอร์พร้อมกันได้สม่ำเสมอขึ้น
การลักลอบแทรกคำขอ HTTP
แท็บการลักลอบแทรกคำขอ HTTP ทดสอบวิธีที่เซิร์ฟเวอร์จัดการส่วนหัว Content-Length และ Transfer-Encoding ที่กำกวม เพื่อตรวจหาความไม่สอดคล้องกันระหว่างส่วนหน้าและส่วนหลัง
ที่มา
เมื่อพร็อกซีย้อนกลับกับเซิร์ฟเวอร์ส่วนหลังตีความต่างกันว่าคำขอหนึ่งสิ้นสุดและคำขอถัดไปเริ่มตรงไหน ส่วนต้นที่ลักลอบแทรกจากคำขอ A อาจถูกเพิ่มไว้ต้นคำขอ B ผลกระทบมีตั้งแต่การทำให้แคชปนเปื้อน ไปจนถึงการเลี่ยงการยืนยันตัวตนและการฉีดคำขอใดก็ได้
รูปแบบความไม่สอดคล้อง
| รูปแบบ | คำอธิบาย |
|---|---|
| CL.TE | ส่วนหน้าใช้ Content-Length ส่วนหลังใช้ Transfer-Encoding |
| TE.CL | ส่วนหน้าใช้ Transfer-Encoding ส่วนหลังใช้ Content-Length |
| TE.TE | ทั้งสองส่วนใช้ Transfer-Encoding แต่ตอบสนองต่างกันต่อส่วนหัวที่ถูกอำพราง |
การส่งคำขอทดสอบการลักลอบแทรก
- เลือกเอนด์พอยต์เป้าหมายในแท็บการลักลอบแทรกคำขอ HTTP
- เลือกรูปแบบความไม่สอดคล้องที่ต้องการทดสอบ
- คลิก เริ่มทดสอบการลักลอบแทรกคำขอ เครื่องมือส่งคำขอที่สร้างขึ้นโดยเฉพาะและวัดการตอบกลับ
- การหมดเวลารอหรือการตอบกลับที่ไม่คาดคิดในคำขอที่สองของลำดับ บ่งชี้ว่าอาจเกิดความไม่สอดคล้อง
- ยืนยันด้วยตนเองก่อนสร้างประเด็นที่ตรวจพบ ผลบวกลวงอาจเกิดขึ้นเมื่อสภาพเครือข่ายทำให้หมดเวลารอโดยไม่เกี่ยวกับคำขอทดสอบ