> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ar/web/cache-poisoning/parameter-cloaking.md).

# تمويه المعامل

### إخفاء المعاملات

هذا المختبر عرضة لـ **تسميم ذاكرة التخزين المؤقت للويب** لأن معاملًا معينًا مستثنى من مفتاح ذاكرة التخزين المؤقت. / بالإضافة إلى ذلك، يوجد **عدم اتساق في تفسير المعاملات** بين نظام التخزين المؤقت والواجهة الخلفية. / يزور أحد المستخدمين الصفحة الرئيسية للموقع بانتظام مع **جوجل كروم**.

الهدف:/ تسميم ذاكرة التخزين المؤقت باستخدام **إخفاء المعاملات** تقنية لتنفيذ `alert(1)` في متصفح الضحية.

**الملاحظة الأولية**

تظهر ملف تعريف الارتباط التالي في الطلب:

```bash
الكوكيز: country=[object Object]
```

في استجابة الخادم، يتم **تحديد الموقع الجغرافي** تحميل برنامج نصي. / يستخدم هذا البرنامج النصي قيمة ملف تعريف الارتباط لتحديد بلد المستخدم على جهة العميل.

<figure><img src="/files/da62dcee76281092fa11dfe2c34708eddc267a77" alt=""><figcaption></figcaption></figure>

**تحديد المعامل المعرض للثغرة**

باستخدام **Param Miner (تخمين معاملات الاستعلام)**، نكتشف سلوكًا يتمثل في **إخفاء المعاملات**.

<figure><img src="/files/f5533919780da876c324002e1516f2f2620ef49c" alt=""><figcaption></figcaption></figure>

المعامل المكتشف هو:

```bash
utm_content
```

<figure><img src="/files/010beb13574a352bc79bd6bd87c6a0b16a860814" alt=""><figcaption></figcaption></figure>

إذا قمت بالوصول إلى الرابط التالي:

```bash
/?utm_content=z9qc51
```

<figure><img src="/files/a309823b8f91f09b37767f9e0c02b5fffc5e154d" alt=""><figcaption></figcaption></figure>

نلاحظ أن:

* يمكن تغيير قيمة المعامل بحرية
* لا يتم \*\*إبطال\*\* ذاكرة التخزين المؤقت
* تبقى الإجابة نفسها للمستخدمين التاليين

هذا يؤكد أن `utm_content` هو **مستثنى من مفتاح ذاكرة التخزين المؤقت**.

**التشغيل عبر برنامج geolocate النصي**

البرنامج النصي الذي يتم تحميله بواسطة الصفحة هو:

```bash
/js/geolocate.js?callback=setCountryCookie
```

إضافة المعامل الذي يتجاهله التخزين المؤقت:

```bash
/js/geolocate.js?callback=setCountryCookie=test?utm_content=z9111
```

يُلاحظ السلوك التالي:

* الـ `test` تنعكس القيمة في الاستجابة
* تبقى ذاكرة التخزين المؤقت دون تغيير

يشير هذا إلى أن الواجهة الخلفية تفسر المعاملات بشكل مختلف عن ذاكرة التخزين المؤقت.

<figure><img src="/files/10b1427a199b9d328ecc9d2046578c36631636f6" alt=""><figcaption></figcaption></figure>

**الحقن عبر إخفاء المعاملات**

يتم استغلال هذا الاختلاف في التحليل عبر حقن **المعامل الثاني callback** مقنّع بواسطة `utm_content`:

```bash
/js/geolocate.js?callback=setCountryCookie&utm_content=z9111;callback=alert(1)
```

النتيجة:

* تعتبر ذاكرة التخزين المؤقت الطلب متماثلًا دائمًا

<figure><img src="/files/154d1099498c09a38e635c01d7e49a1da2b6348d" alt=""><figcaption></figcaption></figure>

تفسر الواجهة الخلفية `callback=alert(1)` كمعامل جديد صالح

يتم تنفيذ جافا سكريبت المُولَّد `alert(1)`

<figure><img src="/files/275e5a8af83b4850bc6aa252bb16d44075bc2ec2" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/ar/web/cache-poisoning/parameter-cloaking.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
