في الحالات التي أرغب في اختبار ثغرات Path Traversal في تطبيقات الويب ، يكون عنوان URL الهدف عادةً https://example.com/../../path
. باستخدام طريقة GET في الطلبات ، سيتم تسوية عنوان URL هذا على النحو التالي. وبالتالي ، سيؤدي ذلك إلى نتائج غير مقصودة في الاختبار.
r = requests.get('https://example.com/../../path')
print(r.url)
# https://example.com/path
مع curl
، لدينا خيار لتجاهل التسوية: --path-as-is
. إذن ، هل لدينا خيار مكافئ لـ requests
؟
EDjur شكرا لمعلوماتك. هل تعرف حلاً لحل هذا؟
حاول استخدام الطلب المعد
url = "http://example.com/../something.txt"
s = requests.Session()
req = requests.Request(method='POST' ,url=url, headers=headers, data=data)
prep = req.prepare()
prep.url = url
r = s.send(prep, verify=False)
akmalhisyam شكرا جزيلا لك. أنه يعمل بشكل جيد.
akmalhisyam صحيح هنا. سيؤدي استخدام سير العمل PreparedRequests عادةً إلى حل مشكلات مثل هذه إذا كان يجب عليك تعيين شيء ما بشكل صريح.
التعليق الأكثر فائدة
حاول استخدام الطلب المعد