本文章借鉴某位大佬博客

Google Hacking基本语法

intext : 将返回所有在网页正文部分包含关键词的网页

intitle : 将返回所有网页标题中包含关键词的网页

cache : 搜索google里关于某些内容的缓存

define : 搜索某个词语的定义

filetype : 搜索指定的文件类型,如:.bak,.mdb,.inc等

info : 查找指定站点的一些基本信息

inurl : 搜索我们指定的字符是否存在于URL中

Link : link:xx.com可以返回所有和xx.com做了链接的URL

site : site:xx.com将返回所有和这个站有关的URL

+ : 把google可能忽略的字列如查询范围

- : 把某个字忽略,例子:新加 -坡

~ : 同意词

. : 单一的通配符

* : 通配符,可代表多个字母

“” : 精确查询

需要注意

Google查询是不区分大小写的(除布尔操作符OR,OR在表示布尔含义时一定要大写)

Google通配符 (*仅代表搜索词组中的一个词。在一个词的开始或结尾使用星号和直接使用这个单词的效果相同)

短语搜索要带上单引号32个单词的限制;(如一串英文单词,如果用*部分替换单词,可以扩展搜索单词的数量)

最常用的:”关键字” ,双引号会使Google强制搜索包含关键字的内容
+和“”: +后面关键字;”关键字” (+后面不能有空格),双引号会使Google强制搜索包含关键字的内容

NOT 和 – : 从查询中忽略一个单词,-后不能跟空格

OR 和 | :查找搜索中的一个或另外一个关键字;在google处理搜索查询中,运算符之间没有优先级,一律从左往右

.句号可以匹配任意字符入侵需要用到的Google Hacking语法

文件类

目录列表的查找

目录列表能列出存在于一个web服务器上的文件和目录

查找目录列表

实例:

intitle:index.of 这里的休止符代表的是单个字母的通配符

实例:

intitle:index.of “parent directory”

intitle:index.of name size

(特定版本的)服务器

能被攻击者用来决定攻击web服务器最佳方法的一小段信息,就是确切的服务器版本

实例:

intitle:index.of “server at”

intitle:index.of “Apache/1.3.27 Server at”

还可以确定服务器的操作系统、模块和其他信息

把操作系统写在括号里

Apache/1/3/26(Unix)
CentOS
Debian
Debian GNU/Linux
Fedora
FreeBSD
Linux/SUSE
Linux/SuSE
NETWRE
Red Hat
Ubuntu
UNIX
Win32
攻击者能结合这个操作系统标签里的信息以及web服务器的版本制定有针对性的攻击

扩展遍历技术

经常会出现web页面的备份文件,他们有泄露源码的倾向。常常在配置错误的时候出现这种问题,把php代码备份到不是以php结尾的文件中,比如bak

实例:

intitle:index.of index.php.bak

inurl:index.php.bak

配置文件的查找

配置文件的存在说明服务就在附近

实例:

filetype:conf inurl:firewall

注意:

1.除了配置文件名conf的使用,也可以组合其他的通用的命名规则来查找其他等价的命名规则

inurl:conf OR inurl:config OR inurl:cfg

日志文件的查找

日志文件中也记录着日志很多的敏感信息

日志文件也有一个默认的名字可以被我们用作基础的搜索,最常见的扩展名就是log了

实例:

filetype:log inurl:log

ext log log

filetype:log username putty

office文档

实例:

filetype:xls inurl:password.xls

filetype:xls username password email

数据库、后台类

登录入口

登录入口是第一道防线,很容易泄露软硬件的信息

查找入口一般使用关键字login

大的厂商一般会把版权的注意事项放在页面的底部

实例:

intitle:login intext:版权信息

错误消息

数据库的错误消息能够用来分析操作系统和web服务器的版本,还可能更多

SQL command not properly ended

这个表示没有在sql语句的最后找到正确的终止符,所以可能会被用于注入攻击

数据库的转储

数据库基于文本的转换在网络上是很常见的,使用数据库的转储数据库管理员能完整地重建数据库,也就意味着一个完整的转储的细节并不只是数据表格的结构还有每张表的每一条记录。

攻击者可以搜索转储的标题 # Dumping data for table并且通过执行必要的关键词 username password等能够缩小范围

实例:

Dumping data for table(user|username|password|pass)

还可以关注一些由别的工具添加到数据库转储中最后的文件名

实例:

filetype:sql sql

真实的数据库文件

攻击者还能直接搜索到数据库本身,并不适合所有的数据库系统,只适合哪些有着特定名字或者扩展名的数据库,因为是二进制文件,所以没法在里面搜索字符

实例:

filetype:mdb inurl:com

查找漏洞寻找目标

查找漏洞代码

实例:

inurl:exploits

查找公开漏洞的网站

查找漏洞代码的一种方法就是关乎源代码中的文件扩展名,然后搜索该代码中的特定的内容。

实例:

filetype:c exploit

使用下面的命令把这些网站从转储的google结果页面中隔离出来

实例:

grep Cached exploit_file|awk =F “-” ‘{print $1}’|sort -u

或者也可以使用 lynx -dump

利用常见的代码字符串查找漏洞

关注源代码中的常用字符,一种重要的方法就会是关注源代码中的包含的文件或者头文件的引用。以C文件为例,通常会被包含在一个 #include中,不管文件的扩展名是什么

实例:

“#include” usage expoit

查找易受攻击的目标

利用漏洞的公告查找目标,软件供货商和安全研究员会定期发布关于易受攻击的软件的报告,这些报告会显示一个受影响软件供应商网站的链接,我们的目标是通过建立一个查询字符串来找到网页上易受攻击的目标。

特别有用的是使用 Powered by xxxx

常用的命令

查找网站后台

site:xx.com intext:管理

site:xx.com inurl:login

site:xx.com intitle:后台

查看服务器使用的程序

site:xx.com filetype:asp

site:xx.com filetype:php

site:xx.com filetype:jsp

查看上传漏洞

site:xx.com inurl:file

site:xx.com inurl:load

查找注射点

site:xx.com filetype:asp

site:tw inurl:asp?id= 这个是找台湾的

site:jp inurl:asp?id= 这个是找日本的

site:ko inurl:asp?id= 这个是找韩国的