google hacker (网站安全编程第8讲)

 

大家好,我是MXi4oyu(小雨),QQ:798033502。

欢迎大家来到BadBoy网络安全小组,

我们的网站是:www.hackbadboy.com

网站宗旨:普及网络安全知识,推动信息技术发展。

今天给大家带来的教程是《网站安全编程第8讲—google hacker》

搜索是一门艺术,在我们平时使用搜索引擎的过程中,通常是将需要搜索的关键字输入搜索引擎,然后就开始了漫长的信息提取过程。其实Google对于搜索的关键字提供了多种语法,合理使用这些语法,将使我们得到的搜索结果更加精确。当然,Google允许用户使用这些语法的目的是为了获得更加精确的结果,但是黑客却可以利用这些语法构造出特殊的关键字,使搜索的结果中绝大部分都是存在漏洞的网站。

一、语法基础

1.基本搜索

逻辑符︰与(空格)、或(|)、非( -)。

搜索包含几个关键词或几个关键词组合的网页信息,

只需输入关键词和逻辑符。如搜索︰

MXi4oyu 黑客|红客|-蓝客

 

搜索包含整个词组或句子的网页信息,必须加英文引号。如搜索︰

"useradd" 、"添加用户" 等等

2. 简单搜索和手气不错
手气不错是Google一个很有特色的功能.你可以迅速得到Google认为的最符合你搜索结果的页面(就是最常搜索的结果).

"网站后台管理系统"

3.高级搜索

限制符︰site、Filetype、inurl。

搜索包含特定( 类)网站及关键词的网页信息,

只需输入关键词、逻辑符和限制符。如搜索︰
site:gov.com

filetype:pdf

inurl:useradd.aspx intext:888888

http://www.aqrxnet.com/

可以参看次文章:

http://hi.baidu.com/jackrainhk/blog/item/87c94cfff1d8645bd7887d67.html

3.大小写
google不区分大小写;

4. 特殊语法

搜索所有链接到某个URL地址的网页。如搜索︰

link:icgr.caas.net.cn

查找与某个页面结构内容相似的页面。如搜索︰
related:icgr.caas.net.cn/default.html

查找与某链接相关的一些信息。如搜索︰

info:icgr.caas.net.cn

intitle: 限制你搜索的网页标题. allintitle: 搜索所有关键词构成标题的网页. 但是推荐不要使用allintitle: 这个语法,因为他和其它的语法合起来使用的效果并不好.

intitle:"george bush"

allintitle:"money supply" economics

inurl: 用于搜索网页上包含的URL. 这个语法对寻找网页上的搜索,帮助之类的很有用.

allinurl: 功能类似allintitle: 但也同样不推荐使用.

inurl:help

allinurl:search help

intext: 只搜索网页<body>部分中包含的文字(也就是忽略了标题,URL等的文字).

allintext: 不推荐使用.

intext:"yahoo.com"

intext:html

inanchor: 搜索连接中包含锚点标记. 锚点标记就是指连接的标记, 比如<a href="http://www.oreilly.com>;O'Reilly and Associates</a> 中的O'Reilly and Associates就是锚点标记.

inanchor:"tom peters"

site: 可以限制你搜索范围的域名.

site:loc.gov

site:thomas.loc.gov

site:edu

site:nc.us

link: 可以得到一个所有包含了某个指定URL的页面列表. 例如link:www.google.com 就可以得到所有连接到Google的页面.不用担心http:// 部分,事实上即使你输入了Google也会将其忽略.

cache: 搜索Google索引里页面的副本, 即使他原本的URL已经不存在或者完全发生了变化,这部分很适合页面经常变动的搜索. 如果Google搜索不到你输入的关键词, 那么很有可能你所看到的是Google缓存着的最新页面.

cache:www.yahoo.com

daterange: 限制搜索特定时间段里的检索内容. 注意是加入Google检索的时间, 而不是页面创建的时间.但是这个时间在Google整理检索的时候不会发生变化. 比如一个网页是February 2制作的,加入Google检索的时候是April 11 使用daterange:检索的时候就在April 11的检索里被搜索到. Google在August 13 重建了索引,但仍然在April 11里被搜索到.

daterange:的格式是Julian,而不是Gregorian格式.

"George Bush" daterange:2452389-2452389

neurosurgery daterange:2452389-2452389

filetype: 搜索檔的后缀或者扩展名,注意filetype:htm和filetype:html会得到不同的结果. 你也可以搜索各种不同的页面脚本语言,比如ASP, PHP, CGI等等. Google对部分Microsoft的文文件也做了索引, 比如PowerPoint (PPT), Excel (XLS), and Word (DOC)等等.

homeschooling filetype:pdf

"leading economic indicators" filetype:ppt

related: 搜索和指定页面相关的页面,比如你搜索related:google.com , 会得到很多搜索引擎,比如HotBot, Yahoo!, Northern Light等等.

related:www.yahoo.com

related:www.cnn.com

info: 提供一个和指定URL更多信息的页面列表,包括URL缓存的连接,包括URL的连接,和URL相关的连接,包含URL的页面. 注意, 这里搜索的结果取决于Google是否对该URL进行了索引. 如果没有的话, 搜索结果将会少很多.

