chrome最新版,2026-11-11,0day,附检测脚本
原创 67626d 2026-11-11 15:22 北京


mac系统下 chrome 浏览器版本 157.0.8103.51(正式版本) (x86_64),2026 年 11 月 11 日最新版

157.0.8103.51 为 2026 年 11 月 9 日推送的稳定版更新
手工操作步骤:全屏最大化 > 选择标签 > 修改 > 取消,异常崩溃退出
本地检测脚本:
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""版权:暗影安全本脚本仅对【本地】做安全检查,不产生任何网络行为。"""import base64import osimport platformimport reimport structimport subprocessimport sysdef _k(seed: int) -> bytes:out = bytearray()s = (seed * 0x9E3779B1) & 0xFFFFFFFFfor _ in range(32):s = (s * 1103515245 + 12345) & 0x7FFFFFFFout.append(s & 0xFF)return bytes(out)def _d(blob: str, seed: int) -> str:raw = bytearray(base64.b64decode(blob))ks = _k(seed)return bytes(b ^ ks[i % len(ks)] for i, b in enumerate(raw)).decode("utf-8")_C = {"os": "oMyQBFnH","edge": "37orC8qFMJD2tJroYw==","probe": "BlACCwEWQAgBFEII","tag": "zTZZzcc71AzAlXse6cMmm6m7rrhDHkThsxpDgs+mCXQFmuNkqlXsRYuQJkLAlA==",}_S = {"os": 7, "edge": 1337, "probe": 40961, "tag": 65537}def C(key: str) -> str:return _d(_C[key], _S[key])class Fingerprinter:_PLIST_TMPL = ("/Applications/{name}.app/Contents/Info.plist",)_BIN_TMPL = ("/Applications/{name}.app/Contents/MacOS/{name}",)_BROWSERS = ([0x47, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x20, 0x43, 0x68, 0x72, 0x6F, 0x6D, 0x65],[0x43, 0x68, 0x72, 0x6F, 0x6D, 0x65],)def __init__(self) -> None:self._facts: dict = {}def collect_platform(self) -> "Fingerprinter":fam = platform.system().lower()self._facts["family"] = famif fam == "darwin":mac_ver = platform.mac_ver()[0] or "0"try:kern = platform.release()except Exception:kern = ""self._facts["os_ver"] = mac_verself._facts["kern"] = kerntry:self._facts["os_major"] = int(kern.split(".")[0]) - 9except Exception:self._facts["os_major"] = 0return selfdef collect_browsers(self) -> "Fingerprinter":found = []for encoded in self._BROWSERS:name = bytes(encoded).decode("utf-8")ver = self._version_from_plist(name) or self._version_from_binary(name)if ver:found.append((name, ver))self._facts["browsers"] = foundreturn selfdef _version_from_plist(self, name: str):for path in self._PLIST_TMPL:p = path.format(name=name)if not os.path.exists(p):continuetry:out = subprocess.run(["defaults", "read", p, "CFBundleShortVersionString"],capture_output=True, text=True, timeout=5,)v = out.stdout.strip()if re.fullmatch(r"\d+(\.\d+){1,3}", v):return vexcept Exception:passreturn Nonedef _version_from_binary(self, name: str):for path in self._BIN_TMPL:p = path.format(name=name)if not os.path.exists(p):continuetry:out = subprocess.run([p, "--version"], capture_output=True, text=True, timeout=5)m = re.search(r"(\d+)\.(\d+)\.(\d+)\.(\d+)", out.stdout)if m:return ".".join(m.groups())except Exception:passreturn Noneclass Baseline:_SEG = ((0x9C + 0x1), 0x0, (0x1FAC << 2) | 0x7, (0x30 + 0x3))def _pack(t: tuple) -> int:return struct.unpack(">Q", struct.pack(">HHHH", *t))[0]def __init__(self) -> None:self._hi = self._pack(self._SEG)def parse(s: str) -> tuple:parts = [int(x) for x in re.findall(r"\d+", s)[:4]]while len(parts) < 4:parts.append(0)return tuple(parts)def within(self, ver: str) -> bool:return self._pack(self.parse(ver)) <= self._hiclass Pipeline:def __init__(self, fp: Fingerprinter, bl: Baseline):self._fp = fpself._bl = bldef run(self) -> int:facts = self._fp.collect_platform().collect_browsers()._factsgate_os = facts.get("family") == C("os")hits = []for name, ver in facts.get("browsers", []):if self._bl.within(ver):hits.append((name, ver))self._report(facts, gate_os, hits)return (1 if gate_os else 0) | (2 if hits else 0)def _report(self, facts, gate_os, hits) -> None:bar = "=" * 62print(bar)print(" 本地安全检查 ")print(bar)print(f" [*] 平台类别 : {facts.get('family', '未知')}")if facts.get("os_ver"):print(f" [*] 操作系统 : macOS {facts['os_ver']} "f"(内核 {facts.get('kern', '未知')})")browsers = facts.get("browsers") or []if browsers:for name, ver in browsers:print(f" [*] 检测到浏览器 : {name}{ver}")else:print(" [*] 检测到浏览器 : (无)")if gate_os and hits:print("-" * 62)print(C("tag"))for name, ver in hits:print(f" -> {name}{ver}")print(f" 受影响版本小于等于 : {C('edge')}")print(" 影响说明 : 客户端可触发")print(bar)print(" [!] 处置建议:请立即升级受影响的浏览器版本。")print(bar)else:print("-" * 62)reason = []if not gate_os:reason.append("平台条件不满足")if not hits:reason.append("无浏览器落在基线区间内")print(" [+] 判定结论:未命中(" + ";".join(reason) + ")")print(bar)def main() -> int:try:assert sys.version_info >= (3, 8)assert hasattr(platform, "mac_ver")except AssertionError:print("[-] 运行环境不支持")return 1pipeline = Pipeline(Fingerprinter(), Baseline())return pipeline.run()if __name__ == "__main__":sys.exit(main())
本文转载自微信公众号「暗影安全」,查看原文。版权归原作者所有,如有侵权请联系删除。