
🚫 أداة متقدمة لباحثي الأمن لتجاوز قيود 403/40X من خلال تقنيات ذكية ومعالجة طلبات تكيفية. سريعة. دقيقة. فعالة.
nomore403 هي أداة سطر أوامر لاختبار تجاوز التحكم في الوصول عبر HTTP والتناقضات في تحليل الطلبات حول الاستجابات 401 و 403 وما يتصل بها.
صُممت الأداة للعمل العملي في مجال أمن الويب: مكافآت الثغرات، اختبار الاختراق، مراجعات الأمان، واختبار الانحدار لقواعد التحكم في الوصول. تقوم بأتمتة مجموعة واسعة من تحويرات الطلبات، تلتقط حالة أساسية، ترشح النتائج الإيجابية الخاطئة الشائعة، وتبرز الاستجابات الأكثر احتمالاً لتمثل تجاوزاً ذا معنى.
بالنظر إلى عنوان URL مستهدف، تقوم nomore403 بما يلي:
curl للنتائج المثيرة للاهتمام.هذه الأداة لا "تكسر المصادقة" بذاتها. إنها تساعد في إيجاد الاختلافات بين كيفية تفسير الواجهات الأمامية، الخوادم الوسيطة (proxies)، جدران حماية تطبيقات الويب (WAFs)، شبكات توصيل المحتوى (CDNs)، موجهات التطبيقات، والخوادم الخلفية لنفس الطلب.
404 أو استجابات المسار الأصلي (parent-path)net/http على تطبيعهاgit clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
إذا قمت بالتنصيب عبر go install، لن يتم تثبيت مجلد payloads/ تلقائياً. قم باستنساخ المستودع وأشر الأداة إلى ذلك المجلد باستخدام -f عند الحاجة.
curl في متغير PATH للتقنيات التي تعتمد عليه، مثل:
http-versionshttp-parserabsolute-uriمعظم التقنيات تعمل دون curl.
فحص أساسي:
./nomore403 -u https://target.tld/admin
استخدام وسيط (proxy) ومخرجات مفصلة (verbose):
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
تشغيل تقنيات محددة فقط:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
قراءة الأهداف من الإدخال القياسي:
cat urls.txt | ./nomore403
استخدام ملف طلب بنمط Burp:
./nomore403 --request-file request.txt
كتابة مخرجات قابلة للمعالجة الآلية:
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
target: https://target.tld/admin method: GET frontend: AWS ELB/ALB payloads: payloads
calib: 404 | 1245b | ±50 | frag 703b
BASELINE
default 403 520 bytes https://target.tld/admin
FINDINGS
hdr-ip 100! 200 2048 bytes X-Original-URL: /
abs-uri 26. 403 236 bytes request-target: https://target.tld/admin
http 18. 400 122 bytes HTTP/2
no visible results: 17 techniques
━━━━━━━━━━━━━━ LIKELY BYPASS ━━━━━━━━━━━━━━━━━
[!100 HIGH] Header injection (IP) 403=>200 2048b
why: status 403->200, len Δ1528, body changed, type changed
item: X-Original-URL: /
curl: curl -i -sS -k -H 'User-Agent: nomore403' -H 'X-Original-URL: /' 'https://target.tld/admin'
كل سطر مرئي هو استجابة اختلفت عن الأساس (baseline) بدرجة كافية لتجاوز الترشيح.
الحقول النموذجية:
hdr-ip، abs-uri، أو parser18.، 61+، أو 100!تظهر الملخصات النهائية انتقالات الأساس إلى النتيجة:
403=>200 يستحق عادةً اهتماماً فورياً403=>302 قد يكون مثيراً للاهتمام، لكنه قد يظل يعود إلى حاجز مصادقة403->400 أو 403->404 عادةً ما تشير إلى اختلافات في التحليل أو التوجيه وليس تجاوزاًفي نهاية التشغيل، تطبع nomore403:
LIKELY BYPASS (تجاوز محتمل)
curl قابل للتكرارINTERESTING VARIATIONS (اختلافات مثيرة للاهتمام)
no visible results (لا توجد نتائج مرئية)
التسجيل هو استكشافي (heuristic). الهدف منه هو ترتيب النتائج حسب الأولوية، لا إثبات الاستغلال.
تشجع الأداة عموماً:
2xx3xxLocationتخفض الأداة عموماً من ترتيب:
400 و 404 ما لم يتغير الاستجابة بشكل جوهري أيضاًالتفسير الموصى به:
HIGH: قابلة للتنفيذ غالباً؛ راجعها أولاًMED: مرشح معقول؛ عادةً يستحق إعادة تنفيذ يدويLOW: اختلاف في المحلل، شذوذ في التوجيه، أو سلوك ذو ثقة منخفضةالمعايرة التلقائية مفعلة افتراضياً في الوضع غير المفصل (non-verbose).
ترسل طلبات إلى عدة مسارات غير موجودة وتبني أساساً لسلوك الخطأ الافتراضي للهدف. كما تقوم بطلب معايرة قائم على الأجزاء (fragment-based) لتقليل النتائج الإيجابية الخاطئة الناتجة عن المسارات المجردة من الأجزاء.
استخدم هذه العلامات للتحكم فيها:
--no-calibrate
--strict-calibrate
Location، Content-Type، و Serverتقوم الأداة بتشغيل جميع التقنيات افتراضياً ما لم تحدد -k.
verbs
payloads/httpmethodsverbs-case
method-override
headers
hop-by-hop
Connectionheader-confusion
X-Original-URLhost-override
forwarded-trust
Forwarded، Client-IP، Cluster-Client-IP، وسلاسل الثقة ذات الصلةproto-confusion
X-Forwarded-Proto، ، وإشارات المخطط (scheme) ذات الصلةendpaths
payloads/endpathsmidpaths
payloads/midpathsdouble-encoding
unicode
%uXXXX و UTF-8 المفرط الطولpath-case
path-normalization
suffix-tricks
.json، .css، ، وتبديلات نمط الاستعلام للتنسيقhttp-versions
HTTP/1.0 و HTTP/2http-parser
curl ضئيل متعمد لكشف اختلافات تحليل العميل/الواجهة الأمامية بشكل منفصل عن http-versionsabsolute-uri
curl --request-targetraw-duplicates
raw-authority
raw-desync
بعض التقنيات تحتاج إلى تحكم على مستوى السلك (wire-level) لا يوفره عميل net/http في لغة Go. تستخدم تلك التقنيات محرك HTTP الخام.
التقنيات الخام حالياً تشمل:
raw-duplicatesraw-authorityraw-desync%uXXXX unicodeملاحظات:
قد تستنتج الأداة تلميحات للواجهة الأمامية مثل:
تُستخدم هذه التلميحات لتحسين ترتيب التقنيات وسياق المخرجات.
هام:
-k، لا تزال الأداة تشغل مجموعة التقنيات الافتراضية الكاملةتُعاد تنفيذ النتائج عالية القيمة تلقائياً في الملخص النهائي.
مخرجات إعادة التنفيذ تساعد في الإجابة على:
يتضمن الملخص النهائي:
1/1 أو 2/2 matched on replaycurl قابل لإعادة التنفيذ للنتائج المثيرة للاهتمام./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
ملفات الطلبات مفيدة عند إعادة تنفيذ حركة المرور الملتقطة في Burp أو وسيط آخر.
استخدم --payload-position عندما تريد حقن المحملات في علامات صريحة بدلاً من الاعتماد فقط على منطق تحوير endpath و midpath المدمج.
مثال:
./nomore403 -u 'https://target.tld/§100§/admin/§200§' -p §
./nomore403 -u https://target.tld/admin
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
./nomore403 -u https://target.tld/admin -k absolute-uri,raw-duplicates,raw-authority,raw-desync
./nomore403 -u https://target.tld/admin -i 10.0.0.5
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
شغّل ./nomore403 --help للحصول على واجهة سطر الأوامر الكاملة والمحدثة.
العلامات الرئيسية:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
--retry-count
الوضع الافتراضي محسّن للمراجعة التفاعلية والفرز.
استخدم --json للحصول على مستند منظم واحد.
استخدم --jsonl عندما تريد:
يحتوي مجلد payloads/ على قوائم تستخدمها عدة تقنيات.
الملفات الحالية تشمل:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragentsيمكنك تخصيص هذه الملفات لتناسب أهدافك أو سير عملك.
curl تتطلب وجود curl في متغير PATHاستخدم هذه الأداة فقط على الأنظمة المصرح لك باختبارها.
المؤلفون والمساهمون ليسوا مسؤولين عن سوء الاستخدام. أنت مسؤول عن الامتثال للقوانين المعمول بها، وقواعد البرنامج، والسياسات التنظيمية.
المساهمات مرحب بها.
مجالات المساهمة المفيدة تشمل:
قبل المساهمة بتقنية، يُفضل:
تم إصدار هذا المشروع بموجب ترخيص MIT. راجع LICENSE.
X-Forwarded-Portip-encoding
;index.htmlpayload-position
--retry-backoff-ms
--host-delay
--top-score-min
LIKELY BYPASS--variation-score-min
INTERESTING VARIATIONS--top
0 لتعطيل الملخصات