Requests: Abaikan URL normalisasi

Dibuat pada 10 Des 2019  ·  4Komentar  ·  Sumber: psf/requests

Jika saya ingin menguji kerentanan Path Traversal dalam aplikasi web, URL target biasanya https://example.com/../../path . Menggunakan metode GET dalam permintaan, URL itu akan dinormalisasi seperti di bawah ini. Akibatnya, ini akan menyebabkan hasil yang tidak diinginkan dalam tes.

r = requests.get('https://example.com/../../path')
print(r.url)
# https://example.com/path

Dengan curl , kami memiliki opsi untuk mengabaikan normalisasi : --path-as-is . Jadi, apakah kita memiliki opsi yang setara untuk requests ?

Komentar yang paling membantu

Coba gunakan permintaan yang sudah disiapkan

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)

Semua 4 komentar

@EDjur Terima kasih atas informasinya. Apakah Anda tahu solusi untuk menyelesaikan ini?

Coba gunakan permintaan yang sudah disiapkan

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 Terima kasih banyak. Ini bekerja dengan baik.

@akmalhisyam benar di sini. Menggunakan alur kerja PreparedRequests biasanya akan menyelesaikan masalah seperti ini jika Anda HARUS secara eksplisit mengatur sesuatu.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat