Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
forbidden — تجاوز رموز حالة استجابة HTTP 4xx والمزيد. الأداة مبنية على Python Requests و PycURL و HTTP Client. | Kitploit
أدوات/GitHubGitHub/ivan-sincek/forbidden
ماسحات الثغرات الأمنيةالتهرب من IDS/IPSاستغلال تطبيقات الويبجمع المعلوماتتجاوز WAFأمن الويبالاختبار العشوائياختبار الاختراق
GitHubivan-sincek/forbidden

forbidden

تجاوز رموز حالة استجابة HTTP 4xx والمزيد. الأداة مبنية على Python Requests و PycURL و HTTP Client.

عرض المستودع
2574896منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
# محظور (Forbidden)

تجاوز رموز حالة استجابة HTTP 4xx والمزيد.

الأداة مبنية على `Python Requests` و `PycURL` و `HTTP Client`.

تم اختبارها على Kali Linux v2024.2 (64-bit).

صُنعت لأغراض تعليمية. آمل أن تكون مفيدة!

**الخطط المستقبلية:**

* إضافة خيار `silent` لكتم إخراج وحدة التحكم.
* إضافة خيار `no color` لتعطيل الإخراج الملون في وحدة التحكم.
* إضافة اختبارات لرؤوس طلبات HTTP الخاصة بـ `hop-by-hop`.
* إضافة اختبارات لرأس طلب HTTP `User-Agent`.
* إضافة اختبارات لملفات تعريف الارتباط HTTP.
* إضافة اختبارات لتهريب HTTP.
* إضافة اختبارات لـ CRLF.
* إضافة اختبارات لـ Log4j.
* إضافة اختبارات لـ AWS metadata SSRF.

## جدول المحتويات

