BPB-Worker-Panel 面板BUG利用
描述
这个免费的代理节点主要是来自BPB-Worker-Panel 面板的漏洞利用,其实这个漏洞早就被爆出过,也有人也发布视频怎么堵漏洞,但在后期更新中,作者又加上了一个新漏洞,根据作者说明,漏了无所谓,这样就代表可以使用很多的节点,起飞喽。
准备工作
V2ray客户端:【下载地址】
V2ray-Pro客户端:【下载地址】
代码:
1 | trojan节点: |
批量免费获取BPB面板的后台地址:
443端口:【点击获取】443搜索关键词:
icon_hash="-1354027319" && asn="13335" && port="443"
80端口:【点击获取】
80搜索关键词:
icon_hash="-1354027319" && asn="13335" && port="80"
这样就可以获取到BPB-Worker-Panel面板的登录地址,在前面加上
/login
,就可以获取到BPB-Worker-Panel面板的登录后台,版本最低需要2.5.3
以上,这样才可以导入使用节点。打开使用科学上网的客户端,复制粘贴上面准备的代码。
选择刚才的代码,点击编辑,从
1
那里获取到的地址,粘贴到伪装域名(host)和SNI中。
进阶
这里分享一个知名的零度搭建的python代码,直接获取可使用的网址。
安装一个python客户端,这里就不说明了,详情安装过程可自己查询。
安装需要的依赖库:
1
2pip install requests beautifulsoup4
pip install selenium注:如果有出现安装失败的情况,可能是你的版本太低,可以使用以下的指令。
1
pip install selenium requests beautifulsoup4 packaging
把下面的代码另存为一个vpn.py文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114import os
import requests
from bs4 import BeautifulSoup
from packaging import version
# 获取当前目录路径
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
# 输出文件的完整路径
OUTPUT_FILE_1 = os.path.join(CURRENT_DIR, "1.txt")
OUTPUT_FILE_2 = os.path.join(CURRENT_DIR, "2.txt")
OUTPUT_FILE_OK = os.path.join(CURRENT_DIR, "OK.txt")
HEADERS = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/115.0.0.0 Safari/537.36"
)
}
MIN_VERSION = version.parse("2.5.3") # 最低版本号
def fetch_fofa_results():
"""抓取 FOFA 页面并提取结果地址"""
try:
print("Fetching FOFA results...")
response = requests.get(
"https://fofa.info/result? qbase64=aWNvbl9oYXNoPSItMTM1NDAyNzMxOSIgJiYgYXNuPSIxMzMzNSIgJiYgcG9ydD0iNDQzIg%3D%3D",
timeout=10
)
response.raise_for_status()
except requests.RequestException as e:
print(f"Error fetching FOFA results: {e}")
return []
soup = BeautifulSoup(response.text, 'html.parser')
results = [link['href'] for link in soup.find_all('a', href=True) if link['href'].startswith("https://")]
print(f"Found {len(results)} URLs.")
return results
def strip_https_and_login(input_file, output_file):
"""移除 https:// 前缀和 /login 后缀"""
try:
with open(input_file, "r", encoding="utf-8") as infile, \
open(output_file, "w", encoding="utf-8") as outfile:
for line in infile:
url = line.strip()
# 去掉 https:// 和 /login
if url.startswith("https://"):
url = url[8:] # 去掉 https://
if url.endswith("/login"):
url = url[:-6] # 去掉 /login
outfile.write(f"{url}\n")
print(f"Processed URLs saved to {output_file}.")
except IOError as e:
print(f"Error processing file: {e}")
def validate_bpb_version(input_file, output_file):
"""验证 BPB Panel 版本"""
try:
with open(input_file, "r", encoding="utf-8") as infile, \
open(output_file, "w", encoding="utf-8") as outfile:
for url in infile:
url = url.strip()
try:
response = requests.get(f"https://{url}/login", headers=HEADERS, timeout=10)
response.raise_for_status()
raw_version = extract_version(response.text)
if raw_version and version.parse(raw_version) > MIN_VERSION:
print(f"[Valid] {url} (Version: {raw_version})")
outfile.write(f"{url}\n")
except Exception as e:
print(f"[Error] Could not process {url}: {e}")
print(f"Validated URLs saved to {output_file}.")
except IOError as e:
print(f"Error reading/writing file: {e}")
def extract_version(html):
"""从 HTML 中提取版本号"""
if "BPB Panel" in html:
start_index = html.find("BPB Panel")
version_start = html.find("2", start_index)
version_end = version_start
while version_end < len(html) and (html[version_end].isdigit() or html[version_end] == "."):
version_end += 1
return html[version_start:version_end]
return None
def main():
# 步骤 1:抓取 FOFA 页面结果
urls = fetch_fofa_results()
if not urls:
print("No URLs fetched. Exiting.")
return
with open(OUTPUT_FILE_1, "w", encoding="utf-8") as file:
file.writelines(f"{url}\n" for url in urls)
print(f"Fetched results saved to {OUTPUT_FILE_1}.")
# 步骤 2:移除 https:// 和 /login
strip_https_and_login(OUTPUT_FILE_1, OUTPUT_FILE_2)
# 步骤 3:验证 BPB Panel 版本,符合条件的保存到 OK.txt
validate_bpb_version(OUTPUT_FILE_2, OUTPUT_FILE_OK)
if __name__ == "__main__":
main()
分页获取
注:分页获取会被网站检测,请你谨慎使用
1 | import os |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 冰刻无痕!
评论