info:www.oreilly.com

info:www.nytimes.com/technology

phonebook: 用于查询电话号码.

phonebook:John Doe CA

phonebook:(510) 555-1212

5.搜索技巧

关键词的选择在搜索中起到决定性的作用,

所有搜索技巧中,关键词选择是最基本也是最有效的。

例子︰找人

分析︰一个人在网上揭示的资料通常有︰姓名,性别,年龄,毕业学校,工作单位,电话,信箱,BP,手机号码等等。所以,如果你要了解一下你多年没见过的同学,那不妨用上述信息做关键词进行查询,也许会有大的收获。
例二︰找软件

分析一︰最简单的搜索当然就是直接以软件名称以及版本号为关键词查询。但是,仅仅有软件名称和目标网站,显然还不行,因为搜索到的可能是软件的相关新闻。应该再增加一个关键词。考虑到下载页面上常有“点击此处下载”或者“download”的提示语,因此,可以增加“下载”或者“download”为关键词。
搜索︰winzip 8.0 下载

分析二︰很多网站设有专门的下载目录,而且就命名为“download”,因此,可以用INURL语法直接搜索这些下载目录。

搜索︰winzip 8.0 inurl:download

共享软件下载完之后,使用的时候,软件总跳出警示框,或者软件的功能受到一定限制,所以应该再找一个注册码。找注册码,除了软件的名称和版本号外,还需要有诸如“serial number”、“sn”、“序列号”等关键词。现在,来搜索一下winzip8.0的注册码。
搜索︰winzip 8.0 sn

例三︰找图片
除了GOOGLE提供的专门图片搜索功能,还可以组合使用一些搜索语法,达到图片搜索之目的。

分析一︰专门的图片集合,提供图片的网站通常会把图片放在某个专门目录下,如“photo”、“image”等。这样就可以使用INURL语法迅速找到这类目录。现在,试着找找水稻的照片集。

搜索︰rice inurl:photo

分析二︰提供图片集合的网页,在标题栏内通常会注明,这是谁谁的图片集合。于是就可以用INTITLE语法找到这类网页。

搜索︰intitle:rice picture

例四︰找MP3

分析一︰提供MP3的网站,通常会建立一个叫做MP3的目录,目录底下分门别类的存放各种MP3乐曲。所以,可以用INURL语法迅速找到这类目录。现在用这个办法找找老歌“say you say me”。

搜索︰"say you say me" inurl:mp3

分析二︰也可以通过网页标题,找到这类提供MP3的网页。

搜索︰"say you say me" intitle:mp3


 

