文章目录
- 前言
- 1、什么是google搜索
- 1.1基础查询
- 1.2高级搜索
- 1.3使用布尔运算符
- 2、高级运算符
- 2.1运算符语法
- 2.2常用运算符
- 3、Google Hacking 基础
- 3.1目录列出
- 3.1.1 查找特定目录
- 3.1.2 查找特定文件
- 3.1.3 服务器版本
- 3.2目录遍历/目录穿越
- 4、10个简单的安全搜索
- 5、总结
- 参考
前言
什么是Google Hack搜索,它和普通的搜索由什么区别?深入理解Google Hacking,学会如何利用Google Hacking进行信息收集。
1、什么是google搜索
就像百度,在搜索框输入我们要检索的东西/概念/关键字,百度匹配关键字,按照一定的逻辑/规则/算法,返回与之相关的信息。
这是现代软件程序提供给我们的一个服务。Google搜索是一个过程,它的目标是找到关于某一主题的信息。这个过程从一个基本搜索开始,通过各种方式对其进行修正,直到只返回相关信息的页面。
1.1基础查询
- 最简单的Google查询由输入到搜索界面中的单个单词或多个独立单词组成。
- 比单词搜索稍微复杂一点的是短语搜索。短语是用双引号括起来的一组单词
如上图,我们在Goole主页的搜索框输入1,仅0.33秒,返回了约 25,190,000,000 条结果,我们可以逐个点击返回的页面链接,查看是否符合我们心中所寻。如何海量的信息,我们一个个去点击,效率太低。谷歌提供了一些筛选条件,让我们可以过滤一些内容。我们点击工具
。
出来了3个条件,可以让我们缩小搜索范围,更精确的找到我们想要的信息。
1.2高级搜索
如果还不能满足我们的要求,点击高级搜索
,里面提供了许多特性,好满足我们进一步筛选内容的需求。借助高级搜索,加上我们对漏洞的基础知识,即可执行所谓的Goolgle Hacking搜索,即根据漏洞的特征(特定字符串、文件类型等),结合Google高级搜索特性 ,查找目标资产或脆弱点。Google高级搜索如下图:
1.3使用布尔运算符
要执行高级查询,必须理解布尔操作符AND、OR和NOT为了学习如何构造查询,记住一点:Google从左到右读取你的查询。
- and,对Google来说这个运算符是多余的,谷歌自动搜索你查询中的所有元素。
- OR ,连接两个搜索项时必须大写,也可以用 | 表示。
- NOT,把一个单词排除出一个搜索之外。例:
site:xx.com -site:www.xx.com
,即符合xx.com的但排除含有www.xx.com的结果
我们看一个复杂的例子:
intext:password | passcode intext:username | userid | user filetype:csv
请求是这样写的:“找到文档文本中包含password或passcode的所有页面。从这些页面中,只向我展示包含以下的页面,这些页面在文档的文本中包含单词username、userid或user。从这些页面中,只给我看CSV文件。
2、高级运算符
上一节已经介绍过了Google的高级搜索,通过页面中所见即所得的方式更细粒度地设置我们想要执行地查询。如果你了解网络通信原理或者说HTTP协议,你应该明白,我们在Google页面中的输入、下拉框选择,最后都是通过GET请求查询字符串发送到服务端的,稍微观察一下你每次执行高级查询时URL的变化即可验证我们的说法。
Google提供了被称为高级运算符的特殊字符来帮助你执行更加复杂的高级查询,上述高级查询的Web页面最后提交时,都转换为URL中的查询字符串。如果一个查询中没有使用高级运算符,Google将会在网页的任何区域来寻找你的搜索项,包括标题、文本、URL,或者其他类似的地方。
2.1运算符语法
高级运算符加入到查询中,是为了让查询更加精确。一个高级运算符的基本语法:operator:search_term
,使用高级操作符时,请牢记以下几点:
- 在运算符、冒号和搜索项之间没有空格
- 只要遵守基本的Google查询语法和高级操作符语法,就可以在单个查询中组合高级操作符。
search_term
部分遵循上述基础查询的语法
2.2常用运算符
3、Google Hacking 基础
3.1目录列出
目录列出/目录列表(英文directory listing
),是一种Web类型,它列出Web服务器上的文件和目录。大多数目录列表以短语index of
开头,并出现在标题当中,一个直接的查询就是intitle:"index of"
,单单靠这个搜索项,存在很大的噪音(搜索结果不精确),有必要添加一些额外的特征,优化查询以提供更加准确的结果,例如intitle:"index of" "parent" directory"
,这个查询返回了目录列表,因为它不仅关注标题中的index of,而且还关注目录列表里的经常能找到的关键词,比如parent directory、name、size。现在可以打开Google页面实践一下!
3.1.1 查找特定目录
在某些情况下,不仅要查找目录列表,而且还要查找允许访问某个特定目录的目录列表,这可能是很有价值的。通过把目录名字添加到搜索查询里实现。为例查找在目录列表里可以访问的admin目录,可以使用intitle:"index of" admin
或者intitle:"index of" inurl:admin
。
3.1.2 查找特定文件
因为目录列出的页面已经列出了文件名和目录,所以可以在一个文件列表里找到特定的文件。我们的思路很简单:
- 通过
intitle:"index of"
,指定标题的关键字来索引目录列表页面; - 在网页文本指定文件名
这样就可以查找任何类型的文件了。看个例子:intitle:"index of" access.log
,用来查找访问日志文件。
3.1.3 服务器版本
要构建查找服务器版本的Google查询,思路也是一样的。
- intitle:“index of” —> 目录列表
- 服务器信息的关键字
一些目录列表不但提供了服务器软件名还有版本号,我们使用以下查询intitle:"index of" "server at"
实践一下看看:
3.2目录遍历/目录穿越
目录列表罗列出所有的目录及文件名,我们可以点击进去下一级目录,也可以通过parent directory返回上一级目录,这是最简单的目录遍历。 使用intitle:"index of" inurl:admin
,我们会发现admin目录,这是个很有潜在价值的目录。
如果Web脚本存在漏洞,我们可以利用../../../etc/passswd
类似的URL 突破Web服务器目录树。
4、10个简单的安全搜索
- site
site:xx.com -site:www.xx.com - intitle:index.of(针对目录列表的通用搜索)
- error|warning
错误信息会泄露大量关于目标的信息。
(“for more information”|“not found”) (error|warning) - login|logon
- unername|userid|employee.ID “your name is”
- password|passcode|“your name is”
- admin|administrator
- -ext:html -ext:shtml -ext:asp -ext:php
- inurl:yemp inurl:tmp inurl:backup inurl:bak
- intranet|help.desk
语句的具体解释都在:Google Hacking 渗透测试者的利剑第三版。
5、总结
记住:Google从左到右读取我们构造的查询语句,我们采用高级运算符:"关键字" 逻辑运算符 高级运算符:"关键字" 逻辑运算符 高级运算符:"关键字"
这样的结构即可实现所谓Google Hacking。2个有用的工具网站:
- 各位”黑客“们利用Google发现漏洞的语句集合:https://www.exploit-db.com/google-hacking-database
- 生成你的Googe Hacking语句:https://pentest-tools.com/information-gathering/google-hacking
参考
[1] Google Hacking 渗透测试者的利剑第三版
[2] https://su18.org/post/googlehack/
[3] https://www.googleguide.com/
[4] https://www.cnblogs.com/botoo/p/10231872.html