其他
构建多引擎 Google dork…
在数据暴露审计、前期侦察、竞争/监管研究或内幕泄露调查中,用多引擎高级检索、Verbatim 和专用索引查找泄露文档、配置、备份、对象存储、提及和人员信息。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 55/100 ×0.15
适用场景
构建多引擎 Google dork 与高通用
解决思路
- 理解检索是在查询引擎的已抓取索引而非整个 Web;不同引擎覆盖、新鲜度和算子保真度差异巨大,不要假设查询按输入原样执行。
- 选择引擎:要主流 Web 的广泛覆盖用 Google(索引最大,但算子保真度最差)。
- 选择引擎:要可靠的 site: 枚举和 IP/主机 pivoting 用 Bing(更按字面支持算子,有 ip: 和 contains:)。
- 选择引擎:要非拉丁文字、俄语/CIS/土耳其内容或图像相邻任务用 Yandex(抓取优先级不同,图像匹配最强)。
- 选择引擎:要匿名查询或快速跳引擎用 DuckDuckGo、Startpage(代理其他索引,bang 可跳转)。
- 选择引擎:要独立爬取(三大引擎没索引到的内容)用 Mojeek、Marginalia、Brave(自有爬虫,小但不同)。
- 选择引擎:要查代码、桶、主机、档案用专用索引(通用 Web 索引从未抓取大部分此类内容)。
- 永远不要在单一引擎上只跑一个 dork;不同爬虫发现不同页面,没抓过 URL 的引擎无法用算子诱导出来。算子在哪里存活及同名算子差异见 reference/engine-operators.md。
- 使用 "exact phrase" 精确短语:这是最有用的算子,能给出最强信号,但仍可能被改写。
- 使用 site: 接受完整 host、可注册域名(匹配子域名)或 TLD(如 site:gov.uk);也可用 -site: 排除。
- 使用 filetype:(Google 文档形式);Bing 同时接受 filetype: 和 ext:;ext: 匹配 URL 扩展名而非嗅探内容类型,查 .env、.bak、.sql 时通常正是所需。
- 使用 intitle:/allintitle:、inurl:/allinurl、intext:/allintext:;all* 形式作用于后续每个词,但与其他算子混用效果差——单独使用。
- 使用 before:/after: 加 YYYY-MM-DD:按 Google 估计的文档日期过滤;该日期是推断的且常错,只能当粗筛,不是证据。
- 使用 -term 排除、OR(大写)或 | 交替、括号分组、* 作为短语内单 token 通配符。
- 避免依赖已失效/不稳定的算子:cache:、info: 已退役,link: 早已撤回,related: 不一致,inanchor: 和 AROUND(n) 从未文档化且不可预测,+ 强制包含和 ~ 同义词扩展已移除,daterange: 被 before:/after: 取代。用了它们的 dork 库会返回泛化结果而非报错。
- 强制字面匹配:读结果头;Google 在丢词时会打印 "Missing: <term>" 和 "Must include:" 链接;该链接会强制包含该词重跑。看到它说明你的 dork 没有按原样运行。
- 强制字面匹配:对每个非显而易见的 token 单独加引号,而不只是给短语加引号。
- 强制字面匹配:切换到 Verbatim 模式(Tools,然后 "All results" 下拉),它会禁用词干化、同义词、拼写纠正和个性化。不做 Verbatim 的 dork 就是猜。
- 强制字面匹配:展开重复过滤器;Google 会折叠“非常相似”的结果,并在最后一页末尾给出链接,重复搜索时包含它们。在 site: 枚举中这常使可见集合翻倍。
- 强制字面匹配:如果纠正后的拼写仍占上风,说明查询被读成导航意图;加第二个罕见 token 来打破它。
- 查找目标站外材料:大多数组织泄露物托管在别人那里,所以要扫 host,而不是只指望在目标域名上跑 dork 能抓到。扫 paste/dead-drop hosts、代码 sandbox、发布到 Web 的 office 文档、全文文档仓库、provider-owned hostnames 上的云对象存储如 s3.amazonaws.com 或 blob.core.windows.net,以及默认公开分享的第三方 SaaS——kanban boards、wikis、form backends、status pages。
- 查找目标站外材料:对 provider 做 site:,不是对 customer 做 site:。
- Discovery dorking 要在授权域名或自有资产上运行;读取搜索结果是被动的——引擎已抓取该页。取回文件、下载备份、登录发现的 panel 不是被动的,法律界线就在这里。
- 高命中率形态按大致顺序:迁移后遗留的目录列表(intitle:"index of")、按扩展名找配置和环境文件、数据库转储和备份产物、索引文本中的凭证形状字符串、provider hostname 上的对象存储、按 hostname 暴露的管理/监控界面。
- 完整集合及人员/文档搜寻查询见 reference/dork-cookbook.md。
- 引擎只索引被某处链接过的内容,所以未链接的 panel 和 bucket listing 严重 underrepresented;对 live services 用 find-exposed-servers 扫描。现在 404 的命中仍是证据:把 URL 交给 read-deleted-pages。
- 处理限速/CAPTCHA/自动化失败:检测主要不是请求速率;引擎会指纹客户端:TLS handshake 特征、header 顺序、是否执行 JavaScript、时序行为、源 IP 信誉。从未渲染 JS 的数据中心 IP 首次请求就触发检查,而住宅 IP 驱动真实浏览器以人类速度可以整天 dork。所以放慢循环常失败,而手敲同一查询可行。
- 最恶劣失败不是 CAPTCHA,而是看起来正常的降级结果集:算子被静默忽略、结果被截断、无任何提示。永远不要假设脚本查询返回了浏览器会返回的内容。
- 获准路线按偏好顺序:官方搜索 API(引擎出售时):在条款内,但有配额,且常与消费者 UI 不对等,因为 API 的索引和排名常是不同产品。
- 获准路线:商业 SERP provider:运行代理基础设施并返回结构化结果——付费,且仍在某方条款下抓取。
- 获准路线:自己的 SearXNG 实例:归一化跨引擎结果;绝不要用公共实例,否则继承陌生人的限速信誉并把 selectors 交给其运营者。
- 获准路线:在浏览器中手动操作;真实调查所需的 20 到 50 条查询,手动通常胜过构建自动化。
- 不要轮换 IP 逃避检测:那是规避技术访问控制,与 scraping 的法律立场有本质区别,超出范围。查询本身也会被记录且可归因,所以按 investigate-without-getting-made 将敏感 selectors 通过不记录日志的引擎或隔离环境路由。
- 专用索引:代码搜索——GitHub code search 覆盖公开仓库;grep.app 和 searchcode 跨主机索引。搜索内部 hostname、key prefix 和目标 email domain,而不是目标名称。见 secrets-in-git-history。
- 专用索引:云存储索引——Grayhat Warfare 等 bucket 索引枚举的开放对象存储远多于引擎能触达的,因为 listing 页很少被链接到可抓取处。
- 专用索引:文档仓库——Scribd、Issuu、SlideShare、DocumentCloud 和学术聚合器对上传做全文索引,可暴露埋在 PDF 中、目标自己域名上不出现的公司名。
- 专用索引:Raw-HTML 索引——Publicwww 等搜索页面源码,可 pivot 到 analytics IDs 和 tag-manager containers。共享 tracker ID 比共享 IP 更适合作为共同所有证据:一个账号配置了两者。
- 专用索引:档案索引——Wayback CDX API 和 Common Crawl index 是可查询的 URL 语料而非排名搜索,枚举爬虫观察到的路径,包括早已移除的路径(read-deleted-pages)。扫描器索引 host 而非 page(find-exposed-servers);泄露语料见 find-leaks-in-the-wild。
- 避免常见错误:你输入的查询不是实际运行的查询;词干化、同义词、拼写纠正和丢词是默认行为,没有 Verbatim,空结果没有意义。
- 避免常见错误:零结果只意味着一个索引说没有——这是关于该引擎抓取和算子支持的陈述,不是关于 Web 的。要断言不存在,需要三个引擎加一个 archive 后才记录。
- 避免常见错误:site: 从不会完整枚举。Google 强截断和去重,Bing 更深,两者都不穷尽。结果数量是估计值,不可引用;需要真实数量就翻到最后一页。
- 避免常见错误:索引是过时镜像。命中描述的是抓取时的页面;实时页面可能不同或已消失,snippet 可能是唯一存留副本。对照 live URL 验证并立即 archive。
- 避免常见错误:before:/after: 过滤的是推断日期。CMS 驱动的站点在渲染时会重打时间戳。绝不要用它确定发布时间。
- 避免常见错误:个性化和地理会改变结果。两名调查者跑相同 dork 得到不同页面,所以记录 engine、query 和 date。
- 避免常见错误:复制的 dork 库会无声腐烂。退役算子会变成搜索词而非报错,所以查询返回看似合理的泛化结果,你永远不会注意到过滤器已停止生效。
- 避免常见错误:cloaking 和 index poisoning。爬虫可能被提供与用户不同的内容,SEO 垃圾把目标名称播种到无关页面。提到不等于有关系。
- 置信度分级:Confirmed——取回 live document 或其 archived capture,读过,内容直接陈述事实,且 metadata 或 host 佐证来源。
- 置信度分级:Probable——在权威 host 上出现独特 exact-match 字符串,或同一事实来自两个独立 crawl。打不开的 snippet 最多只能算 probable。
- 置信度分级:Unconfirmed——仅有 snippet;命中在转载他人内容的站点;常见词匹配;任何来自未在 Verbatim 运行的查询的结果。
- 置信度分级:Rejected——仅在非 Verbatim 下存活的匹配,或页面内容是机器生成 name-scraping 的提及。
- 引用 URL、engine、query string 和 retrieval date。没人能复跑的结果不是证据。
- 工作示例:目标是为供应商尽职调查档案识别 Example Corp 中谁负责采购;官网董事会以下不列姓名。
- 工作示例:在 Verbatim 中运行 `site:example.com filetype:pdf procurement` 返回四份文档。其中一份 supplier onboarding pack 的 PDF 属性带作者字符串 `m.okafor`,以及部门网络共享下的模板路径——从一份正文未提人名的文档中得到两个新 selectors。
- 工作示例:死路 `"m.okafor" site:linkedin.com/in` 无结果,裸 handle 也无结果。说明没有 profile,或未被索引。
- 工作示例:改写成 email 形状有效。`"m.okafor@example.com"` 命中无关域名上的公开 mailing-list archive,同一人用全名和职位签名了一个技术问题。对目标 host 做 Bing `ext:xlsx` 扫描后找到 supplier register,佐证角色。
- 工作示例:分级:role confirmed,基于两份取回并读过的文档。Identity probable——handle 到 name 的映射只依赖一篇自签名帖子。
- Pivots:用 filetype: 找到的文档文件 -> secrets-in-file-metadata。
- Pivots:索引 URL 中的 hostname 和 subdomain -> find-hidden-subdomains、who-owns-this-domain。
- Pivots:命中背后的 live services 和 buckets -> find-exposed-servers。
- Pivots:repositories、gists、key prefixes -> secrets-in-git-history。
- Pivots:索引文本中的 handle 和 username -> hunt-a-handle。
- Pivots:从文档收集的 email addresses -> what-an-email-reveals。
- Pivots:staff pages 中的 names and roles -> find-anyone、x-ray-a-company。
- Pivots:paste-host hits 和 leaked selectors -> find-leaks-in-the-wild。
- Pivots:现在 404 的任何结果 -> read-deleted-pages。
- Pivots:由此得到的 hosts 和 identities 集群 -> graph-the-network。
- 法律/ToS:自动查询违反所有主要引擎条款。这是合同问题,通常后果是封禁;但通过轮换 IP 或程序化解决 CAPTCHA 来击败封禁是规避技术访问控制,在多个司法辖区是更严重的问题。
- 法律/ToS:发现暴露文件不授予取回授权。结果是公开的;背后的文件仍可能受计算机滥用法保护,且 "it was in Google" 作为抗辩已失败。在授权评估内,记录它,不要 exfiltrate,按约定渠道报告。在授权外,通知运营方或国家 CERT 并停止。
- 法律/ToS:被索引的个人数据仍是个人数据——搜索不洗白它。De-indexing 请求也会让材料在欧洲结果集中故意缺失而在其他地方存在,所以下结论说东西没了之前要比较地区。按 ../../ETHICS.md 最小化。
适用边界 · 注意事项
- 未经授权不要运行 discovery dorking,也不要下载、取回或登录发现的暴露文件;读取搜索结果是被动的,取回文件不是。
- 不要依赖单一引擎的零结果或结果计数,也不要用非 Verbatim、废弃算子或推断日期作为证据。
- 不要用轮换 IP 或程序化解决 CAPTCHA 规避访问控制;不要在公共 SearXNG 上跑敏感 selectors。