google-like-a-spy

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Search operators

搜索操作符

Operators turn a search box into a filter over a crawled index. The cost is that you are querying somebody's index, not the web — coverage, freshness and operator fidelity vary enormously between engines. The mistake beginners make is assuming their query ran as typed. Google routinely drops, stems, and synonym-expands your terms, so a zero-result dork and a silently-rewritten dork look nothing alike but are equally useless.
搜索操作符可将搜索框转变为针对已抓取索引的筛选工具。但代价是你查询的是某平台的索引,而非整个网络——不同搜索引擎的覆盖范围、内容新鲜度以及操作符的准确性差异极大。初学者常犯的错误是认为查询会完全按照输入的内容执行。Google通常会丢弃、词干提取或同义词扩展你的搜索词,因此无结果的dork和被悄悄改写的dork看起来完全不同,但同样毫无用处。

Which engine for which job

不同引擎的适用场景

You wantGo toWhy
Broad coverage of mainstream webGoogleLargest index, worst operator fidelity
Reliable
site:
enumeration, IP/host pivots
BingHonours operators more literally; has
ip:
and
contains:
Non-Latin script, Russian/CIS/Turkish content, image-adjacent workYandexDifferent crawl priorities; strongest image matching
Anonymous querying, quick engine-hoppingDuckDuckGo, StartpageProxies other indexes; bangs jump between engines
Independent crawl (things the big three never indexed)Mojeek, Marginalia, BraveOwn crawlers, small but genuinely different
Code, buckets, hosts, archivesSpecialised indexesThe general web index never crawled most of it
Never run a dork on one engine only. Different crawlers found different pages, and an engine that never crawled a URL cannot be operator-coaxed into it. Which operator survives where, and where the same operator means something different, is in reference/engine-operators.md.
需求选择引擎原因
主流网络的广泛覆盖Google索引规模最大,但操作符准确性最差
可靠的
site:
枚举、IP/主机跳转
Bing更严格地遵循操作符规则;支持
ip:
contains:
非拉丁脚本、俄罗斯/独联体/土耳其内容、图像相关工作Yandex抓取优先级不同;图像匹配能力最强
匿名查询、快速切换引擎DuckDuckGo、Startpage代理其他索引;通过bang语法可在引擎间跳转
独立抓取(三大引擎未索引的内容)Mojeek、Marginalia、Brave拥有自有爬虫,规模小但内容独特
代码、存储桶、主机、归档内容专业索引通用网络索引几乎未抓取这类内容的大部分
切勿仅在一个引擎上运行dork查询。不同爬虫抓取的页面不同,引擎未抓取的URL无法通过操作符诱导出来。各引擎支持的操作符以及同一操作符的差异说明,请查看reference/engine-operators.md

Operators that still behave

