存储的块长度无效.Jython和请求图书馆



我目前正在构建一个打嗝扩展,我在集成Jython(Burp在java中,所以需要Jython(和请求库时遇到了一些问题。

扩展的想法是检查某些 URL(通过添加和终结点(是否在响应正文中返回某些文本。

我正在做如下的事情:

endpoints = ['a','b','c','d','e']
#I have a list of str urls
for URL in urlList:
for endpoint in endpoints
newURL = URL + endpoint + '?query={%0A%20%20%0A}'
getResponse = requests.get(newURL)
postResponse = requests.post(newURL)
getResponseText = getResponse.text
postResponseText = postResponse.text
if ("Very specific error" in getResponseText):
getEndpointFound = True
if ("Very specific error" in postResponseText):
postEndpointFound = True

奇怪的是,通过的第一个 url 工作正常,但第二个 url 给出以下错误

getResponse = requests.get(newURL)
File "C:Python27Libsite-packagesrequestsapi.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "C:Python27Libsite-packagesrequestsapi.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "C:Python27Libsite-packagesrequestssessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "C:Python27Libsite-packagesrequestssessions.py", line 686, in send
r.content
File "C:Python27Libsite-packagesrequestsmodels.py", line 828, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "C:Python27Libsite-packagesrequestsmodels.py", line 750, in generate
for chunk in self.raw.stream(chunk_size, decode_content=True):
File "C:Python27Libsite-packagesrequestsmodels.py", line 750, in generate
for chunk in self.raw.stream(chunk_size, decode_content=True):
File "C:Python27Libsite-packagesurllib3response.py", line 560, in stream
for line in self.read_chunked(amt, decode_content=decode_content):
File "C:Python27Libsite-packagesurllib3response.py", line 766, in read_chunked
decoded = self._flush_decoder()
File "C:Python27Libsite-packagesurllib3response.py", line 408, in _flush_decoder
return buf + self._decoder.flush()
File "C:UsersUserDesktopBurpExtenderjython-standalone-2.7.1.jarLibzlib.py", line 244, in flush
File "C:UsersUserDesktopBurpExtenderjython-standalone-2.7.1.jarLibzlib.py", line 281, in _get_inflate_data
zlib.error: java.util.zip.DataFormatException: invalid stored block lengths

起初我认为这是关于 URL 列表的问题,所以我尝试提供一个 URL。仍然出现错误。

当我尝试做几个请求时,它似乎发生了,但我不知道到底发生了什么,不知道我能做什么?

嗯,这个线程很旧,但我的团队刚刚遇到了同样的问题。

看起来jython中的zlib存在某种问题,这意味着我们有压缩的响应。

诀窍是urllib3默认添加Accept-Encoding: gzip, deflate,因此允许服务器发送压缩响应,这会导致麻烦。

我们刚刚添加了headers={'accept-encoding':None}作为解决方法,效果很好。

最新更新