mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 13:43:24 +00:00
Translated ['pentesting-web/parameter-pollution.md'] to tr
This commit is contained in:
parent
5a931b2209
commit
fa4ccd1389
2 changed files with 113 additions and 28 deletions
|
@ -604,7 +604,7 @@
|
||||||
* [OAuth to Account takeover](pentesting-web/oauth-to-account-takeover.md)
|
* [OAuth to Account takeover](pentesting-web/oauth-to-account-takeover.md)
|
||||||
* [Open Redirect](pentesting-web/open-redirect.md)
|
* [Open Redirect](pentesting-web/open-redirect.md)
|
||||||
* [ORM Injection](pentesting-web/orm-injection.md)
|
* [ORM Injection](pentesting-web/orm-injection.md)
|
||||||
* [Parameter Pollution](pentesting-web/parameter-pollution.md)
|
* [Parameter Pollution | JSON Injection](pentesting-web/parameter-pollution.md)
|
||||||
* [Phone Number Injections](pentesting-web/phone-number-injections.md)
|
* [Phone Number Injections](pentesting-web/phone-number-injections.md)
|
||||||
* [PostMessage Vulnerabilities](pentesting-web/postmessage-vulnerabilities/README.md)
|
* [PostMessage Vulnerabilities](pentesting-web/postmessage-vulnerabilities/README.md)
|
||||||
* [Blocking main page to steal postmessage](pentesting-web/postmessage-vulnerabilities/blocking-main-page-to-steal-postmessage.md)
|
* [Blocking main page to steal postmessage](pentesting-web/postmessage-vulnerabilities/blocking-main-page-to-steal-postmessage.md)
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
# Parameter Pollution
|
# Parameter Pollution | JSON Injection
|
||||||
|
|
||||||
## Parameter Pollution
|
## Parameter Pollution
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
AWS Hacking öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
AWS Hacking'i öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
GCP Hacking öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
GCP Hacking'i öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>HackTricks'i Destekleyin</summary>
|
<summary>HackTricks'i Destekleyin</summary>
|
||||||
|
|
||||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
@ -35,7 +35,7 @@ Ek bir `from` parametresi ekleyerek:
|
||||||
|
|
||||||
* **Manipüle Edilmiş URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
|
* **Manipüle Edilmiş URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
|
||||||
|
|
||||||
İşlem, `accountA` yerine yanlışlıkla `accountC`'ye tahsil edilebilir ve bu, HPP'nin işlemleri veya şifre sıfırlama, 2FA ayarları veya API anahtarı talepleri gibi diğer işlevleri manipüle etme potansiyelini göstermektedir.
|
İşlem, `accountA` yerine yanlışlıkla `accountC`'ye tahsil edilebilir ve bu durum HPP'nin işlemleri veya şifre sıfırlama, 2FA ayarları veya API anahtarı talepleri gibi diğer işlevleri manipüle etme potansiyelini göstermektedir.
|
||||||
|
|
||||||
#### **Teknolojiye Özgü Parametre Ayrıştırma**
|
#### **Teknolojiye Özgü Parametre Ayrıştırma**
|
||||||
|
|
||||||
|
@ -44,29 +44,29 @@ Ek bir `from` parametresi ekleyerek:
|
||||||
|
|
||||||
### PHP ve HPP İstismarı
|
### PHP ve HPP İstismarı
|
||||||
|
|
||||||
**OTP Manipülasyonu Durumu:**
|
**OTP Manipülasyon Durumu:**
|
||||||
|
|
||||||
* **Bağlam:** Tek Seferlik Şifre (OTP) gerektiren bir giriş mekanizması istismar edildi.
|
* **Bağlam:** Tek Seferlik Şifre (OTP) gerektiren bir giriş mekanizması istismar edildi.
|
||||||
* **Yöntem:** Burp Suite gibi araçlar kullanarak OTP talebini kesen saldırganlar, HTTP isteğindeki `email` parametresini çoğalttı.
|
* **Yöntem:** Burp Suite gibi araçlar kullanarak OTP talebini kesen saldırganlar, HTTP isteğindeki `email` parametresini çoğalttı.
|
||||||
* **Sonuç:** İlk e-posta için tasarlanan OTP, manipüle edilmiş istekte belirtilen ikinci e-posta adresine gönderildi. Bu hata, amaçlanan güvenlik önlemini aşarak yetkisiz erişime izin verdi.
|
* **Sonuç:** İlk e-posta için tasarlanan OTP, manipüle edilmiş istekte belirtilen ikinci e-posta adresine gönderildi. Bu hata, amaçlanan güvenlik önlemini aşarak yetkisiz erişime izin verdi.
|
||||||
|
|
||||||
Bu senaryo, uygulamanın arka ucundaki kritik bir gözden geçirmeyi vurgular; ilk `email` parametresi OTP üretimi için işlenirken, teslimat için sonuncusu kullanılmıştır.
|
Bu senaryo, OTP üretimi için ilk `email` parametresini işleyen ancak teslimat için sonuncusunu kullanan uygulamanın arka ucundaki kritik bir gözden geçirmeyi vurgulamaktadır.
|
||||||
|
|
||||||
**API Anahtarı Manipülasyonu Durumu:**
|
**API Anahtarı Manipülasyon Durumu:**
|
||||||
|
|
||||||
* **Senaryo:** Bir uygulama, kullanıcıların profil ayarları sayfası aracılığıyla API anahtarlarını güncellemelerine izin verir.
|
* **Senaryo:** Bir uygulama, kullanıcıların profil ayarları sayfası aracılığıyla API anahtarlarını güncellemelerine izin veriyor.
|
||||||
* **Saldırı Vektörü:** Bir saldırgan, POST isteğine ek bir `api_key` parametresi ekleyerek API anahtarı güncelleme işlevinin sonucunu manipüle edebileceğini keşfeder.
|
* **Saldırı Vektörü:** Bir saldırgan, POST isteğine ek bir `api_key` parametresi ekleyerek API anahtarı güncelleme işlevinin sonucunu manipüle edebileceğini keşfetti.
|
||||||
* **Teknik:** Burp Suite gibi bir araç kullanarak, saldırgan bir geçerli ve bir kötü niyetli `api_key` parametresi içeren bir istek hazırlar. Sunucu, yalnızca sonuncusunu işleyerek, API anahtarını saldırganın sağladığı değere günceller.
|
* **Teknik:** Burp Suite gibi bir araç kullanarak, saldırgan bir geçerli ve bir kötü niyetli olmak üzere iki `api_key` parametresi içeren bir istek oluşturur. Sunucu, yalnızca sonuncusunu işleyerek, API anahtarını saldırganın sağladığı değere günceller.
|
||||||
* **Sonuç:** Saldırgan, mağdurun API işlevselliği üzerinde kontrol kazanır ve muhtemelen özel verilere yetkisiz erişim veya değişiklik yapabilir.
|
* **Sonuç:** Saldırgan, mağdurun API işlevselliği üzerinde kontrol kazanır ve muhtemelen özel verilere yetkisiz erişim veya değişiklik yapabilir.
|
||||||
|
|
||||||
Bu örnek, özellikle API anahtarı yönetimi gibi kritik özelliklerde güvenli parametre işlemenin gerekliliğini daha da vurgular.
|
Bu örnek, özellikle API anahtarı yönetimi gibi kritik özelliklerde güvenli parametre işlemenin gerekliliğini daha da vurgulamaktadır.
|
||||||
|
|
||||||
### Parametre Ayrıştırma: Flask vs. PHP
|
### Parametre Ayrıştırma: Flask vs. PHP
|
||||||
|
|
||||||
Web teknolojilerinin yinelenen HTTP parametrelerini ele alma şekli, HPP saldırılarına karşı duyarlılıklarını etkiler:
|
Web teknolojilerinin çoğaltılmış HTTP parametrelerini ele alma şekli, HPP saldırılarına karşı duyarlılıklarını etkiler:
|
||||||
|
|
||||||
* **Flask:** Bir sorgu dizesinde `a=1&a=2` gibi karşılaştığı ilk parametre değerini benimser, ilk örneği sonraki yinelenenlerden öncelikli kılar.
|
* **Flask:** Bir sorgu dizesinde `a=1&a=2` gibi karşılaştığı ilk parametre değerini benimser, ilk örneği sonraki çoğaltmalara tercih eder.
|
||||||
* **PHP (Apache HTTP Sunucusunda):** Aksine, son parametre değerini önceliklendirir ve verilen örnekte `a=2` seçilir. Bu davranış, saldırganın manipüle ettiği parametreyi orijinalin üzerinde tutarak HPP istismarlarını istemeden kolaylaştırabilir.
|
* **PHP (Apache HTTP Sunucusunda):** Aksine, son parametre değerini önceliklendirir ve verilen örnekte `a=2` seçilir. Bu davranış, saldırganın manipüle ettiği parametreyi orijinaline tercih ederek HPP istismarlarını istemeden kolaylaştırabilir.
|
||||||
|
|
||||||
## Teknolojiye Göre Parametre Kirliliği
|
## Teknolojiye Göre Parametre Kirliliği
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ Sonuçlar [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b81
|
||||||
<figure><img src="../.gitbook/assets/image (1255).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*l_Pf2JNCYhmfAvfk7UTEbQ.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*l_Pf2JNCYhmfAvfk7UTEbQ.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1255).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*l_Pf2JNCYhmfAvfk7UTEbQ.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*l_Pf2JNCYhmfAvfk7UTEbQ.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. Parametre adında %00'dan sonrasını yok sayın.
|
1. Parametre adında %00'dan sonrasını yok sayın.
|
||||||
2. name\[]'i dizi olarak ele alın.
|
2. name\[]'yi dizi olarak ele alın.
|
||||||
3. \_GET GET Yöntemini ifade etmez.
|
3. \_GET GET Yöntemini ifade etmez.
|
||||||
4. Son parametreyi tercih edin.
|
4. Son parametreyi tercih edin.
|
||||||
|
|
||||||
|
@ -94,66 +94,151 @@ Sonuçlar [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b81
|
||||||
<figure><img src="../.gitbook/assets/image (1258).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*llG22MF1gPTYZYFVCmCiVw.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*llG22MF1gPTYZYFVCmCiVw.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1258).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*llG22MF1gPTYZYFVCmCiVw.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*llG22MF1gPTYZYFVCmCiVw.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. POST RequestMapping == PostMapping & GET RequestMapping == GetMapping.
|
1. POST RequestMapping == PostMapping & GET RequestMapping == GetMapping.
|
||||||
2. POST RequestMapping & PostMapping name\[]'i tanır.
|
2. POST RequestMapping & PostMapping name\[]'yi tanır.
|
||||||
3. name ve name\[] mevcutsa name'i tercih edin.
|
3. name ve name\[] mevcutsa name'i tercih edin.
|
||||||
4. Parametreleri birleştirin, örneğin first,last.
|
4. Parametreleri birleştirir, örneğin first,last.
|
||||||
5. POST RequestMapping & PostMapping, Content-Type ile sorgu parametresini tanır.
|
5. POST RequestMapping & PostMapping, Content-Type ile sorgu parametresini tanır.
|
||||||
|
|
||||||
### **NodeJS** 20.17.0 **VE** Express 4.21.0 <a href="#id-6d72" id="id-6d72"></a>
|
### **NodeJS** 20.17.0 **VE** Express 4.21.0 <a href="#id-6d72" id="id-6d72"></a>
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (1259).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*JzNkLOSW7orcHXswtMHGMA.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*JzNkLOSW7orcHXswtMHGMA.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1259).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*JzNkLOSW7orcHXswtMHGMA.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*JzNkLOSW7orcHXswtMHGMA.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. name\[]'i tanır.
|
1. name\[]'yi tanır.
|
||||||
2. Parametreleri birleştirir, örneğin first,last.
|
2. Parametreleri birleştirir, örneğin first,last.
|
||||||
|
|
||||||
### GO 1.22.7 <a href="#id-63dc" id="id-63dc"></a>
|
### GO 1.22.7 <a href="#id-63dc" id="id-63dc"></a>
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (1260).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*NVvN1N8sL4g_Gi796FzlZA.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*NVvN1N8sL4g_Gi796FzlZA.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1260).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*NVvN1N8sL4g_Gi796FzlZA.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*NVvN1N8sL4g_Gi796FzlZA.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. name\[]'i tanımaz.
|
1. name\[] tanınmaz.
|
||||||
2. İlk parametreyi tercih edin.
|
2. İlk parametreyi tercih edin.
|
||||||
|
|
||||||
### Python 3.12.6 VE Werkzeug 3.0.4 VE Flask 3.0.3 <a href="#b853" id="b853"></a>
|
### Python 3.12.6 VE Werkzeug 3.0.4 VE Flask 3.0.3 <a href="#b853" id="b853"></a>
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (1261).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Se5467PFFjIlmT3O7KNlWQ.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Se5467PFFjIlmT3O7KNlWQ.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1261).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Se5467PFFjIlmT3O7KNlWQ.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Se5467PFFjIlmT3O7KNlWQ.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. name\[]'i tanımaz.
|
1. name\[] tanınmaz.
|
||||||
2. İlk parametreyi tercih edin.
|
2. İlk parametreyi tercih edin.
|
||||||
|
|
||||||
### Python 3.12.6 VE Django 4.2.15 <a href="#id-8079" id="id-8079"></a>
|
### Python 3.12.6 VE Django 4.2.15 <a href="#id-8079" id="id-8079"></a>
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (1262).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*rf38VXut5YhAx0ZhUzgT8Q.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*rf38VXut5YhAx0ZhUzgT8Q.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1262).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*rf38VXut5YhAx0ZhUzgT8Q.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*rf38VXut5YhAx0ZhUzgT8Q.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. name\[]'i tanımaz.
|
1. name\[] tanınmaz.
|
||||||
2. Son parametreyi tercih edin.
|
2. Son parametreyi tercih edin.
|
||||||
|
|
||||||
### Python 3.12.6 VE Tornado 6.4.1 <a href="#id-2ad8" id="id-2ad8"></a>
|
### Python 3.12.6 VE Tornado 6.4.1 <a href="#id-2ad8" id="id-2ad8"></a>
|
||||||
|
|
||||||
<figure><img src="../.gitbook/assets/image (1263).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*obCn7xahDc296JZccXM2qQ.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*obCn7xahDc296JZccXM2qQ.jpeg</a></p></figcaption></figure>
|
<figure><img src="../.gitbook/assets/image (1263).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*obCn7xahDc296JZccXM2qQ.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*obCn7xahDc296JZccXM2qQ.jpeg</a></p></figcaption></figure>
|
||||||
|
|
||||||
1. name\[]'i tanımaz.
|
1. name\[] tanınmaz.
|
||||||
2. Son parametreyi tercih edin.
|
2. Son parametreyi tercih edin.
|
||||||
|
|
||||||
## Referanslar
|
## JSON Injection
|
||||||
|
|
||||||
|
### Çoğaltılmış anahtarlar
|
||||||
|
```ini
|
||||||
|
obj = {"test": "user", "test": "admin"}
|
||||||
|
```
|
||||||
|
Ön uç, ilk oluşumu doğru kabul edebilirken, arka uç anahtarın ikinci oluşumunu kullanabilir.
|
||||||
|
|
||||||
|
### Anahtar Çakışması: Karakter Kısaltma ve Yorumlar
|
||||||
|
|
||||||
|
Belirli karakterler ön uç tarafından doğru bir şekilde yorumlanmayabilir, ancak arka uç bunları yorumlayacak ve bu anahtarları kullanacaktır; bu, **belirli kısıtlamaları aşmak** için faydalı olabilir:
|
||||||
|
```json
|
||||||
|
{"test": 1, "test\[raw \x0d byte]": 2}
|
||||||
|
{"test": 1, "test\ud800": 2}
|
||||||
|
{"test": 1, "test"": 2}
|
||||||
|
{"test": 1, "te\st": 2}
|
||||||
|
```
|
||||||
|
Not edin ki bu durumlarda ön uç `test == 1` olduğunu düşünebilirken, arka uç `test == 2` olduğunu düşünebilir.
|
||||||
|
|
||||||
|
Bu, aşağıdaki gibi değer kısıtlamalarını aşmak için de kullanılabilir:
|
||||||
|
```json
|
||||||
|
{"role": "administrator\[raw \x0d byte]"}
|
||||||
|
{"role":"administrator\ud800"}
|
||||||
|
{"role": "administrator""}
|
||||||
|
{"role": "admini\strator"}
|
||||||
|
```
|
||||||
|
### **Yorum Kısaltmasını Kullanma**
|
||||||
|
|
||||||
|
{% code overflow="wrap" %}
|
||||||
|
```ini
|
||||||
|
obj = {"description": "Duplicate with comments", "test": 2, "extra": /*, "test": 1, "extra2": */}
|
||||||
|
```
|
||||||
|
{% endcode %}
|
||||||
|
|
||||||
|
Burada her bir ayrıştırıcıdan serileştiriciyi kullanarak ilgili çıktısını göreceğiz.
|
||||||
|
|
||||||
|
Serileştirici 1 (örneğin, GoLang'ın GoJay kütüphanesi) şunları üretecektir:
|
||||||
|
|
||||||
|
* `description = "Yorumlarla tekrar"`
|
||||||
|
* `test = 2`
|
||||||
|
* `extra = ""`
|
||||||
|
|
||||||
|
Serileştirici 2 (örneğin, Java'nın JSON-iterator kütüphanesi) şunları üretecektir:
|
||||||
|
|
||||||
|
* `description = "Yorumlarla tekrar"`
|
||||||
|
* `extra = "/*"`
|
||||||
|
* `extra2 = "*/"`
|
||||||
|
* `test = 1`
|
||||||
|
|
||||||
|
Alternatif olarak, yorumların basit kullanımı da etkili olabilir:
|
||||||
|
```ini
|
||||||
|
obj = {"description": "Comment support", "test": 1, "extra": "a"/*, "test": 2, "extra2": "b"*/}
|
||||||
|
```
|
||||||
|
Java’nın GSON kütüphanesi:
|
||||||
|
```json
|
||||||
|
{"description":"Comment support","test":1,"extra":"a"}
|
||||||
|
```
|
||||||
|
Ruby’nin simdjson kütüphanesi:
|
||||||
|
```json
|
||||||
|
{"description":"Comment support","test":2,"extra":"a","extra2":"b"}
|
||||||
|
```
|
||||||
|
### **Tutarsız Öncelik: Deserialization vs. Serialization**
|
||||||
|
```ini
|
||||||
|
obj = {"test": 1, "test": 2}
|
||||||
|
|
||||||
|
obj["test"] // 1
|
||||||
|
obj.toString() // {"test": 2}
|
||||||
|
```
|
||||||
|
### Float ve Tam Sayı
|
||||||
|
|
||||||
|
Sayı
|
||||||
|
```undefined
|
||||||
|
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
|
||||||
|
```
|
||||||
|
birden fazla temsile çözülebilir, bunlar arasında:
|
||||||
|
```undefined
|
||||||
|
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
|
||||||
|
9.999999999999999e95
|
||||||
|
1E+96
|
||||||
|
0
|
||||||
|
9223372036854775807
|
||||||
|
```
|
||||||
|
Which might create inconsistences
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
|
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
|
||||||
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
|
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
|
||||||
* [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89](https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89)
|
* [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89](https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89)
|
||||||
|
* [https://bishopfox.com/blog/json-interoperability-vulnerabilities](https://bishopfox.com/blog/json-interoperability-vulnerabilities)
|
||||||
|
|
||||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
{% embed url="https://websec.nl/" %}
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
AWS Hacking öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
AWS Hacking'i öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
GCP Hacking öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
GCP Hacking'i öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>HackTricks'i Destekleyin</summary>
|
<summary>HackTricks'i Destekleyin</summary>
|
||||||
|
|
||||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue