利用Google和Github进行信息收集

渗透测试信息收集语法大全

一、Google Hacking搜索语法

1. 基础语法

语法 说明 示例 用途
site:example.com 限定域名搜索 site:edu.cn filetype:pdf 定位特定站点资源
inurl:keyword URL包含关键词 inurl:admin/login 查找管理路径
intitle:"标题词" 标题包含关键词 intitle:"后台管理" 定位特定类型页面
intext:"内容词" 正文包含关键词 intext:"数据库密码" 查找敏感信息
filetype:扩展名 指定文件类型 filetype:sql 查找特定类型文件
cache:url 查看缓存页面 cache:https://example.com 访问已删除内容
link:example.com 查找指向该域名的链接 link:baidu.com 分析网站外链
related:example.com 查找相似网站 related:github.com 扩展搜索范围

2. 高级组合语法

场景1:查找数据库备份

site:target.com filetype:sql "INSERT INTO users"
  • 解释:限定站点+只搜SQL文件+包含用户表插入语句
  • 预期:找到包含用户名/密码的数据库文件

场景2:寻找后台登录页面

intitle:"管理系统" inurl:login site:com.cn
  • 解释:中文标题+URL含”login”+国内商业域名
  • 预期:定位网站后台入口

场景3:查找配置文件泄露

filetype:env DB_PASSWORD site:example.com
  • 解释:环境变量文件+包含数据库密码+目标站点
  • 预期:找到含DB_PASSWORD=xxx的配置文件

场景4:寻找源码备份

site:target.com filetype:zip "backup" OR "wwwroot"
  • 解释:限定站点+zip文件+包含”backup”或”wwwroot”
  • 预期:找到网站源码压缩包

3. 实用搜索模板

信息收集类

  • 子域名发现site:*.target.com
  • 敏感目录inurl:"/admin/" OR inurl:"/manage/" OR inurl:"/backstage/"
  • 测试页面inurl:"test.php" OR inurl:"debug.php" site:target.com

漏洞探测类

  • 文件包含inurl:"?file=" OR inurl:"?page=" site:target.com
  • 命令执行inurl:"?cmd=" OR inurl:"?exec=" site:target.com
  • SQL注入inurl:"?id=" OR inurl:"?name=" site:target.com

内容泄露类

  • WordPress后台site:target.com inurl:"wp-login.php"
  • phpMyAdminsite:target.com inurl:"phpmyadmin"
  • 临时文件filetype:tmp OR filetype:bak site:target.com
  • 服务器配置inurl:"httpd.conf" OR inurl:"nginx.conf" site:target.com

二、GitHub信息泄露搜索语法

1. 基本语法

语法 说明 示例 用途
path:pattern 文件路径匹配 path:*.env 查找特定路径文件
filename:name 文件名匹配 filename:config.js 定位配置文件
extension:ext 文件扩展名匹配 extension:env 查找特定类型文件
language:lang 限定编程语言 language:python 筛选特定语言代码
repo:username/repo 限定仓库 repo:defunkt/gists 在特定仓库搜索

2. 高级搜索模式

GitHub搜索支持组合查询,语法结构:

(条件1) AND (条件2) AND ... (条件N)

通用敏感信息搜索模板

(path:*.{常见扩展名} OR filename:*.{常见文件名}) AND ({敏感关键词})

常见扩展名

xml,json,properties,sql,txt,log,tmp,backup,bak,
enc,yml,yaml,toml,ini,config,conf,cfg,env,envrc,
prod,secret,private,key

常见敏感关键词

password,secret,key,token,api_key,access_key,
db_password,db_user,client_id,client_secret

3. 实战示例

示例1:查找GitHub上的数据库凭证

(path:*.env OR path:*.config OR path:*.ini) AND (mysql OR postgres OR mongodb) AND (user= OR password= OR dbname=)

示例2:查找API密钥(以OpenAI为例)

(path:*.{env,json,py} OR filename:openai.*) AND ("sk-" OR "openai_api_key") AND (openai OR gpt)

示例3:查找GitHub Token

(path:*.{env,sh,py} OR filename:github.*) AND ("ghp_" OR "gho_" OR "ghu_") AND github

示例4:查找SSH私钥

filename:id_rsa OR filename:id_dsa OR filename:*.pem

示例5:查找特定公司敏感信息

"公司名" AND (password OR secret OR key OR token) AND (path:src OR path:config OR path:.env)

三、实用搜索示例详解

1. 查找GitHub上的AWS密钥

(path:*.{properties,yml,yaml,env,json,java,py} OR filename:credentials OR filename:aws.*) 
AND ("AKIA" OR "aws_access_key_id" OR "aws_secret_access_key")

预期结果

aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

2. 查找GitHub上的数据库连接字符串

(path:*.{config,env,yml} OR filename:database.*) 
AND (mysql:// OR postgresql:// OR mongodb://)
AND (user= OR password= OR dbname=)

预期结果

DATABASE_URL = "mysql://user:password@host:port/dbname"

3. 查找GitHub上的Slack Bot Token

(path:*.{env,json,js} OR filename:slack.*) 
AND ("xoxb-" OR "xoxp-" OR "xoxa-")
AND slack

预期结果

SLACK_BOT_TOKEN = "xoxb-1234567890-0987654321-abcdefghijklmnop"

4. 查找GitHub上的私钥文件

(filename:id_rsa OR filename:id_rsa.pub OR filename:id_dsa OR filename:id_dsa.pub OR filename:*.pem) 
AND "-----BEGIN"
AND ("RSA PRIVATE KEY" OR "DSA PRIVATE KEY" OR "EC PRIVATE KEY")

预期结果

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA1234567890...
-----END RSA PRIVATE KEY-----

四、使用建议

  1. 组合使用:将多个条件用AND连接,提高搜索精度
  2. 精确匹配:对关键词使用双引号,如"password"确保精确匹配
  3. 排除干扰:使用-排除不需要的结果,如-test -example
  4. 语言过滤:使用language:限定代码语言,减少无关结果
  5. 定期搜索:对目标组织定期搜索,发现新泄露的敏感信息

五、防御建议

  • 永远不要将敏感信息(API密钥、密码等)提交到代码仓库
  • 使用.gitignore文件排除敏感文件
  • 使用环境变量管理敏感配置,而非硬编码
  • 定期审计代码仓库,查找潜在泄露
  • 考虑使用专门的密钥管理服务

附录:常用文件扩展名列表

# 配置文件
env, ini, conf, config, properties, yml, yaml, toml

# 代码文件
py, js, java, php, rb, go, c, cpp, cs

# 数据文件
json, xml, sql, bak, backup, csv, txt

# 密钥文件
key, pem, cert, crt, p12, der

附录:常见敏感关键词列表

# 认证相关
password, passwd, pwd, secret, key, token, credentials, auth, session

# 数据库连接
db_, database, mysql, postgres, mongo, connection, host, port, user, pass

# 云服务
aws, azure, gcp, access_key, secret_key, api_key, account_id

# API相关
api_key, client_id, client_secret, access_token, refresh_token

# 系统相关
private_key, public_key, ssh, ftp, smtp, credentials, config