如果我想测试 Web 应用程序中的路径遍历漏洞,目标 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 工作流通常可以解决此类问题。
最有用的评论
尝试使用准备好的请求