仍有效可用的操作符

  • "exact phrase"
    — the single most useful operator. Still subject to rewriting (see below), but the strongest signal you can give.
  • site:
    — accepts a full host, a registrable domain (matches subdomains), or a TLD (
    site:gov.uk
    ). Also usable as
    -site:
    to exclude.
  • filetype:
    — Google's documented form. Bing accepts both
    filetype:
    and
    ext:
    ;
    ext:
    matches the URL extension rather than the sniffed content type, which is what you usually want for
    .env
    ,
    .bak
    ,
    .sql
    .
  • intitle:
    /
    allintitle:
    ,
    inurl:
    /
    allinurl:
    ,
    intext:
    /
    allintext:
    . The
    all*
    forms apply to every following term but do not mix well with other operators — use them alone.
  • before:
    /
    after:
    with
    YYYY-MM-DD
    — filters on Google's estimated document date, which is inferred and often wrong. A coarse sieve, not evidence.
  • -term
    to exclude,
    OR
    (capitalised) or
    |
    for alternation, parentheses to group,
    *
    as a single-token wildcard inside a phrase.
  • "exact phrase"
    — 最实用的操作符。仍可能被改写(见下文),但能提供最强的匹配信号。
  • site:
    — 支持完整主机名、可注册域名(匹配子域名)或顶级域名(如
    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
    |
    用于表示或关系,括号用于分组,
    *
    作为短语内的单令牌通配符。

Operators people still cite that no longer earn their place

仍被提及但已失效的操作符

cache:
and
info:
were retired,
link:
was withdrawn long ago and any residual behaviour is noise, and
related:
is inconsistent.
inanchor:
and
AROUND(n)
were never documented and behave unpredictably.
+
for forced inclusion and
~
for synonym expansion were removed outright, quotes replacing the former, and
daterange:
was superseded by
before:
/
after:
. A dork library using these returns general results, not an error.
cache:
info:
已被停用,
link:
早已被移除,剩余的任何相关行为都属于干扰信号,
related:
的表现不一致。
inanchor:
AROUND(n)
从未被官方文档记录,行为不可预测。用于强制包含术语的
+
和用于同义词扩展的
~
已被彻底移除,前者由引号替代,
daterange:
已被
before:
/
after:
取代。使用这些操作符的dork库只会返回通用结果,不会报错。

Forcing literal matching

强制精确匹配

Google's retrieval layer is a semantic matcher with a keyword filter bolted on. It will drop a term it judges unproductive, substitute a synonym, or correct what it thinks is a typo — which is exactly what you do not want when hunting a username or an error string.
  1. Read the result header. Google prints "Missing:
    <term>
    " with a "Must include:" link when it dropped something. That link re-runs with the term forced. If you see this, your dork did not run.
  2. Quote every non-obvious token individually, not just the phrase.
  3. Switch to Verbatim mode (Tools, then the "All results" dropdown), which disables stemming, synonyms, spell correction and personalisation. Dorking without it is guesswork.
  4. Expand the duplicate filter. Google collapses "very similar" results and offers a link at the end of the last page to repeat the search including them. On a
    site:
    enumeration this commonly doubles the visible set.
  5. If the corrected spelling still wins, the query was read as navigational intent. Add a second rare token to break that.
Google的检索层是一个带有关键词过滤器的语义匹配器。它会丢弃被判定为无效的术语、替换同义词或纠正它认为的拼写错误——而这正是你在查找用户名或错误字符串时最不希望发生的情况。
  1. 查看结果标题。当Google丢弃某个术语时,会显示“Missing:
    <term>
    ”并附带“必须包含:”链接,点击该链接会重新运行强制包含该术语的查询。如果看到此提示,说明你的dork并未按预期执行。
  2. 为每个非通用令牌单独添加引号,而不仅仅是对整个短语加引号。
  3. 切换到Verbatim模式(工具菜单,然后选择“所有结果”下拉菜单),该模式会禁用词干提取、同义词替换、拼写纠正和个性化推荐。不使用此模式进行dork查询纯属猜测。
  4. 展开重复结果过滤器。Google会折叠“非常相似”的结果,并在最后一页末尾提供链接,点击可重新运行搜索并包含这些结果。在
    site:
    枚举中,这通常会使可见结果数量翻倍。
  5. 如果修正后的拼写仍被优先采用,说明查询被识别为导航意图。添加第二个罕见令牌来打破这种识别。

Finding a target's material outside its own site

查找目标站点外的相关内容

Most of what an organisation leaks is hosted by someone else, so sweep the hosts rather than hoping a dork on the target domain catches it: paste and dead-drop hosts, code sandboxes, published-to-web office documents, full-text document repositories, cloud object storage on provider-owned hostnames such as
s3.amazonaws.com
or
blob.core.windows.net
, and third-party SaaS with public sharing defaults — kanban boards, wikis, form backends, status pages.
site:
the provider, not the customer.
组织泄露的大部分内容都托管在第三方平台,因此应针对这些托管平台进行排查,而非仅依赖目标域名的dork查询:粘贴站点和临时存储主机、代码沙箱、发布到网络的办公文档、全文文档库、位于服务商自有主机名(如
s3.amazonaws.com
blob.core.windows.net
)的云对象存储,以及默认开启公开分享的第三方SaaS服务——看板、维基、表单后端、状态页面。使用
site:
指定服务商,而非客户域名。

Discovery dorking, defensively framed

防御视角的发现型Dork查询

Run these against domains you are authorised to assess, or your own estate. Reading a search result is passive — the engine already crawled the page. Fetching the file, downloading the backup, or logging into the panel you found is not, and that is where the legal line sits.
The high-yield shapes, in rough order of hit rate: directory listings left on after a migration (
intitle:"index of"
), config and environment files by extension, database dumps and backup artefacts, credential-shaped strings in indexed text, object storage on provider hostnames, and admin or monitoring interfaces exposed by hostname. The full set, with the person- and document-hunting queries, is in reference/dork-cookbook.md.
Engines only index what something linked to, so unlinked panels and bucket listings are badly under-represented — for live services scan with
find-exposed-servers
. A hit that now 404s is still evidence: take the URL to
read-deleted-pages
.
仅针对你被授权评估的域名或自有资产运行这些查询。查看搜索结果属于被动行为——引擎已抓取过该页面。但获取文件、下载备份或登录你发现的面板则不属于被动行为,这正是法律边界所在。
高收益的查询类型,按命中率排序:迁移后遗留的目录列表(
intitle:"index of"
)、按扩展名查找配置和环境文件、数据库转储和备份文件、索引文本中类似凭据的字符串、服务商主机名下的对象存储、通过主机名暴露的管理或监控界面。完整的查询集合以及针对人员和文档的查询,请查看reference/dork-cookbook.md
引擎仅索引被链接过的内容,因此未被链接的面板和存储桶列表的索引覆盖率极低——针对实时服务,请使用
find-exposed-servers
进行扫描。已返回404的结果仍可作为证据:将URL传入
read-deleted-pages
进行查看。

Rate limits, CAPTCHAs, and why automation breaks

速率限制、验证码与自动化失效原因

Detection is not primarily about request rate. Engines fingerprint the client: TLS handshake characteristics, header ordering, whether JavaScript executed, timing behaviour, and the reputation of the source IP. A datacentre IP that has never rendered JavaScript trips the check on its first request, while a residential IP driving a real browser at human pace can dork all day. That is why slowing your loop down often fails when hand-typing the same query works.
The nastiest failure is not the CAPTCHA but a degraded result set that looks normal: operators silently ignored, results truncated, no indication. Never assume a scripted query returned what the browser would.
Sanctioned routes, in preference order. Official search APIs where an engine sells one: within terms, but expect quotas and no parity with the consumer UI, because the API's index and ranking are frequently a different product. Commercial SERP providers, which run the proxy infrastructure and return structured results — paid, and still scraping under someone's terms. Your own SearXNG instance, which normalises results across engines; never a public one, where you inherit strangers' rate-limit reputation and hand your selectors to its operator. And by hand in a browser, which for the twenty to fifty queries a real investigation needs beats building the automation.
Rotating IPs to evade detection is circumvention of a technical access control — a materially different legal posture from scraping, and out of bounds here. The query itself is also logged and attributable, so route sensitive selectors through a non-logging engine or an isolated environment, per
investigate-without-getting-made
.
检测机制主要并非基于请求速率。引擎会对客户端进行指纹识别:TLS握手特征、头信息顺序、是否执行JavaScript、时序行为以及源IP的信誉。从未执行过JavaScript的数据中心IP会在首次请求时触发检测,而使用真实浏览器以人类速度操作的住宅IP则可全天进行dork查询。这就是为什么减慢循环速度通常无效,但手动输入相同查询却能成功的原因。
最棘手的失效并非验证码,而是看似正常的降级结果集:操作符被悄悄忽略、结果被截断且无任何提示。切勿假设脚本化查询返回的结果与浏览器一致。
推荐的合规途径,按优先级排序:官方搜索API(若引擎提供付费服务):需遵守使用条款,但配额有限,且与消费者UI的结果不一致,因为API的索引和排名通常是独立产品。商业SERP提供商:运行代理基础设施并返回结构化结果——需付费,且仍在他人条款下进行抓取。自有SearXNG实例:标准化跨引擎的结果;切勿使用公共实例,否则你会继承他人的速率限制信誉,并将选择器暴露给实例运营商。手动在浏览器中操作:对于实际调查所需的20至50次查询,手动操作比构建自动化工具更高效。
通过轮换IP规避检测属于规避技术访问控制——这与抓取的法律立场截然不同,且不在本文讨论范围内。查询本身也会被记录并可追溯,因此请通过无日志引擎或隔离环境处理敏感选择器,具体参考
investigate-without-getting-made

Specialised indexes

专业索引

Each of these ingests a different corpus and answers a question Google cannot.
  • Code search. GitHub code search covers public repos; grep.app and searchcode index across hosts. Search internal hostnames, key prefixes and the target's email domain, not its name. See
    secrets-in-git-history
    .
  • Cloud storage indexes. Bucket indexes such as Grayhat Warfare enumerate far more open object storage than engines reach, because listing pages are rarely linked from anywhere crawlable.
  • Document repositories. Scribd, Issuu, SlideShare, DocumentCloud and the academic aggregators full-text index uploads, surfacing a company name buried in a PDF that appears nowhere on its own domain.
  • Raw-HTML indexes. Publicwww and similar search page source, letting you pivot on analytics IDs and tag-manager containers. A shared tracker ID beats a shared IP as co-ownership evidence: one account configured both.
  • Archive indexes. The Wayback CDX API and Common Crawl index are queryable URL corpora rather than ranked search, enumerating paths a crawler observed including long-removed ones (
    read-deleted-pages
    ). Scanners index hosts, not pages (
    find-exposed-servers
    ); leak corpora,
    find-leaks-in-the-wild
    .
以下每个索引都针对不同的语料库,可回答Google无法解答的问题。
  • 代码搜索:GitHub代码搜索覆盖公共仓库;grep.app和searchcode跨主机索引代码。搜索内部主机名、密钥前缀和目标邮箱域名,而非目标名称。请查看
    secrets-in-git-history
  • 云存储索引:Grayhat Warfare等存储桶索引枚举的开放对象存储远多于普通引擎,因为列表页面很少被可抓取的内容链接。
  • 文档库:Scribd、Issuu、SlideShare、DocumentCloud以及学术聚合器对上传内容进行全文索引,可发现嵌入在PDF中的公司名称,而该名称在目标自有域名上无处可寻。
  • 原始HTML索引:Publicwww及类似工具搜索页面源代码,可通过分析ID和标签管理器容器进行关联分析。共享跟踪器ID作为共同所有权的证据比共享IP更可靠:说明同一账户配置了两者。
  • 归档索引:Wayback CDX API和Common Crawl索引是可查询的URL语料库,而非排名搜索,可枚举爬虫观察到的路径,包括已删除的旧路径(
    read-deleted-pages
    )。扫描工具索引主机而非页面(
    find-exposed-servers
    );泄露语料库请查看
    find-leaks-in-the-wild

Where this goes wrong

常见误区

  • The query you typed is not the query that ran. Stemming, synonyms, spell correction and term dropping are the default; without Verbatim a null result is meaningless.
  • Zero results means one index said no — a statement about that engine's crawl and operator support, not about the web. Absence needs three engines and an archive before you write it down.
  • site:
    never enumerates completely.
    Google truncates and deduplicates hard, Bing goes deeper, neither is exhaustive. Result counts are estimates you may never quote — page to the end if you need a real one.
  • The index is a stale mirror. A hit describes the page at crawl time; the live page may differ or be gone, and the snippet may be the only surviving copy. Verify against the live URL and archive it immediately.
  • before:
    /
    after:
    filters an inferred date.
    CMS-driven sites restamp pages on render. Never use it to establish when something was published.
  • Personalisation and geography change results. Two investigators running an identical dork get different pages, so record engine, query and date.
  • Copied dork libraries rot silently. A retired operator becomes a search term rather than an error, so the query returns plausible general results and you never notice the filter stopped applying.
  • Cloaking and index poisoning. Crawlers can be served different content than users, and SEO spam seeds a target's name into unrelated pages. A mention is not a relationship.
  • 输入的查询与实际执行的查询不一致:词干提取、同义词替换、拼写纠正和术语丢弃是默认行为;不使用Verbatim模式的话,无结果的查询毫无意义。
  • 无结果仅代表该引擎索引中不存在——这是关于该引擎抓取范围和操作符支持的结论,而非整个网络的情况。需经过三个引擎和一个归档索引验证后,才能判定内容不存在。
  • site:
    无法完成完整枚举
    :Google会严格截断和去重,Bing的枚举深度更深,但两者都无法做到 exhaustive。结果数量为估算值,切勿引用——如需准确数量,请翻至最后一页。
  • 索引是过时的镜像:搜索结果描述的是抓取时的页面状态;实时页面可能已更改或消失,而搜索摘要可能是唯一留存的副本。请与实时URL进行验证并立即归档。
  • before:
    /
    after:
    筛选的是推断日期
    :CMS驱动的站点会在渲染时重新标记页面日期。切勿用它来确定内容的发布时间。
  • 个性化设置和地理位置会改变结果:两名调查人员运行相同的dork查询可能得到不同页面,因此请记录引擎、查询语句和日期。
  • 复制的dork库会无声失效:已停用的操作符会变成普通搜索词,而非报错,因此查询会返回看似合理的通用结果,而你不会注意到筛选条件已失效。
  • 内容 cloaking 和索引投毒:爬虫可能会收到与用户不同的内容,SEO垃圾信息会将目标名称植入无关页面。提及并不代表存在关联。

Confidence grading

置信度分级

  • Confirmed — you retrieved the live document or its archived capture, read it, and its content states the fact directly, with its metadata or host corroborating origin.
  • Probable — a distinctive exact-match string on an authoritative host, or the same fact from two independent crawls. A snippet you could not open is at best probable.
  • Unconfirmed — a snippet only; a hit on a site that republishes others' content; a common-word match; anything from a query not run in Verbatim.
  • Rejected — a match that survives only without Verbatim, or a mention on a page whose content is machine-generated name-scraping.
Cite URL, engine, query string and retrieval date. A result nobody can re-run is not evidence.
  • 已确认——你获取了实时文档或其归档副本,阅读后确认内容直接陈述事实,且元数据或主机信息佐证其来源。
  • 大概率——在权威主机上发现独特的精确匹配字符串,或两个独立爬虫返回相同事实。无法打开的搜索摘要最多只能归为此类。
  • 未确认——仅为搜索摘要;在转载他人内容的站点上发现匹配;通用词汇匹配;未使用Verbatim模式运行的查询结果。
  • 已排除——仅在未使用Verbatim模式时存在匹配,或在机器生成的姓名抓取页面上发现提及。
请引用URL、引擎、查询字符串和检索日期。无法被他人重现的结果不能作为证据。

Worked example

实战示例

Objective: identify who handles procurement at Example Corp, for a supplier due-diligence file. The website lists no names below board level.
site:example.com filetype:pdf procurement
in Verbatim returns four documents. One is a supplier onboarding pack whose PDF properties carry an author string,
m.okafor
, and a template path under a departmental network share — two new selectors out of a document that names nobody in its body.
The dead end:
"m.okafor" site:linkedin.com/in
returns nothing, and neither does the bare handle. No profile, or not in the index.
Rewriting to the email shape works.
"m.okafor@example.com"
hits a public mailing-list archive on an unrelated domain, where the same person signed a technical question with a full name and job title. A Bing
ext:xlsx
sweep of the target host then surfaces a supplier register corroborating the role.
Grade: role confirmed, on two documents both retrieved and read. Identity probable — the handle-to-name mapping rests on one self-signed post.
目标:为供应商尽职调查文件确定Example Corp的采购负责人。该网站未列出董事会以下人员的姓名。
在Verbatim模式下运行
site:example.com filetype:pdf procurement
返回四个文档。其中一个是供应商入职包,其PDF属性包含作者字符串
m.okafor
和部门网络共享下的模板路径——文档正文中未提及任何人名,但却得到了两个新的选择器。
死胡同:
"m.okafor" site:linkedin.com/in
无结果,仅搜索用户名也无结果。说明该用户无公开资料,或未被索引。
改写为邮箱格式后成功。
"m.okafor@example.com"
在一个无关域名的公开邮件列表归档中命中,同一人在技术问题回复中签署了全名和职位。随后在Bing上对目标主机运行
ext:xlsx
扫描,发现了一份供应商登记表,证实了该职位。
分级:职位已确认,基于两份已获取并阅读的文档。身份大概率——用户名与姓名的映射仅基于一份自我签署的帖子。

Pivots

关联拓展

New selectorGoes to
Document files found by
filetype:
secrets-in-file-metadata
Hostnames and subdomains in indexed URLs
find-hidden-subdomains
,
who-owns-this-domain
Live services and buckets behind a hit
find-exposed-servers
Repositories, gists, key prefixes
secrets-in-git-history
Handles and usernames in indexed text
hunt-a-handle
Email addresses harvested from documents
what-an-email-reveals
Names and roles from staff pages
find-anyone
,
x-ray-a-company
Paste-host hits and leaked selectors
find-leaks-in-the-wild
Any result that now 404s
read-deleted-pages
The resulting cluster of hosts and identities
graph-the-network
新选择器对应操作
通过
filetype:
找到的文档文件
secrets-in-file-metadata
索引URL中的主机名和子域名
find-hidden-subdomains
,
who-owns-this-domain
结果背后的实时服务和存储桶
find-exposed-servers
代码仓库、Gist、密钥前缀
secrets-in-git-history
索引文本中的句柄和用户名
hunt-a-handle
从文档中提取的邮箱地址
what-an-email-reveals
员工页面中的姓名和职位
find-anyone
,
x-ray-a-company
粘贴站点命中结果和泄露的选择器
find-leaks-in-the-wild
已返回404的结果
read-deleted-pages
得到的主机和身份集群
graph-the-network

Legal and ToS notes

法律与服务条款说明

Automated querying breaches the terms of every major engine. That is a contract matter and the usual consequence is a block — but defeating those blocks by rotating IPs or solving CAPTCHAs programmatically is circumvention of a technical access control, a more serious question in several jurisdictions.
Finding an exposed file confers no authorization to retrieve it. The result is public; the file behind it may still be a protected computer under computer-misuse law, and "it was in Google" has failed as a defence. Inside an authorized assessment, document it, do not exfiltrate it, report through the agreed channel. Outside one, notify the operator or a national CERT and stop.
Indexed personal data is still personal data — search does not launder it. De-indexing requests also make material deliberately absent from European result sets while present elsewhere, so compare regions before concluding anything is gone. Minimise per ../../ETHICS.md.
自动化查询违反所有主流引擎的服务条款。这属于合同问题,通常的后果是被封禁——但通过轮换IP或程序化破解验证码来绕过封禁属于规避技术访问控制,在多个司法管辖区属于更严重的问题。
发现暴露的文件并不意味着你有权获取它。搜索结果是公开的,但背后的文件仍可能受计算机滥用法律保护,“它在Google上”的辩护已被法院驳回。在未授权评估中,请仅记录发现,不要泄露内容,并通过约定渠道上报。在未授权评估外,请通知运营商或国家CERT并停止操作。
已索引的个人数据仍属于个人数据——搜索不会使其合法化。删除索引请求会导致内容在欧洲结果集中故意消失,但在其他地区仍存在,因此在判定内容已消失前,请对比不同地区的结果。请遵循../../ETHICS.md中的最小化原则。