bbot 2.5.0.6782rc0__py3-none-any.whl → 2.5.0.6803rc0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bbot might be problematic. Click here for more details.
- bbot/__init__.py +1 -1
- bbot/core/helpers/depsinstaller/installer.py +52 -0
- bbot/core/helpers/misc.py +3 -1
- bbot/core/helpers/web/engine.py +1 -1
- bbot/modules/graphql_introspection.py +142 -0
- bbot/modules/nuclei.py +1 -1
- bbot/modules/portscan.py +1 -1
- bbot/modules/trufflehog.py +2 -2
- bbot/test/test_step_2/module_tests/test_module_graphql_introspection.py +34 -0
- {bbot-2.5.0.6782rc0.dist-info → bbot-2.5.0.6803rc0.dist-info}/METADATA +1 -1
- {bbot-2.5.0.6782rc0.dist-info → bbot-2.5.0.6803rc0.dist-info}/RECORD +14 -12
- {bbot-2.5.0.6782rc0.dist-info → bbot-2.5.0.6803rc0.dist-info}/LICENSE +0 -0
- {bbot-2.5.0.6782rc0.dist-info → bbot-2.5.0.6803rc0.dist-info}/WHEEL +0 -0
- {bbot-2.5.0.6782rc0.dist-info → bbot-2.5.0.6803rc0.dist-info}/entry_points.txt +0 -0
bbot/__init__.py
CHANGED
|
@@ -32,6 +32,20 @@ class DepsInstaller:
|
|
|
32
32
|
"bash": "bash",
|
|
33
33
|
"which": "which",
|
|
34
34
|
"tar": "tar",
|
|
35
|
+
"xz": [
|
|
36
|
+
{
|
|
37
|
+
"name": "Install xz-utils (Debian)",
|
|
38
|
+
"package": {"name": ["xz-utils"], "state": "present"},
|
|
39
|
+
"become": True,
|
|
40
|
+
"when": "ansible_facts['os_family'] == 'Debian'",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "Install xz (Non-Debian)",
|
|
44
|
+
"package": {"name": ["xz"], "state": "present"},
|
|
45
|
+
"become": True,
|
|
46
|
+
"when": "ansible_facts['os_family'] != 'Debian'",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
35
49
|
# debian why are you like this
|
|
36
50
|
"7z": [
|
|
37
51
|
{
|
|
@@ -53,6 +67,44 @@ class DepsInstaller:
|
|
|
53
67
|
"when": "ansible_facts['distribution'] == 'Fedora'",
|
|
54
68
|
},
|
|
55
69
|
],
|
|
70
|
+
# to compile just about any tool, we need the openssl dev headers
|
|
71
|
+
"openssl": [
|
|
72
|
+
{
|
|
73
|
+
"name": "Install OpenSSL library and development headers (Debian/Ubuntu)",
|
|
74
|
+
"package": {"name": ["libssl-dev", "openssl"], "state": "present"},
|
|
75
|
+
"become": True,
|
|
76
|
+
"when": "ansible_facts['os_family'] == 'Debian'",
|
|
77
|
+
"ignore_errors": True,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "Install OpenSSL library and development headers (RedHat/CentOS/Fedora)",
|
|
81
|
+
"package": {"name": ["openssl", "openssl-devel"], "state": "present"},
|
|
82
|
+
"become": True,
|
|
83
|
+
"when": "ansible_facts['os_family'] == 'RedHat' or ansible_facts['os_family'] == 'Suse' ",
|
|
84
|
+
"ignore_errors": True,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "Install OpenSSL library and development headers (Arch)",
|
|
88
|
+
"package": {"name": ["openssl"], "state": "present"},
|
|
89
|
+
"become": True,
|
|
90
|
+
"when": "ansible_facts['os_family'] == 'Archlinux'",
|
|
91
|
+
"ignore_errors": True,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "Install OpenSSL library and development headers (Alpine)",
|
|
95
|
+
"package": {"name": ["openssl", "openssl-dev"], "state": "present"},
|
|
96
|
+
"become": True,
|
|
97
|
+
"when": "ansible_facts['os_family'] == 'Alpine'",
|
|
98
|
+
"ignore_errors": True,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "Install OpenSSL library and development headers (FreeBSD)",
|
|
102
|
+
"package": {"name": ["openssl"], "state": "present"},
|
|
103
|
+
"become": True,
|
|
104
|
+
"when": "ansible_facts['os_family'] == 'FreeBSD'",
|
|
105
|
+
"ignore_errors": True,
|
|
106
|
+
},
|
|
107
|
+
],
|
|
56
108
|
}
|
|
57
109
|
|
|
58
110
|
def __init__(self, parent_helper):
|
bbot/core/helpers/misc.py
CHANGED
|
@@ -831,7 +831,9 @@ def rand_string(length=10, digits=True, numeric_only=False):
|
|
|
831
831
|
return "".join(random.choice(pool) for _ in range(length))
|
|
832
832
|
|
|
833
833
|
|
|
834
|
-
def truncate_string(s, n):
|
|
834
|
+
def truncate_string(s: str, n: int) -> str:
|
|
835
|
+
if not isinstance(s, str):
|
|
836
|
+
raise ValueError(f"Expected string, got {type(s)}")
|
|
835
837
|
if len(s) > n:
|
|
836
838
|
return s[: n - 3] + "..."
|
|
837
839
|
else:
|
bbot/core/helpers/web/engine.py
CHANGED
|
@@ -208,7 +208,7 @@ class HTTPEngine(EngineServer):
|
|
|
208
208
|
raise
|
|
209
209
|
else:
|
|
210
210
|
log.warning(
|
|
211
|
-
f"Invalid URL (possibly due to dangerous redirect) on request to : {url}: {truncate_string(e, 200)}"
|
|
211
|
+
f"Invalid URL (possibly due to dangerous redirect) on request to : {url}: {truncate_string(str(e), 200)}"
|
|
212
212
|
)
|
|
213
213
|
log.trace(traceback.format_exc())
|
|
214
214
|
except ssl.SSLError as e:
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from bbot.modules.base import BaseModule
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class graphql_introspection(BaseModule):
|
|
7
|
+
watched_events = ["URL"]
|
|
8
|
+
produced_events = ["FINDING"]
|
|
9
|
+
flags = ["safe", "active", "web-basic"]
|
|
10
|
+
meta = {
|
|
11
|
+
"description": "Perform GraphQL introspection on a target",
|
|
12
|
+
"created_date": "2025-07-01",
|
|
13
|
+
"author": "@mukesh-dream11",
|
|
14
|
+
}
|
|
15
|
+
options = {
|
|
16
|
+
"graphql_endpoint_urls": ["/", "/graphql", "/v1/graphql"],
|
|
17
|
+
"output_folder": "",
|
|
18
|
+
}
|
|
19
|
+
options_desc = {
|
|
20
|
+
"graphql_endpoint_urls": "List of GraphQL endpoint to suffix to the target URL",
|
|
21
|
+
"output_folder": "Folder to save the GraphQL schemas to",
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async def setup(self):
|
|
25
|
+
output_folder = self.config.get("output_folder", "")
|
|
26
|
+
if output_folder:
|
|
27
|
+
self.output_dir = Path(output_folder) / "graphql-schemas"
|
|
28
|
+
else:
|
|
29
|
+
self.output_dir = self.scan.home / "graphql-schemas"
|
|
30
|
+
self.helpers.mkdir(self.output_dir)
|
|
31
|
+
return True
|
|
32
|
+
|
|
33
|
+
async def filter_event(self, event):
|
|
34
|
+
# Dedup by the base URL
|
|
35
|
+
base_url = event.parsed_url._replace(path="/", query="", fragment="").geturl()
|
|
36
|
+
return hash(base_url)
|
|
37
|
+
|
|
38
|
+
async def handle_event(self, event):
|
|
39
|
+
base_url = event.parsed_url._replace(path="/", query="", fragment="").geturl().rstrip("/")
|
|
40
|
+
for endpoint_url in self.config.get("graphql_endpoint_urls", []):
|
|
41
|
+
url = f"{base_url}{endpoint_url}"
|
|
42
|
+
request_args = {
|
|
43
|
+
"url": url,
|
|
44
|
+
"method": "POST",
|
|
45
|
+
"json": {
|
|
46
|
+
"query": """\
|
|
47
|
+
query IntrospectionQuery {
|
|
48
|
+
__schema {
|
|
49
|
+
queryType {
|
|
50
|
+
name
|
|
51
|
+
}
|
|
52
|
+
mutationType {
|
|
53
|
+
name
|
|
54
|
+
}
|
|
55
|
+
types {
|
|
56
|
+
name
|
|
57
|
+
kind
|
|
58
|
+
description
|
|
59
|
+
fields(includeDeprecated: true) {
|
|
60
|
+
name
|
|
61
|
+
description
|
|
62
|
+
type {
|
|
63
|
+
... TypeRef
|
|
64
|
+
}
|
|
65
|
+
isDeprecated
|
|
66
|
+
deprecationReason
|
|
67
|
+
}
|
|
68
|
+
interfaces {
|
|
69
|
+
... TypeRef
|
|
70
|
+
}
|
|
71
|
+
possibleTypes {
|
|
72
|
+
... TypeRef
|
|
73
|
+
}
|
|
74
|
+
enumValues(includeDeprecated: true) {
|
|
75
|
+
name
|
|
76
|
+
description
|
|
77
|
+
isDeprecated
|
|
78
|
+
deprecationReason
|
|
79
|
+
}
|
|
80
|
+
ofType {
|
|
81
|
+
... TypeRef
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
fragment TypeRef on __Type {
|
|
88
|
+
kind
|
|
89
|
+
name
|
|
90
|
+
ofType {
|
|
91
|
+
kind
|
|
92
|
+
name
|
|
93
|
+
ofType {
|
|
94
|
+
kind
|
|
95
|
+
name
|
|
96
|
+
ofType {
|
|
97
|
+
kind
|
|
98
|
+
name
|
|
99
|
+
ofType {
|
|
100
|
+
kind
|
|
101
|
+
name
|
|
102
|
+
ofType {
|
|
103
|
+
kind
|
|
104
|
+
name
|
|
105
|
+
ofType {
|
|
106
|
+
kind
|
|
107
|
+
name
|
|
108
|
+
ofType {
|
|
109
|
+
kind
|
|
110
|
+
name
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}"""
|
|
119
|
+
},
|
|
120
|
+
}
|
|
121
|
+
response = await self.helpers.request(**request_args)
|
|
122
|
+
if not response or response.status_code != 200:
|
|
123
|
+
self.debug(f"Failed to get GraphQL schema for {url} (status code {response.status_code})")
|
|
124
|
+
continue
|
|
125
|
+
try:
|
|
126
|
+
response_json = response.json()
|
|
127
|
+
except json.JSONDecodeError:
|
|
128
|
+
self.debug(f"Failed to parse JSON for {url}")
|
|
129
|
+
continue
|
|
130
|
+
if response_json.get("data", {}).get("__schema", {}).get("types", []):
|
|
131
|
+
filename = f"schema-{self.helpers.tagify(url)}.json"
|
|
132
|
+
filename = self.output_dir / filename
|
|
133
|
+
with open(filename, "w") as f:
|
|
134
|
+
json.dump(response_json, f)
|
|
135
|
+
await self.emit_event(
|
|
136
|
+
{"url": url, "description": "GraphQL schema", "path": str(filename.relative_to(self.scan.home))},
|
|
137
|
+
"FINDING",
|
|
138
|
+
event,
|
|
139
|
+
context=f"{{module}} found GraphQL schema at {url}",
|
|
140
|
+
)
|
|
141
|
+
# return, because we only want to find one schema per target
|
|
142
|
+
return
|
bbot/modules/nuclei.py
CHANGED
|
@@ -282,7 +282,7 @@ class nuclei(BaseModule):
|
|
|
282
282
|
else:
|
|
283
283
|
self.debug("Nuclei result missing one or more required elements, not reporting. JSON: ({j})")
|
|
284
284
|
finally:
|
|
285
|
-
stats_file.unlink()
|
|
285
|
+
stats_file.unlink(missing_ok=True)
|
|
286
286
|
|
|
287
287
|
def log_nuclei_status(self, line):
|
|
288
288
|
if self.silent:
|
bbot/modules/portscan.py
CHANGED
bbot/modules/trufflehog.py
CHANGED
|
@@ -14,7 +14,7 @@ class trufflehog(BaseModule):
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
options = {
|
|
17
|
-
"version": "3.
|
|
17
|
+
"version": "3.90.1",
|
|
18
18
|
"config": "",
|
|
19
19
|
"only_verified": True,
|
|
20
20
|
"concurrency": 8,
|
|
@@ -198,7 +198,7 @@ class trufflehog(BaseModule):
|
|
|
198
198
|
|
|
199
199
|
yield (decoder_name, detector_name, raw_result, rawv2_result, verified, source_metadata)
|
|
200
200
|
finally:
|
|
201
|
-
stats_file.unlink()
|
|
201
|
+
stats_file.unlink(missing_ok=True)
|
|
202
202
|
|
|
203
203
|
def log_trufflehog_status(self, path, line):
|
|
204
204
|
try:
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from .base import ModuleTestBase
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class TestGraphQLIntrospectionNon200(ModuleTestBase):
|
|
5
|
+
targets = ["http://127.0.0.1:8888"]
|
|
6
|
+
modules_overrides = ["graphql_introspection"]
|
|
7
|
+
|
|
8
|
+
async def setup_after_prep(self, module_test):
|
|
9
|
+
module_test.set_expect_requests(
|
|
10
|
+
expect_args={"method": "POST", "uri": "/"},
|
|
11
|
+
respond_args={"response_data": "ok"},
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
def check(self, module_test, events):
|
|
15
|
+
assert all(e.type != "FINDING" for e in events), "should have raised 0 events"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class TestGraphQLIntrospection(ModuleTestBase):
|
|
19
|
+
targets = ["http://127.0.0.1:8888"]
|
|
20
|
+
modules_overrides = ["graphql_introspection"]
|
|
21
|
+
|
|
22
|
+
async def setup_after_prep(self, module_test):
|
|
23
|
+
module_test.set_expect_requests(
|
|
24
|
+
expect_args={"method": "POST", "uri": "/"},
|
|
25
|
+
respond_args={
|
|
26
|
+
"response_data": """{"data": {"__schema": {"types": ["dummy"]}}}""",
|
|
27
|
+
},
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def check(self, module_test, events):
|
|
31
|
+
finding = [e for e in events if e.type == "FINDING"]
|
|
32
|
+
assert finding, "should have raised 1 FINDING event"
|
|
33
|
+
assert finding[0].data["url"] == "http://127.0.0.1:8888/"
|
|
34
|
+
assert finding[0].data["description"] == "GraphQL schema"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bbot
|
|
3
|
-
Version: 2.5.0.
|
|
3
|
+
Version: 2.5.0.6803rc0
|
|
4
4
|
Summary: OSINT automation for hackers.
|
|
5
5
|
License: GPL-3.0
|
|
6
6
|
Keywords: python,cli,automation,osint,threat-intel,intelligence,neo4j,scanner,python-library,hacking,recursion,pentesting,recon,command-line-tool,bugbounty,subdomains,security-tools,subdomain-scanner,osint-framework,attack-surface,subdomain-enumeration,osint-tool
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
bbot/__init__.py,sha256=
|
|
1
|
+
bbot/__init__.py,sha256=psvZSLfHy5t3AIe_f5WcJGV67hsBRzebgolsC2TQ89Y,163
|
|
2
2
|
bbot/cli.py,sha256=1QJbANVw9Q3GFM92H2QRV2ds5756ulm08CDZwzwPpeI,11888
|
|
3
3
|
bbot/core/__init__.py,sha256=l255GJE_DvUnWvrRb0J5lG-iMztJ8zVvoweDOfegGtI,46
|
|
4
4
|
bbot/core/config/__init__.py,sha256=zYNw2Me6tsEr8hOOkLb4BQ97GB7Kis2k--G81S8vofU,342
|
|
@@ -16,7 +16,7 @@ bbot/core/helpers/bloom.py,sha256=gk02rO6x3F5MICa7ZUDsinRudwoGAifsbiyiMCwd0Gs,27
|
|
|
16
16
|
bbot/core/helpers/cache.py,sha256=1aMr3HVD45cDtHEG5xlznDUCywRgO9oRFidscrs_5sA,1537
|
|
17
17
|
bbot/core/helpers/command.py,sha256=ZiLp71iEEcnnHLkvyD_TVeBKl9Uz9PGpTcpl9EHLCgQ,12938
|
|
18
18
|
bbot/core/helpers/depsinstaller/__init__.py,sha256=C2jF_ymSPIO68F649csYQql37ppPfUjFc8eq8LhgDkQ,66
|
|
19
|
-
bbot/core/helpers/depsinstaller/installer.py,sha256=
|
|
19
|
+
bbot/core/helpers/depsinstaller/installer.py,sha256=eos-Q9KUPHQRUU8iRiT5pVJccuHaLouMxxFvjPgR_1s,22154
|
|
20
20
|
bbot/core/helpers/depsinstaller/sudo_askpass.py,sha256=yGa2OQv30RO75QkMuG1iruKqb7amQxRVRRcHmvIeGhk,1276
|
|
21
21
|
bbot/core/helpers/diff.py,sha256=X9MnHfz3IjWhD2grYTHzVPYoiWI9ZqjJul2Bp_BRGcE,10841
|
|
22
22
|
bbot/core/helpers/dns/__init__.py,sha256=SboBeh4o81Xd4mAKhV10QzoRPDH4g28xC5PZVqVmJ28,35
|
|
@@ -29,7 +29,7 @@ bbot/core/helpers/files.py,sha256=9tVr3973QvX8l6o3TweD5_MCZiQpuJVffbzW0U7Z30U,57
|
|
|
29
29
|
bbot/core/helpers/helper.py,sha256=u-q_Ka9pY1atvC-FChxYpURM7b3_0gaCNIHSG__Wi74,8538
|
|
30
30
|
bbot/core/helpers/interactsh.py,sha256=VBYYH6-rWBofRsgemndK6iZNmyifOps8vgQOw2mac4k,12624
|
|
31
31
|
bbot/core/helpers/libmagic.py,sha256=QMHyxjgDLb2jyjBvK1MQ-xt6WkGXhKcHu9ZP1li-sik,3460
|
|
32
|
-
bbot/core/helpers/misc.py,sha256=
|
|
32
|
+
bbot/core/helpers/misc.py,sha256=1bib2ECQdPuw8aylGH0x616Nv6yDthjycApGUsyuyI8,88915
|
|
33
33
|
bbot/core/helpers/names_generator.py,sha256=zmo4MyuOnAYjiUDiORhq9T9bHmA_gW72Y2kHMAqVENU,10594
|
|
34
34
|
bbot/core/helpers/ntlm.py,sha256=P2Xj4-GPos2iAzw4dfk0FJp6oGyycGhu2x6sLDVjYjs,2573
|
|
35
35
|
bbot/core/helpers/process.py,sha256=00uRpLMFi3Pt3uT8qXwAIhsXdoa7h-ifoXh0sGYgwqs,1702
|
|
@@ -40,7 +40,7 @@ bbot/core/helpers/url.py,sha256=eunp4PNNulhitjDpl9tXJkgbTmLgGXmPaGAEaExRqTY,6352
|
|
|
40
40
|
bbot/core/helpers/validators.py,sha256=-WBYvjlwi5SsVtn_LankKGI8vaBza2NqvM1lGbVmiN4,9711
|
|
41
41
|
bbot/core/helpers/web/__init__.py,sha256=tSDInpfUIj9Gi0m4Icwbrx21uc6Jj1-keE7SIfO9g20,35
|
|
42
42
|
bbot/core/helpers/web/client.py,sha256=RPm4kYdHzqPom0EdVFvAiUPuDpztW8cuqGaLfl2Txd0,4082
|
|
43
|
-
bbot/core/helpers/web/engine.py,sha256=
|
|
43
|
+
bbot/core/helpers/web/engine.py,sha256=XmyDMXsJWasOklfPWOcJ6SzuLaUXP3HGJUBO5Gj2xFk,9221
|
|
44
44
|
bbot/core/helpers/web/envelopes.py,sha256=mMmr4QGi28KJSwCkaogMGYhiqeqm3_kO9KziLtEKefc,10074
|
|
45
45
|
bbot/core/helpers/web/ssl_context.py,sha256=aWVgl-d0HoE8B4EBKNxaa5UAzQmx79DjDByfBw9tezo,356
|
|
46
46
|
bbot/core/helpers/web/web.py,sha256=q9X6JNufbZzRijzsc6bXkxH0ntly7rDr-uptscSKxRo,24042
|
|
@@ -114,6 +114,7 @@ bbot/modules/github_workflows.py,sha256=xKntAFDeGuE4MqbEmhJyYXKbzoSh9tWYlHNlnF37
|
|
|
114
114
|
bbot/modules/gitlab.py,sha256=9oWWpBijeHCjuFBfWW4HvNqt7bvJvrBgBjaaz_UPPnE,5964
|
|
115
115
|
bbot/modules/google_playstore.py,sha256=N4QjzQag_bgDXfX17rytBiiWA-SQtYI2N0J_ZNEOdv0,3701
|
|
116
116
|
bbot/modules/gowitness.py,sha256=o4nIBbHVX9tYVW9CpwTsaftWDZu41nhxS0KEp4FoiBs,13003
|
|
117
|
+
bbot/modules/graphql_introspection.py,sha256=-BAzNhBegup2sIYQdJ0jcafZFTGTZl3WoMygilyvfVA,4144
|
|
117
118
|
bbot/modules/hackertarget.py,sha256=IsKs9PtxUHdLJKZydlRdW_loBE2KphQYi3lKDAd4odc,1029
|
|
118
119
|
bbot/modules/host_header.py,sha256=uDjwidMdeNPMRfzQ2YW4REEGsZqnGOZHbOS6GgdNd9s,7686
|
|
119
120
|
bbot/modules/httpx.py,sha256=z0sgnfLqIXyiadM0rKQK2p86lka7rC4pGCfTVUqU5Lk,8118
|
|
@@ -146,7 +147,7 @@ bbot/modules/lightfuzz/submodules/xss.py,sha256=BZz1_nqzV8dqJptpoqZEMdVBdtZHmRae
|
|
|
146
147
|
bbot/modules/myssl.py,sha256=DoMF7o6MxIrcglCrC-W3nM-GPcyJRM4PlGdKfnOlIvs,942
|
|
147
148
|
bbot/modules/newsletters.py,sha256=1Q4JjShPsxHJ-by2CbGfCvEt80blUGPX0hxQIzB_a9M,2630
|
|
148
149
|
bbot/modules/ntlm.py,sha256=EGmb4k3YC_ZuHIU3mGUZ4yaMjE35wVQQSv8HwTsQJzY,4391
|
|
149
|
-
bbot/modules/nuclei.py,sha256=
|
|
150
|
+
bbot/modules/nuclei.py,sha256=JctCgRxDafOfbGMtraryU5_B1YbQxMi73w1skqSgVz4,17998
|
|
150
151
|
bbot/modules/oauth.py,sha256=s-Q6PYJl1OLncGgHzCV0QAzbkewT5zzKCRaa8GidBqc,6720
|
|
151
152
|
bbot/modules/otx.py,sha256=GYi5GFLKlKuRHPYMqtq42bSulerkSpAWHM6ex5eK7ww,913
|
|
152
153
|
bbot/modules/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -178,7 +179,7 @@ bbot/modules/paramminer_headers.py,sha256=GMErLmTO0w7JRIpJE2VFvRTrjmoux_-jTx3Efa
|
|
|
178
179
|
bbot/modules/passivetotal.py,sha256=dHYk9QWIKdO6Z8Bip4IdcButiqy_fr4FrpRUQaiH1a0,1678
|
|
179
180
|
bbot/modules/pgp.py,sha256=Xu2M9WEIlwTm5-Lv29g7BblI05tD9Dl0XsYSeY6UURs,2065
|
|
180
181
|
bbot/modules/portfilter.py,sha256=3iu4xqCsHafhVMbA32Mw6K_7Yn576Rz6GxXMevZQEpM,1752
|
|
181
|
-
bbot/modules/portscan.py,sha256=
|
|
182
|
+
bbot/modules/portscan.py,sha256=emhNhnFYBVMnVm7IZKmzHJRCKRwVpF3S9dtOV6H9iYA,13091
|
|
182
183
|
bbot/modules/postman.py,sha256=vo761Nzu3kPBzfCY3KJcvsGEsjImaa7iA2z-LyASBDc,4589
|
|
183
184
|
bbot/modules/postman_download.py,sha256=OXC4hHInwD2Ps-BURc2uM_Z7PCl95KPdcxSI34Vzdcc,3604
|
|
184
185
|
bbot/modules/rapiddns.py,sha256=uONESr0B5pv9cSAr7lF4WWV31APUhXyHexvI04rUcyk,787
|
|
@@ -207,7 +208,7 @@ bbot/modules/templates/sql.py,sha256=o-CdyyoJvHJdJBKkj3CIGXYxUta4w2AB_2Vr-k7cDDU
|
|
|
207
208
|
bbot/modules/templates/subdomain_enum.py,sha256=epyKSly08jqaINV_AMMWbNafIeQjJqvd3aj63KD0Mck,8402
|
|
208
209
|
bbot/modules/templates/webhook.py,sha256=uGFmcJ81GzGN1UI2k2O7nQF_fyh4ehLDEg2NSXaPnhk,3373
|
|
209
210
|
bbot/modules/trickest.py,sha256=MRgLW0YiDWzlWdAjyqfPPLFb-a51r-Ffn_dphiJI_gA,1550
|
|
210
|
-
bbot/modules/trufflehog.py,sha256=
|
|
211
|
+
bbot/modules/trufflehog.py,sha256=CqF9UAEzi0JzJKitXnBWFAVypCVuKKXWPW14Txw6GMs,8717
|
|
211
212
|
bbot/modules/url_manipulation.py,sha256=4J3oFkqTSJPPmbKEKAHJg2Q2w4QNKtQhiN03ZJq5VtI,4326
|
|
212
213
|
bbot/modules/urlscan.py,sha256=-w_3Bm6smyG2GLQyIbnMUkKmeQVauo-V6F4_kJDYG7s,3740
|
|
213
214
|
bbot/modules/vhost.py,sha256=cirOe0HR4M0TEBN8JdXo2l0s2flc8ZSdxggGm79blT8,5459
|
|
@@ -364,6 +365,7 @@ bbot/test/test_step_2/module_tests/test_module_github_workflows.py,sha256=o_teEa
|
|
|
364
365
|
bbot/test/test_step_2/module_tests/test_module_gitlab.py,sha256=fnwE7BWTU6EQquKdGLCiaX_LwVwvzOLev3Y9GheTLSY,11859
|
|
365
366
|
bbot/test/test_step_2/module_tests/test_module_google_playstore.py,sha256=uTRqpAGI9HI-rOk_6jdV44OoSqi0QQQ3aTVzvuV0dtc,3034
|
|
366
367
|
bbot/test/test_step_2/module_tests/test_module_gowitness.py,sha256=EH3NIMDA3XgZz1yffu-PnRCrlZJODakGPfzgnU7Ls_s,6501
|
|
368
|
+
bbot/test/test_step_2/module_tests/test_module_graphql_introspection.py,sha256=qac8DJ_exe6Ra4UgRvVMSdgBhLIZP9lmXyKhi9RPOK8,1241
|
|
367
369
|
bbot/test/test_step_2/module_tests/test_module_hackertarget.py,sha256=ldhNKxGk5fwq87zVptQDyfQ-cn3FzbWvpadKEO3h4ic,609
|
|
368
370
|
bbot/test/test_step_2/module_tests/test_module_host_header.py,sha256=w1x0MyKNiUol4hlw7CijhMwEMEL5aBddbZZjOcEgv_k,2672
|
|
369
371
|
bbot/test/test_step_2/module_tests/test_module_http.py,sha256=KhsQvqpVa6zmMa79jV4liv_NAv25wrSaO6h_x0AA12c,2127
|
|
@@ -451,8 +453,8 @@ bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt,sha256=ZSIVebs7ptMvHx
|
|
|
451
453
|
bbot/wordlists/top_open_ports_nmap.txt,sha256=LmdFYkfapSxn1pVuQC2LkOIY2hMLgG-Xts7DVtYzweM,42727
|
|
452
454
|
bbot/wordlists/valid_url_schemes.txt,sha256=0B_VAr9Dv7aYhwi6JSBDU-3M76vNtzN0qEC_RNLo7HE,3310
|
|
453
455
|
bbot/wordlists/wordninja_dns.txt.gz,sha256=DYHvvfW0TvzrVwyprqODAk4tGOxv5ezNmCPSdPuDUnQ,570241
|
|
454
|
-
bbot-2.5.0.
|
|
455
|
-
bbot-2.5.0.
|
|
456
|
-
bbot-2.5.0.
|
|
457
|
-
bbot-2.5.0.
|
|
458
|
-
bbot-2.5.0.
|
|
456
|
+
bbot-2.5.0.6803rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
|
|
457
|
+
bbot-2.5.0.6803rc0.dist-info/METADATA,sha256=RafoLsvxll-6fDNfVENz3dKWCZBy4nwrtx3qVZfkjw0,18308
|
|
458
|
+
bbot-2.5.0.6803rc0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
459
|
+
bbot-2.5.0.6803rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
|
|
460
|
+
bbot-2.5.0.6803rc0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|