这篇文章应该很早之前就出来的,只是一直很忙,忘记整理了,最近刚好对于Google Hacking需求比较多,就整理发布一下,当作一篇笔记来用吧。
严格意义来说,这是一篇大杂烩,参考的文章甚多。废话不多说,下面就开始介绍Google Hacking。
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。
allintitle: 限制搜索结果仅是那些在网页标题里边包含了我们所有查询关键词的网页。(EVerything事件)
+ 把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= 这个是找韩国的