* [كيفية التثبيت](#how-to-install)
    * [تثبيت PycURL](#install-pycurl)
    * [التثبيت القياسي](#standard-install)
    * [البناء والتثبيت من المصدر](#build-and-install-from-the-source)
* [كيفية الاستخدام](#how-to-use)
* [الاختبارات](#tests)
    * [طرق HTTP](#http-methods)
    * [رؤوس طلبات HTTP](#http-request-headers)
* [النتائج](#results)
* [الاستخدام](#usage)
* [الصور](#images)

## كيفية التثبيت

### تثبيت PycURL

على Kali Linux، يجب أن يعمل هذا بدون مشاكل؛ وإلا، قم بتشغيل:

```bash
apt-get -y install libcurl4-gnutls-dev librtmp-dev

pip3 install --upgrade pycurl
```

---

PycURL على نظام Windows غير مدعوم.

---

على macOS، قم بتشغيل:

```bash
brew uninstall curl
brew uninstall openssl

brew install curl
brew install openssl

echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

export LDFLAGS="-L/opt/homebrew/opt/curl/lib"
export CPPFLAGS="-I/opt/homebrew/opt/curl/include"
export PYCURL_SSL_LIBRARY=openssl

pip3 install --no-cache-dir --compile --ignore-installed --config-setting="--with-openssl=" --config-setting="--openssl-dir=/opt/homebrew/opt/openssl@3" pycurl
```

بدلاً من ذلك، قم بالتثبيت باستخدام [Homebrew](https://formulae.brew.sh/formula/forbidden) (غير صيانة من قِبلي):

```fundamental
brew install forbidden
```

### التثبيت القياسي

```bash
pip3 install --upgrade forbidden
```

### البناء والتثبيت من المصدر

```bash
git clone https://github.com/ivan-sincek/forbidden && cd forbidden

python3 -m pip install --upgrade build

python3 -m build

python3 -m pip install dist/forbidden-13.4-py3-none-any.whl
```

## كيفية الاستخدام

تجاوز رمز حالة استجابة HTTP `403 Forbidden`:

```fundamental
forbidden -u https://example.com/admin -t protocols,methods,uploads,overrides,headers,paths-ram,encodings -f GET -l initial,path -o forbidden_403_results.json
```

تجاوز رمز حالة استجابة HTTP `403 Forbidden` مع اختبار الإجهاد:

```fundamental
mkdir stresser_403_results

stresser -u https://example.com/admin -r 1000 -th 200 -f GET -l initial -dir stresser_403_results -o stresser_403_results.json
```

تجاوز رمز حالة استجابة HTTP `401 Unauthorized`:

```fundamental
forbidden -u https://example.com/admin -t auths -f GET -l initial -o forbidden_401_results.json
```

اختبار إعادة التوجيه المفتوح ومحللات URL المعطلة، أي اختبار التفاعلات خارج النطاق (OOB):

```fundamental
forbidden -u https://example.com/admin -t redirects,parsers -f GET -l initial -e xyz.interact.sh -o forbidden_oob_results.json
```

## الاختبارات

**`protocols`**

* اختبار بروتوكولات HTTP و HTTPS باستخدام عنوان IP واسم النطاق.
* اختبار تخفيض إصدار بروتوكول HTTP/1.0 بدون رأس طلب HTTP `Host`، باستخدام عنوان IP واسم النطاق.

**`methods`**

* اختبار طرق HTTP المسموح بها، وكذلك باستخدام رأس طلب HTTP `Content-Length: 0`.
* اختبار التتبع عبر المواقع (XST) باستخدام طريقتي HTTP TRACE و TRACK.

**`uploads`**

* اختبار تحميل ملف نصي بشكل متكرر لكل دليل في مسار URL باستخدام طريقة HTTP PUT.

**`overrides`**

* اختبار تجاوز طريقة HTTP باستخدام معلمات سلسلة استعلام URL، ورؤوس طلبات HTTP، وأجسام طلبات HTTP.
* اختبار تجاوز مخطط URL باستخدام رؤوس طلبات HTTP، من HTTPS إلى HTTP ومن HTTP إلى HTTPS.
* اختبار تجاوز المنفذ باستخدام رؤوس طلبات HTTP.
* اختبار تجاوز مضيف HTTP باستخدام رؤوس طلبات HTTP، وكذلك باستخدام رأسي طلب HTTP `Host`.
* اختبار تجاوز مسار URL باستخدام رؤوس طلبات HTTP مع مسارات URL نسبية، باستخدام عناوين URL التالية: URL قابل للوصول، URL الجذر، و URL كامل.

**`headers`**

* اختبار رؤوس طلبات HTTP مع عناوين IP، وعناوين IP مفصولة بفواصل، وأسماء نطاقات، وعناوين URL جذرية، وعناوين URL كاملة، والمزيد.

**`values`**

* اختبار رؤوس طلبات HTTP مع عناوين IP، وأسماء نطاقات، وعناوين URL جذرية، وعناوين URL كاملة مقدمة من المستخدم.

**`paths`**

* اختبار تجاوز مسار URL.

**`encodings`**

* اختبار تحويلات وترميزات مضيف ومسار URL.

**`auths`**

* اختبار المصادقة/التفويض الأساسي باستخدام رؤوس طلبات HTTP بقيم فارغة وبيانات اعتماد مشفرة مسبقاً بـ Base64.
* اختبار مصادقة/تفويض الحامل (Bearer) باستخدام رؤوس طلبات HTTP بقيم فارغة، و JWTs غير صالحة، و JWTs محددة مسبقاً.

**`redirects`**

* اختبار إعادة التوجيه المفتوح باستخدام رؤوس طلبات HTTP مع عناوين IP لإعادة التوجيه، وأسماء نطاقات، وعناوين URL جذرية، وعناوين URL كاملة.

**`parsers`**

* اختبار محللات URL المعطلة باستخدام رؤوس طلبات HTTP مع عناوين IP معطلة، وأسماء نطاقات، وعناوين URL جذرية، وعناوين URL كاملة.

---

إذا كنت مهتماً بمزيد من التفاصيل، انظر:

* [/src/forbidden/utils/forbidden.py](https://github.com/ivan-sincek/forbidden/blob/main/src/forbidden/utils/forbidden.py#L601)
* [/src/forbidden/utils/test.py](https://github.com/ivan-sincek/forbidden/blob/main/src/forbidden/utils/test.py)
* [/src/forbidden/utils/value.py](https://github.com/ivan-sincek/forbidden/blob/main/src/forbidden/utils/value.py)

---

**ملاحظات:**

* جميع الاختبارات مبنية على تقارير عامة في مجال أمن المعلومات واختبار الاختراق ومكافآت bugs.
* بعض الاختبارات قد تتداخل؛ ومع ذلك، يتم تطبيق `مرشح فريد` قبل إرسال أي شيء.
* تم التحقق من جميع رؤوس طلبات HTTP، ومعلمات سلسلة استعلام URL، وغيرها بناءً على الوثائق الرسمية.
* بشكل افتراضي، يستخدم كل من `Forbidden` و `Stresser` محرك `Python Requests`.
* اختبار تخفيض إصدار بروتوكول HTTP/1.0 بدون رأس طلب HTTP `Host` مقيد بمحرك `HTTP Client`. بالإضافة إلى ذلك، لن يعمل أمر cURL المقدم بشكل صحيح لأن cURL لا يسمح بإزالة رأس طلب HTTP `Host`.
* اختبار تجاوز مضيف HTTP باستخدام رأسي طلب HTTP `Host` مقيد بمحرك `Python Requests`. بالإضافة إلى ذلك، لن يعمل أمر cURL المقدم بشكل صحيح لأن cURL لا يسمح باستخدام رأسي طلب HTTP `Host`.
* اختبار تحويلات وترميزات مضيف ومسار URL مقيد بمحرك `PycURL`.
* قد تقوم بعض الوكلاء (proxies) على الويب بـ `تطبيع` URLs (مثلاً عند اختبار `encodings`)، أو تعديل طلبات HTTP، أو إسقاط طلبات HTTP بالكامل.
* قد تتطلب بعض المواقع رأس طلب HTTP `User-Agent` صالحاً أو محدداً جداً.
* لم يعد التتبع عبر المواقع (XST) يعتبر ثغرة أمنية.
* احذر من `الحد من المعدل` وإجراءات مكافحة البوت المماثلة الأخرى؛ خذ بعض الوقت قبل تشغيل الأداة مرة أخرى على نفس النطاق.

### طرق HTTP

_هذه مجرد نظرة سريعة على ما يتم استخدامه، وليس كيف يتم استخدامه._

```fundamental
ACL
ARBITRARY
BASELINE-CONTROL
BIND
CHECKIN
CHECKOUT
CONNECT
COPY
DELETE
GET
HEAD
INDEX
LABEL
LINK
LOCK
MERGE
MKACTIVITY
MKCALENDAR
MKCOL
MKREDIRECTREF
MKWORKSPACE
MOVE
OPTIONS
ORDERPATCH
PATCH
POST
PRI
PROPFIND
PROPPATCH
PUT
REBIND
REPORT
SEARCH
SHOWMETHOD
SPACEJUMP
TEXTSEARCH
TRACE
TRACK
UNBIND
UNCHECKOUT
UNLINK
UNLOCK
UPDATE
UPDATEREDIRECTREF
VERSION-CONTROL
```

### رؤوس طلبات HTTP

_هذه مجرد نظرة سريعة على ما يتم استخدامه، وليس كيف يتم استخدامه._

```fundamental
19-Profile
Accept
Base-URL
CF-Connecting-IP
Client-IP
Cluster-Client-IP
Destination
Forwarded-For
Forwarded-For-IP
From
Front-End-HTTPS
Host
Incap-Client-IP
Origin
Profile
Proxy
Proxy-Client-IP
Redirect
Referer
Remote-Addr
Request-URI
True-Client-IP
URI
URL
WAP-Profile
WL-Proxy-Client-IP
X-Client-IP
X-Cluster-Client-IP
X-Forward
X-Forward-For
X-Forwarded
X-Forwarded-By
X-Forwarded-For
X-Forwarded-For-IP
X-Forwarded-For-Original
X-Forwarded-Host
X-Forwarded-Path
X-Forwarded-Port
X-Forwarded-Proto
X-Forwarded-Protocol
X-Forwarded-SSL
X-Forwarded-Scheme
X-Forwarded-Server
X-HTTP-DestinationURL
X-HTTP-Host-Override
X-HTTP-Method
X-HTTP-Method-Override
X-Host
X-Host-Override
X-Method
X-Method-Override
X-Original-Forwarded-For
X-Original-Remote-Addr
X-Original-URL
X-Originally-Forwarded-For
X-Originating-IP
X-Override-URL
X-Proxy-Host
X-Proxy-URL
X-ProxyUser-IP
X-Real-IP
X-Referer
X-Remote-Addr
X-Remote-IP
X-Rewrite-URL
X-Scheme
X-Server-IP
X-True-Client-IP
X-True-IP
X-URL-Scheme
X-Wap-Profile
```

## النتائج

**ملاحظات:**

* سيتم فرز النتائج حسب رمز حالة استجابة HTTP `تصاعدياً`، وطول جسم استجابة HTTP `تنازلياً`، ومعرف الاختبار `تصاعدياً`.
* بشكل افتراضي، يتم تضمين رموز حالة استجابة HTTP من نوع `2xx` و `3xx` فقط في النتائج وإظهارها في إخراج وحدة التحكم.
* تشير سمة `length` في النتائج إلى طول جسم استجابة HTTP.
# لتصفية النتائج `الإيجابية الخاطئة` يدوياً، لكل طول محتوى استجابة HTTP فريد، قم بتشغيل أمر cURL المقدم وتحقق مما إذا كانت استجابة HTTP تؤدي إلى تجاوز؛ إذا لم يكن الأمر كذلك، فتجاهل ببساطة جميع النتائج بنفس طول المحتوى.

```json
[
   {
      "id":"595-HOST-OVERRIDES-1",
      "url":"https://example.com:443/admin",
      "method":"GET",
      "headers":[
         "Host: 127.0.0.1"
      ],
      "cookies":[],
      "body":"",
      "user_agent":"Forbidden/13.4",
      "command":"curl --path-as-is -iskL -A 'Forbidden/13.4' -H 'Host: 127.0.0.1' -X 'GET' 'https://example.com:443/admin'",
      "status":200,
      "length":14301
   },
   {
      "id":"596-HOST-OVERRIDES-1",
      "url":"https://example.com:443/admin",
      "method":"GET",
      "headers":[
         "Host: 127.0.0.1:443"
      ],
      "cookies":[],
      "body":"",
      "user_agent":"Forbidden/13.4",
      "command":"curl --path-as-is -iskL -A 'Forbidden/13.4' -H 'Host: 127.0.0.1:443' -X 'GET' 'https://example.com:443/admin'",
      "status":200,
      "length":14301
   }
]
```

## الاستخدام

```fundamental
Forbidden v13.4 ( github.com/ivan-sincek/forbidden )

Usage:   forbidden -u url                       -t tests [-f force] [-o out         ]
Example: forbidden -u https://example.com/admin -t all   [-f GET  ] [-o results.json]

DESCRIPTION
    Bypass 4xx HTTP response status codes and more
URL
    Inaccessible URL
    -u, --url = https://example.com/admin | etc.
IGNORE PARAMETERS
    Ignore URL query string and fragment
    -ip, --ignore-parameters
IGNORE REQUESTS
    Where applicable, use PycURL instead of the default Python Requests engine
    -ir, --ignore-requests
TESTS
    Tests to run
    Specify '[ip-|host-|url-]values' to test HTTP request headers using only user-supplied values passed with the '-v' option
    Specify 'paths-ram' to use the battering ram attack or 'paths' to use the default cluster bomb attack
    Use comma-separated values
    -t, --tests = protocols | methods | uploads | [method-|scheme-|port-|host-|path-]overrides | headers | [ip-|host-|url-]values | paths[-ram] | encodings | [basic-|bearer-]auths | redirects | parsers | all
VALUES
    File containing HTTP request header values or a single value, e.g., internal IP, etc.
    Tests: all-values
    -v, --values = values.txt | 10.10.15.20 | example.local | https://example.local | etc.
FORCE
    Force an HTTP method for all non-specific tests
    -f, --force = GET | POST | CUSTOM | etc.
PATH
    Accessible URL path to test URL path overrides
    Tests: path-overrides
    Default: /robots.txt, /index.html, /sitemap.xml, /README.txt
    -p, --path = /home | etc.
EVIL
    Evil URL or collaborator service
    Tests: host-overrides, headers, bearer-auths, redirects, parsers
    Default: https://github.com
    -e, --evil = https://xyz.interact.sh | https://xyz.burpcollaborator.net | etc.
HEADER
    Any number of extra HTTP request headers
    Extra HTTP request headers will not override test-specific HTTP request headers
    Semi-colon in, e.g., 'Content-Type;' will expand to an empty HTTP request header
    -H, --header = "Authorization: Bearer ey..." | Content-Type; | etc.
COOKIE
    Any number of extra HTTP cookies
    Extra HTTP cookies will not override test-specific HTTP cookies
    -b, --cookie = PHPSESSIONID=3301 | etc.
IGNORE
    RegEx to filter out false positive 200 OK results
    -i, --ignore = Inaccessible | "Access Denied" | "Error: .+" | etc.
CONTENT LENGTHS
    HTTP response content lengths to filter out false positive 200 OK results
    Specify 'initial' to ignore the content length of the initial HTTP response
    Specify 'path' to ignore the content length of the accessible URL's response
    Use comma-separated values
    -l, --content-lengths = 12 | initial | path | etc.
REQUEST TIMEOUT
    Request timeout in seconds
    Default: 60
    -rt, --request-timeout = 30 | 90 | etc.
THREADS
    Number of parallel threads to run
    Default: 5
    -th, --threads = 20 | etc.
SLEEP
    Sleep time in milliseconds before sending an HTTP request
    Intended for a single-thread use
    -s, --sleep = 500 | etc.
USER AGENT
    User agent to use
    Default: Forbidden/13.4
    -a, --user-agent = random[-all] | curl/3.30.1 | etc.
PROXY
    Web proxy to use
    -x, --proxy = http://127.0.0.1:8080 | etc.
HTTP RESPONSE STATUS CODES
    Include only specific HTTP response status codes in the results
    Default: 2xx, 3xx
    Use comma-separated values
    -sc, --status-codes = 1xx | 2xx | 3xx | 4xx | 5xx | all
SHOW TABLE
    Display the results in a table format instead of JSON format
    Intended for use on a wide screen
    -st, --show-table
OUT
    Output file
    -o, --out = results.json | etc.
DUMP
    Dump all the test records into the output file without running any
    -dmp, --dump
DEBUG
    Enable debug output
    -dbg, --debug
```

```fundamental
Stresser v13.4 ( github.com/ivan-sincek/forbidden )

Usage:   stresser -u url                       -r repeat -th threads -dir directory [-f force] [-o out         ]
Example: stresser -u https://example.com/admin -r 1000   -th 200     -dir results   [-f GET  ] [-o results.json]

DESCRIPTION
    Bypass 4xx HTTP response status codes with stress testing
URL
    Inaccessible URL
    -u, --url = https://example.com/admin | etc.
IGNORE PARAMETERS
    Ignore URL query string and fragment
    -ip, --ignore-parameters
IGNORE REQUESTS
    Where applicable, use PycURL instead of the default Python Requests engine
    -ir, --ignore-requests
FORCE
    Force an HTTP method for all non-specific tests
    -f, --force = GET | POST | CUSTOM | etc.
HEADER
    Any number of extra HTTP request headers
    Extra HTTP request headers will not override test-specific HTTP request headers
    Semi-colon in, e.g., 'Content-Type;' will expand to an empty HTTP request header
    -H, --header = "Authorization: Bearer ey..." | Content-Type; | etc.
COOKIE
    Any number of extra HTTP cookies
    Extra HTTP cookies will not override test-specific HTTP cookies
    -b, --cookie = PHPSESSIONID=3301 | etc.
IGNORE
    RegEx to filter out false positive 200 OK results
    -i, --ignore = Inaccessible | "Access Denied" | "Error: .+" | etc.
CONTENT LENGTHS
    HTTP response content lengths to filter out false positive 200 OK results
    Specify 'initial' to ignore the content length of the initial HTTP response
    Use comma-separated values
    -l, --content-lengths = 12 | initial | etc.
REQUEST TIMEOUT
    Request timeout in seconds
    Default: 60
    -rt, --request-timeout = 30 | 90 | etc.
REPEAT
    Number of HTTP requests per test
    -r, --repeat = 1000 | etc.
THREADS
    Number of parallel threads to run
    -th, --threads = 20 | etc.
USER AGENT
    User agent to use
    Default: Stresser/13.4
    -a, --user-agent = random[-all] | curl/3.30.1 | etc.
PROXY
    Web proxy to use
    -x, --proxy = http://127.0.0.1:8080 | etc.
HTTP RESPONSE STATUS CODES
    Include only specific HTTP response status codes in the results
    Default: 2xx, 3xx
    Use comma-separated values
    -sc, --status-codes = 1xx | 2xx | 3xx | 4xx | 5xx | all
SHOW TABLE
    Display the results in a table format instead of JSON format
    Intended for use on a wide screen
    -st, --show-table
OUT
    Output file
    -o, --out = results.json | etc.
DIRECTORY
    Output directory
    All valid and unique HTTP responses will be saved in this directory
    -dir, --directory = results | etc.
DUMP
    Dump all the test records into the output file without running any
    -dmp, --dump
DEBUG
    Enable debug output
    -dbg, --debug
```

## الصور

<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/4920/79066f51066e4f83e1a6a180069eb9bd213a16775d3906d7256a0262c040ddc4.png" alt="Real Example"></p>

<p align="center">الشكل 1 - مثال حقيقي</p>

<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/4920/c0ab26b4413f9b7014f21da8a4b458ba7385baf3198a80db1a9e4303ec123d30.png" alt="Simple Example"></p>

<p align="center">الشكل 2 - مثال بسيط</p>

<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/4920/c015d3d41d2f6f56a71e2af5a38bd539942a5f24cbbe712381bb2221cc2593ae.png" alt="Simple Example (Table Output)"></p>

<p align="center">الشكل 3 - مثال بسيط (إخراج جدولي)</p>
تنزيل الأداة