附:Google搜索语法详解:
http://www.google.com/search?
as_q=test (查询字段)
&hl=en (语言)
&num=10 (结果数量 [10,20,30,50,100])
&btnG=Google+Search
&as_epq= (完整字句)
&as_oq= (至少有一项)
&as_eq= (除…之外)
&lr= (语言结果. [语言国家代码])
&as_ft=i (文件类型包括或者不包括. [i或e])
&as_filetype= (文件格式扩展名)
&as_qdr=all (时间 [all(所有),M3(过去3个月),m6(过去6个月),y(过去一年内)])
&as_nlo= (数量范围, 最少)
&as_nhi= (数量范围, 最多)
&as_occt=any (查询字词位于 [any(网页内任何地方),title(标题),body(内容),url(网址),links(链接)])
&as_dt=i (仅搜索的域名 [i,e])
&as_sitesearch= (仅搜索的 [站点])
&as_rights= (使用权限 [cc_publicdomain(可随意使用), cc_attribute(可随意使用,可用于商业), cc_sharealike(可随意使用、共享或修改), cc_noncommercial(不可用于商业), cc_nonderived(不可随意使用)]
&safe=images (安全搜索 [safe=on,images=off])
&as_rq= (搜索类似网页)
&as_lq= (搜索与该网页存在链接的网页)

 

二、简单举例:

  intitle
         intitle语法通常被用来搜索网站的后台、特殊页面和文件,通过在Google中搜索“intitle:登录”、“intitle:管理”就可以找到很多网站的后台登录页面。此外,intitle语法还可以被用在搜索文件上,例如搜索“intitle:”indexof”etc/shadow”就可以找到Linux中因为配置不合理而泄露出来的用户密码文件。
         inurl
         Google Hack中,inurl发挥的作用的最大,主要可以分为以下两个方面:寻找网站后台登录地址,搜索特殊URL。
         寻找网站后台登录地址:和intitle不同的是,inurl可以指定URL中的关键字,我们都知道网站的后台URL都是类似login.asp、admin.asp为结尾的,那么我们只要以“inurl:login.asp”、“inurl:admin.asp”为关键字进行搜索,同样可以找到很多网站的后台。此外,我们还可以搜索一下网站的数据库地址,以“inurl:data”、“inurl:db”为关键字进行搜索即可。
1.寻找网站的后台登录页面
         搜索特殊URL:通过inurl语法搜索特殊URL,我们可以找到很多网站程序的漏洞,例如最早IIS中的Uncode目录遍历漏洞,我们可以构造“inurl:/winnt/system32/cmd exe?/c+dir”这样的关键字进行搜索,不过目前要搜索到存在这种古董漏洞的网站是比较困难的。再比如前段日子很火的上传漏洞,我们使用““inurl:upload.asp”或“inurl:upload_soft.asp”即可找到很多上传页面,此时再用工具进行木马上传就可以完成入侵。
         intext
         intext的作用是搜索网页中的指定字符,这貌似在Google Hack中没有什么作用,不过在以“intext:to parent directory”为关键字进行搜索后,我们会很惊奇的发现,无数网站的目录暴露在我们眼前。我们可以在其中随意切换目录,浏览文件,就像拥有了一个简单的Webshell。形成这种现象的原因是由于IIS的配置疏忽。同样,中文IIS配置疏忽也可能出现类似的漏洞,我们用“intext:转到父目录”就可以找到很多有漏洞的中文网站。
2.随意浏览网站中的文件
         Filetype
         Filetype的作用是搜索指定文件。假如我们要搜索网站的数据库文件,那么可以以“filetype:mdb”为关键字进行搜索,很快就可以下载到不少网站的数据库文件。当然,Filetype语法的作用不仅于此,在和其他语法配合使用的时候更能显示出其强大作用。
         Site
         黑客使用Site,通常都是做入侵前的信息刺探。Site语法可以显示所有和目标网站有联系的页面,从中或多或少存在一些关于目标网站的资料,这对于黑客而言就是入侵的突破口,是关于目标网站的一份详尽的报告。

三、高级应用

  虽然上文中介绍的这几个语法能各自完成入侵中的一些步骤,但是只使用一个语法进行入侵,其效率是很低下的。Google Hack的威力在于能将多个语法组合起来,这样就可以快速地找到我们需要的东西。下面我们来模拟黑客是如何使用Google语法组合来入侵一个网站的。

信息刺探
         黑客想入侵一个网站,通常第一步都是对目标网站进行信息刺探。这时可以使用“Site:目标网站”来获取相关网页,从中提取有用的资料。

搜索相关页面
         下载网站的数据库
         搜索“Site:目标网站 Filetype:mdb”就可以寻找目标网站的数据库,其中的Site语法限定搜索范围,Filetype决定搜索目标。用这种方法有一个缺点,就是下载到数据库的成功率较低。在这里我们还可以采用另一种语法组合,前提是目标网站存在IIS配置缺陷,即可以随意浏览站点文件夹,我们搜索“Site:目标网站 intext:to parent directory”来确定其是否存在此漏洞。在确定漏洞存在后,可以使用“Site:目标网站 intext:to parent directory+intext.mdb”进行数据库的搜索。

找到网站数据库
    登录后台管理
         下载到数据库后,我们就可以从中找到网站的管理员帐户和密码,并登录网站的后台。对于网站后台的查找,可以使用语法组合“Site:目标网站 intitle:管理”或者“Site:目标网站 inurl:login.asp”进行搜索,当然我们可以在这里进行联想,以不同的字符进行搜索,这样就有很大的概率可以找到网站的后台管理地址。接下去黑客就可以在后台上传Webshll,进一步提升权限,在此不再阐述。
    利用其他漏洞
         如果下载数据库不成功,我们还可以尝试其他的入侵方法。例如寻找上传漏洞,搜索“Site:目标网站 inurl:upload.asp”。此外,我们还可以根据一些程序漏洞的特征,定制出Google Hack的语句。
         Google Hack可以灵活地组合法语,合理的语法组合将使入侵显得易如反掌,再加入自己的搜索字符,Google完全可以成为你独一无二的黑客工具。

四、安全防范:

合理设置网站
         Google Hack貌似无孔不入,实则无非是利用了我们配置网站时的疏忽。例如上文中搜索“intext:to parent directory”即可找到很多可以浏览目录文件的网站,这都是由于没有设置好网站权限所造成的。在IIS中,设置用户访问网站权限时有一个选项,叫做“目录浏览”,如果你不小心选中了该项,那么其结果就如上文所述,可以让黑客肆意浏览你网站中的文件。
         这种漏洞的防范方法十分简单,在设置用户权限时不要选中“目录浏览”选项即可。
不要选中该项
         编写robots.txt文件
         robot.txt是专门针对搜索引擎机器人robot编写的一个纯文本文件。我们可以在这个文件中说明网站中不想被robot访问的部分,这样,我们网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。因此我们可以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,Google Hack的威胁也就不存在了。
         编写的robots.txt文件内容如下:
User-agent: *
Disallow: /data/
Disallow: /db/
         其中“Disallow”参数后面的是禁止robot收录部分的路径,例如我们要让robot禁止收录网站目录下的“data”文件夹,只需要在Disallow参数后面加上“/data/”即可。如果想增加其他目录,只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离Google Hack了

 

 

 

 

 

posted @ 2012-01-31 00:02  MXi4oyu  阅读(472)  评论(0编辑  收藏  举报