bbot 2.4.1.6095rc0__py3-none-any.whl → 2.4.1.6100rc0__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/defaults.yml +4 -0
- bbot/modules/base.py +9 -2
- bbot/modules/certspotter.py +1 -1
- {bbot-2.4.1.6095rc0.dist-info → bbot-2.4.1.6100rc0.dist-info}/METADATA +1 -1
- {bbot-2.4.1.6095rc0.dist-info → bbot-2.4.1.6100rc0.dist-info}/RECORD +9 -9
- {bbot-2.4.1.6095rc0.dist-info → bbot-2.4.1.6100rc0.dist-info}/LICENSE +0 -0
- {bbot-2.4.1.6095rc0.dist-info → bbot-2.4.1.6100rc0.dist-info}/WHEEL +0 -0
- {bbot-2.4.1.6095rc0.dist-info → bbot-2.4.1.6100rc0.dist-info}/entry_points.txt +0 -0
bbot/__init__.py
CHANGED
bbot/defaults.yml
CHANGED
|
@@ -96,6 +96,10 @@ web:
|
|
|
96
96
|
http_retries: 1
|
|
97
97
|
# HTTP retries (for httpx)
|
|
98
98
|
httpx_retries: 1
|
|
99
|
+
# Default sleep interval when rate limited by 429 (and retry-after isn't provided)
|
|
100
|
+
429_sleep_interval: 30
|
|
101
|
+
# Maximum sleep interval when rate limited by 429 (and an excessive retry-after is provided)
|
|
102
|
+
429_max_sleep_interval: 60
|
|
99
103
|
# Enable/disable debug messages for web requests/responses
|
|
100
104
|
debug: false
|
|
101
105
|
# Maximum number of HTTP redirects to follow
|
bbot/modules/base.py
CHANGED
|
@@ -108,8 +108,6 @@ class BaseModule:
|
|
|
108
108
|
_api_retries = 2
|
|
109
109
|
# disable the module after this many failed attempts in a row
|
|
110
110
|
_api_failure_abort_threshold = 3
|
|
111
|
-
# sleep for this many seconds after being rate limited
|
|
112
|
-
_429_sleep_interval = 30
|
|
113
111
|
|
|
114
112
|
default_discovery_context = "{module} discovered {event.type}: {event.data}"
|
|
115
113
|
|
|
@@ -165,6 +163,10 @@ class BaseModule:
|
|
|
165
163
|
# used for optional "per host" tracking
|
|
166
164
|
self._per_host_tracker = set()
|
|
167
165
|
|
|
166
|
+
# 429 rate limit handling
|
|
167
|
+
self._429_sleep_interval = self.scan.web_config.get("429_sleep_interval", 30)
|
|
168
|
+
self._429_max_sleep_interval = self.scan.web_config.get("429_max_sleep_interval", 60)
|
|
169
|
+
|
|
168
170
|
async def setup(self):
|
|
169
171
|
"""
|
|
170
172
|
Performs one-time setup tasks for the module.
|
|
@@ -1172,6 +1174,11 @@ class BaseModule:
|
|
|
1172
1174
|
retry_after = self._get_retry_after(r)
|
|
1173
1175
|
if retry_after or status_code == 429:
|
|
1174
1176
|
sleep_interval = int(retry_after) if retry_after is not None else self._429_sleep_interval
|
|
1177
|
+
if retry_after and retry_after > self._429_max_sleep_interval:
|
|
1178
|
+
self.verbose(
|
|
1179
|
+
f"Got an excessive retry-after header of {retry_after} from {new_url}, using {self._429_max_sleep_interval} instead"
|
|
1180
|
+
)
|
|
1181
|
+
sleep_interval = self._429_max_sleep_interval
|
|
1175
1182
|
self.verbose(
|
|
1176
1183
|
f"Sleeping for {sleep_interval:,} seconds due to rate limit (HTTP status: {status_code})"
|
|
1177
1184
|
)
|
bbot/modules/certspotter.py
CHANGED
|
@@ -15,7 +15,7 @@ class certspotter(subdomain_enum):
|
|
|
15
15
|
|
|
16
16
|
def request_url(self, query):
|
|
17
17
|
url = f"{self.base_url}/issuances?domain={self.helpers.quote(query)}&include_subdomains=true&expand=dns_names"
|
|
18
|
-
return self.api_request(url
|
|
18
|
+
return self.api_request(url)
|
|
19
19
|
|
|
20
20
|
async def parse_results(self, r, query):
|
|
21
21
|
results = set()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bbot
|
|
3
|
-
Version: 2.4.1.
|
|
3
|
+
Version: 2.4.1.6100rc0
|
|
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=5nN5mwrxsCWyzy0Rob1W3pW2f7A0ZLPueXgx-n5Lamo,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
|
|
@@ -48,7 +48,7 @@ bbot/core/modules.py,sha256=U0Z2UoZAOPG9lLvR9Juc3UwdWCc_xbktF4t_NoiKPrY,31385
|
|
|
48
48
|
bbot/core/multiprocess.py,sha256=ocQHanskJ09gHwe7RZmwNdZyCOQyeyUoIHCtLbtvXUk,1771
|
|
49
49
|
bbot/core/shared_deps.py,sha256=mCMZeKSt46trzVqQDPGfXfEWg0Zw5YjiJx4BnsIRgHM,7640
|
|
50
50
|
bbot/db/sql/models.py,sha256=SrUdDOBCICzXJBY29p0VvILhMQ1JCuh725bqvIYogX0,4884
|
|
51
|
-
bbot/defaults.yml,sha256=
|
|
51
|
+
bbot/defaults.yml,sha256=r8nRJNwMlY59Ihigysa_pee6dm3rs69_U1ztpV6kbjs,6904
|
|
52
52
|
bbot/errors.py,sha256=xwQcD26nU9oc7-o0kv5jmEDTInmi8_W8eKAgQZZxdVM,953
|
|
53
53
|
bbot/logger.py,sha256=wE-532v5FyKuSSoTdyW1xSfaOnLZB1axAJnB-uW2xrI,2745
|
|
54
54
|
bbot/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -61,7 +61,7 @@ bbot/modules/baddns.py,sha256=ubO3KDfcIMJnMjyZX5FWZ4GWxLSekV_JQV7QvsPjtD0,6693
|
|
|
61
61
|
bbot/modules/baddns_direct.py,sha256=hWThpkXP87nnCRTlUh5qBJ1t4eo4l9kUmKNNxVNJI8A,3819
|
|
62
62
|
bbot/modules/baddns_zone.py,sha256=y1XaBUfFPnRbR2qaTqRyUsPgEL73722v2B8aS5YoGN4,1035
|
|
63
63
|
bbot/modules/badsecrets.py,sha256=LG37p48Rlxsfc3BmACMpkypsbuFTVvXqNhlP1IEsx0k,5109
|
|
64
|
-
bbot/modules/base.py,sha256=
|
|
64
|
+
bbot/modules/base.py,sha256=ehkGjo07bL0QKP-fW64eOLqES2GBSq9ZkM7VkSuOBhI,75038
|
|
65
65
|
bbot/modules/bevigil.py,sha256=0VLIxmeXRUI2-EoR6IzuHJMcX8KCHNNta-WYa3gVlDg,2862
|
|
66
66
|
bbot/modules/binaryedge.py,sha256=5F9LnZwRM_rZnzTv29hLJLI2GEQdzOwSpahPFC1kJC0,1397
|
|
67
67
|
bbot/modules/bucket_amazon.py,sha256=mwjYeEAcdfOpjbOa1sD8U9KBMMVY_c8FoHjSGR9GQbg,730
|
|
@@ -75,7 +75,7 @@ bbot/modules/builtwith.py,sha256=6ZQOc6vmSVc8LsdgsiuMWfDquGm5K0jxwsnL8MsKNWw,538
|
|
|
75
75
|
bbot/modules/bypass403.py,sha256=HyONgOYlZUET61FZ0QWE7zPGG-N6n0x_j9KUGw8kVxQ,6855
|
|
76
76
|
bbot/modules/c99.py,sha256=yHT9-eyqRODISV5eTi11uh-xwqX0JG7zey5AgcDYCdI,1448
|
|
77
77
|
bbot/modules/censys.py,sha256=J7NhPnSeoCuG_9FkLjFBIg-tqHAB21HjvQUw_6OQNZo,3311
|
|
78
|
-
bbot/modules/certspotter.py,sha256=
|
|
78
|
+
bbot/modules/certspotter.py,sha256=qdRGCkGyP07_cP9h2o_AEZwoiQPXtrC-Bel3vgh24x8,905
|
|
79
79
|
bbot/modules/chaos.py,sha256=JyuwytwE3IRmNbw-uyJ0gCaTnywhhsHzTiZ3OJ15PAw,1573
|
|
80
80
|
bbot/modules/code_repository.py,sha256=x70Z45VnNNMF8BPkHfGWZXsZXw_fStGB3y0-8jbP1Ns,2078
|
|
81
81
|
bbot/modules/credshed.py,sha256=HAF5wgRGKIIpdMAe4mIAtkZRLmFYjMFyXtjjst6RJ20,4203
|
|
@@ -428,8 +428,8 @@ bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt,sha256=ZSIVebs7ptMvHx
|
|
|
428
428
|
bbot/wordlists/top_open_ports_nmap.txt,sha256=LmdFYkfapSxn1pVuQC2LkOIY2hMLgG-Xts7DVtYzweM,42727
|
|
429
429
|
bbot/wordlists/valid_url_schemes.txt,sha256=0B_VAr9Dv7aYhwi6JSBDU-3M76vNtzN0qEC_RNLo7HE,3310
|
|
430
430
|
bbot/wordlists/wordninja_dns.txt.gz,sha256=DYHvvfW0TvzrVwyprqODAk4tGOxv5ezNmCPSdPuDUnQ,570241
|
|
431
|
-
bbot-2.4.1.
|
|
432
|
-
bbot-2.4.1.
|
|
433
|
-
bbot-2.4.1.
|
|
434
|
-
bbot-2.4.1.
|
|
435
|
-
bbot-2.4.1.
|
|
431
|
+
bbot-2.4.1.6100rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
|
|
432
|
+
bbot-2.4.1.6100rc0.dist-info/METADATA,sha256=ZjY7PWqXvYjN9vkB-WcSvyyIYvL26G4JTc-stO6VfFM,18218
|
|
433
|
+
bbot-2.4.1.6100rc0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
434
|
+
bbot-2.4.1.6100rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
|
|
435
|
+
bbot-2.4.1.6100rc0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|