---
url: https://docs.ogmabox.com/id/app/utilities/race-smuggling.md
description: >-
  Uji kondisi balapan dan perilaku penyelundupan permintaan HTTP dengan utilitas
  Ogma.
---

# Kondisi Balapan / Penyelundupan HTTP {#race-and-smuggling}

Kondisi Balapan / Penyelundupan HTTP menyediakan dua alat khusus untuk serangan HTTP yang sensitif terhadap waktu dan serangan pada tingkat protokol.

## Kondisi Balapan {#race-conditions}

Tab Kondisi Balapan mengirim beberapa salinan permintaan secara bersamaan ke endpoint yang sama dan memungkinkan Anda membandingkan respons serta waktu antar eksekusi paralel.

### Kapan digunakan {#when-to-use-it}

* **TOCTOU (time-of-check/time-of-use)** - uji apakah pemeriksaan dan operasi perubahan status dapat disela oleh permintaan serentak.
* **Manipulasi akun** - kirim perubahan saldo, penukaran kupon, atau operasi dengan batas tertentu secara serentak untuk menguji pembelanjaan ganda atau penukaran melebihi batas.
* **Bypass pembatasan suara atau laju** - pastikan apakah batas per pengguna ditegakkan secara atomik.

### Menjalankan pengujian kondisi balapan {#running-a-race-test}

1. Buat atau kirim permintaan target ke tab Kondisi Balapan.
2. Tetapkan nilai **Konkurensi** - jumlah salinan paralel yang dikirim.
3. Klik **Kirim N Permintaan** (N adalah jumlah permintaan yang dikonfigurasi) untuk mengirim permintaan secara serentak. Semua salinan dikirim sedekat mungkin dengan waktu yang sama.
4. Tinjau tabel respons: kode status, isi, dan waktu yang berlalu untuk setiap salinan.
5. Perbedaan antarrespons (kode status berbeda, isi respons berbeda, keberhasilan tak terduga pada salinan ke-2 dan seterusnya) mengindikasikan jendela kondisi balapan.

### Kondisi balapan satu paket HTTP/2 {#http-2-single-packet-racing}

Ketika target mendukung HTTP/2, pilih **H2 Paket Tunggal** untuk mengaktifkan mode HTTP/2. HTTP/2 memultipleks semua permintaan paralel melalui satu koneksi, yang menghilangkan jitter jaringan dan membuat kedatangan serentak di server lebih andal.

## Penyelundupan Permintaan HTTP {#http-request-smuggling}

Tab Penyelundupan menguji cara server menangani header `Content-Length` dan `Transfer-Encoding` yang ambigu untuk mendeteksi ketidaksinkronan frontend/backend.

### Latar belakang {#background}

Ketika proksi balik dan server backend tidak sepakat tentang akhir satu permintaan dan awal permintaan berikutnya, awalan yang diselundupkan dari permintaan A dapat ditambahkan di depan permintaan B. Dampaknya berkisar dari peracunan cache hingga bypass autentikasi dan injeksi permintaan sembarang.

### Varian ketidaksinkronan {#desync-variants}

| Varian | Deskripsi |
|---|---|
| CL.TE | Frontend menggunakan Content-Length; backend menggunakan Transfer-Encoding |
| TE.CL | Frontend menggunakan Transfer-Encoding; backend menggunakan Content-Length |
| TE.TE | Keduanya menggunakan Transfer-Encoding, tetapi merespons berbeda terhadap header yang disamarkan |

### Menjalankan probe penyelundupan {#running-a-smuggling-probe}

1. Pilih endpoint target di tab Penyelundupan.
2. Pilih varian ketidaksinkronan yang akan diuji.
3. Klik **Jalankan Uji Penyelundupan**. Alat mengirim permintaan yang disusun khusus dan mengukur respons.
4. Batas waktu terlampaui atau respons tak terduga pada permintaan kedua dalam urutan mengindikasikan kemungkinan ketidaksinkronan.
5. Konfirmasi secara manual sebelum membuat temuan - positif palsu terjadi ketika kondisi jaringan menyebabkan batas waktu terlampaui yang tidak terkait dengan probe.

## Halaman Terkait {#related-pages}

* [Kirim Ulang](../replay.md)
* [Intersepsi](../intercept.md)
* [Temuan](../findings.md)
