---
url: https://docs.ogmabox.com/th/app/utilities/race-smuggling.md
description: >-
  ทดสอบภาวะแข่งขันและพฤติกรรมการลักลอบแทรกคำขอ HTTP
  ด้วยเครื่องมืออรรถประโยชน์ของ Ogma
---

# ภาวะแข่งขันและการลักลอบส่งคำขอ {#race-and-smuggling}

ภาวะแข่งขัน / ลักลอบส่งคำขอมีเครื่องมือเฉพาะทางสองชนิดสำหรับการโจมตี HTTP ที่อ่อนไหวต่อจังหวะเวลาและการโจมตีระดับโปรโตคอล

## ภาวะแข่งขัน {#race-conditions}

แท็บภาวะแข่งขันส่งสำเนาคำขอหลายชุดไปยังเอนด์พอยต์เดียวกันพร้อมกัน และให้คุณเปรียบเทียบการตอบกลับกับเวลาของการทำงานที่ขนานกัน

### เมื่อใดควรใช้ {#when-to-use-it}

* **TOCTOU (เวลาที่ตรวจสอบ/เวลาที่ใช้งาน)**: ทดสอบว่าคำขอที่ทำงานพร้อมกันสามารถแทรกคั่นระหว่างการตรวจสอบกับการดำเนินการที่เปลี่ยนสถานะได้หรือไม่
* **การจัดการบัญชีโดยมิชอบ**: ส่งการเปลี่ยนยอดคงเหลือ การใช้คูปอง หรือการดำเนินการที่มีขีดจำกัดพร้อมกัน เพื่อทดสอบการใช้จ่ายซ้ำหรือการใช้สิทธิ์เกินจำนวนที่อนุญาต
* **การเลี่ยงข้อจำกัดการลงคะแนนหรืออัตราคำขอ**: ยืนยันว่าข้อจำกัดต่อผู้ใช้ถูกบังคับใช้แบบอะตอมหรือไม่

### การทดสอบภาวะแข่งขัน {#running-a-race-test}

1. สร้างคำขอเป้าหมายในแท็บภาวะแข่งขัน หรือส่งคำขอไปยังแท็บนั้น
2. ตั้งค่า **จำนวนคำขอพร้อมกัน** ซึ่งกำหนดจำนวนสำเนาที่จะส่งขนานกัน
3. คลิก **ส่งคำขอ** สำเนาทั้งหมดจะส่งในเวลาที่ใกล้เคียงกันมากที่สุด
4. ตรวจดูตารางการตอบกลับ ได้แก่ รหัสสถานะ เนื้อหา และเวลาที่ใช้ของแต่ละสำเนา
5. ความแตกต่างระหว่างการตอบกลับ (รหัสสถานะต่างกัน เนื้อหาการตอบกลับต่างกัน หรือสำเร็จอย่างไม่คาดคิดในสำเนา 2+) บ่งชี้ถึงช่วงเวลาที่เกิดภาวะแข่งขันได้

### การแข่งขันด้วยแพ็กเก็ตเดียวใน HTTP/2 {#http-2-single-packet-racing}

เมื่อเป้าหมายรองรับ HTTP/2 ให้เปิด **H2 แบบแพ็กเก็ตเดียว** (โหมด HTTP/2) HTTP/2 ส่งคำขอขนานทั้งหมดแบบมัลติเพล็กซ์ผ่านการเชื่อมต่อเดียว ซึ่งขจัดความผันผวนของระยะหน่วงเครือข่ายและทำให้คำขอไปถึงเซิร์ฟเวอร์พร้อมกันได้สม่ำเสมอขึ้น

## การลักลอบแทรกคำขอ HTTP {#http-request-smuggling}

แท็บการลักลอบแทรกคำขอ HTTP ทดสอบวิธีที่เซิร์ฟเวอร์จัดการส่วนหัว `Content-Length` และ `Transfer-Encoding` ที่กำกวม เพื่อตรวจหาความไม่สอดคล้องกันระหว่างส่วนหน้าและส่วนหลัง

### ที่มา {#background}

เมื่อพร็อกซีย้อนกลับกับเซิร์ฟเวอร์ส่วนหลังตีความต่างกันว่าคำขอหนึ่งสิ้นสุดและคำขอถัดไปเริ่มตรงไหน ส่วนต้นที่ลักลอบแทรกจากคำขอ A อาจถูกเพิ่มไว้ต้นคำขอ B ผลกระทบมีตั้งแต่การทำให้แคชปนเปื้อน ไปจนถึงการเลี่ยงการยืนยันตัวตนและการฉีดคำขอใดก็ได้

### รูปแบบความไม่สอดคล้อง {#desync-variants}

| รูปแบบ | คำอธิบาย |
|---|---|
| CL.TE | ส่วนหน้าใช้ Content-Length ส่วนหลังใช้ Transfer-Encoding |
| TE.CL | ส่วนหน้าใช้ Transfer-Encoding ส่วนหลังใช้ Content-Length |
| TE.TE | ทั้งสองส่วนใช้ Transfer-Encoding แต่ตอบสนองต่างกันต่อส่วนหัวที่ถูกอำพราง |

### การส่งคำขอทดสอบการลักลอบแทรก {#running-a-smuggling-probe}

1. เลือกเอนด์พอยต์เป้าหมายในแท็บการลักลอบแทรกคำขอ HTTP
2. เลือกรูปแบบความไม่สอดคล้องที่ต้องการทดสอบ
3. คลิก **เริ่มทดสอบการลักลอบแทรกคำขอ** เครื่องมือส่งคำขอที่สร้างขึ้นโดยเฉพาะและวัดการตอบกลับ
4. การหมดเวลารอหรือการตอบกลับที่ไม่คาดคิดในคำขอที่สองของลำดับ บ่งชี้ว่าอาจเกิดความไม่สอดคล้อง
5. ยืนยันด้วยตนเองก่อนสร้างประเด็นที่ตรวจพบ ผลบวกลวงอาจเกิดขึ้นเมื่อสภาพเครือข่ายทำให้หมดเวลารอโดยไม่เกี่ยวกับคำขอทดสอบ

## หน้าที่เกี่ยวข้อง {#related-pages}

* [ส่งซ้ำ](../replay.md)
* [ดักรับ](../intercept.md)
* [ประเด็นที่ตรวจพบ](../findings.md)
