0x01 背景
最初的目的是想要使用云主机进行代理访问GitHub等网站,因此想到了reGeorg代理。 但是云主机网站使用的是HTTPS协议,在Python 2.7.5版本上运行reGeorg就遇到了异常,打开一个 https要验证ssl证书,目标网站证书是自签名的证书时就会抛出此异常。
0x02 过程
1、先看看报错
[SSL: CERTIFICATE_VERIFY_FAILED]
然后根据报错去百度,查了很多种方法发现都不适合用在 reGeorgSocksProxy.py 文件中。
因为reGeorgSocksProxy.py使用了urllib3模块,我就根据urllib3作为关键字搜索证书验证的问题。最终在以下网址找到了答案。
c = urllib3.HTTPSConnectionPool('10.0.3.168', port=9001, cert_reqs='CERT_NONE',
assert_hostname=False)
c.request('GET', '/')
2、开始修改,搜索urllib3.HTTPSConnectionPool
关键字。
原代码:
if o.scheme == "http":
httpScheme = urllib3.HTTPConnectionPool
else:
httpScheme = urllib3.HTTPSConnectionPool
conn = httpScheme(host=httpHost, port=httpPort)
response = conn.request("GET", httpPath)
修改后:
if o.scheme == "http":
httpScheme = urllib3.HTTPConnectionPool
conn = httpScheme(host=httpHost, port=httpPort)
response = conn.request("GET", httpPath)
else:
httpScheme = urllib3.HTTPSConnectionPool(host=httpHost,port=httpPort,cert_reqs='CERT_NONE',assert_hostname=False)
conn = httpScheme
response = conn.request("GET", httpPath)
print(response.status)
使用效果:
[SSL: CERTIFICATE_VERIFY_FAILED]的报错没有了 ,但是因为访问响应码为500,依然访问不成功,后面排查发现,因为文件是用www权限上传的,网站禁用了很多函数,因此device.php无法正常解析。到此结束。