有时候用谷歌hack语言真的会找到新的突破点

谷歌

google hack语法

先来个集成语法

https://www.google.com/advanced_search

  1. site:target.com inurl:admin | administrator | adm | login | wp-login | manage | system | console | pwd | reg | forget | member | admin_login | login_admin | user | main | cms | aspx | jsp | php | asp | file | load | editor | Files | ewebeditor|uploadfile|eweb|edit intext:管理 | 后台 | 登录 | 用户名 | 密码 | 验证码 | 系统 | 账号 | admin | login | sys | managetem | password | username

selenium自动化爬取chrome

用selenium的find_elements_by_xpath可以比较简单的爬去chrome

image.png
image.png
右键复制完整的Xpath,这样省着我们一个一个去查找了
而且如果Xpath换了,也可以很简单的修改源码

  1. 下载Chrome浏览器,然后去https://npm.taobao.org/mirrors/chromedriver/下载对应之前下载的Chrome浏览器版本的chromedriver.exe
  2. 将下载好的chromedriver.exe放入python.exe的所在文件夹,然后再放入chrome.exe的所在文件夹。
  3. 将chrome.exe的所在文件夹设到系统变量中。
  1. python Google_Crawler.py -s "site:lzu.edu.cn" -p 3 -t 5 --gpu
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.chrome.options import Options
  4. import argparse
  5. import time
  6. import pandas as pd
  7. from urllib import parse
  8. class ChromeCrawl:
  9. def __init__(self,page,timeSleep,Txtname):
  10. self.timeSleep=timeSleep
  11. self.page=page
  12. self.Txtname=Txtname
  13. pass
  14. # 获取页面中出现的链接
  15. def getUrl(self):
  16. urlList = []
  17. #//*[@id="rso"]/div/div/div/div/a/div/cite
  18. #//*[@id="rso"]/div[10]/div/div/div[1]/div/a/div/cite
  19. a = browser.find_elements(By.XPATH,'//*[@id="rso"]/div/div/div/div/a/div/cite')
  20. b=browser.find_elements(By.XPATH,'//*[@id="rso"]/div[10]/div/div/div[1]/div/a/div/cite')
  21. for i in a:
  22. # tmpUrl = i.get_attribute('href')
  23. tmpUrl=i.text
  24. urlList.append(tmpUrl)
  25. print(b)
  26. for i in b:
  27. urlList.append(i.text)
  28. return urlList
  29. # 判断传入的元素是否存在
  30. def isElementExist(self,by,element):
  31. flag=True
  32. try:
  33. browser.find_element(by,element)
  34. return flag
  35. except:
  36. flag=False
  37. return flag
  38. # 接受爬取页数,开始爬取
  39. def allPage(self):
  40. page=self.page
  41. timeSleep=self.timeSleep
  42. allUrl = []
  43. print("开始爬取")
  44. for i in range(page):
  45. time.sleep(timeSleep)
  46. print("当前为第"+str(i+1)+"页")
  47. if self.isElementExist(By.ID,"search"):
  48. allUrl.append(self.getUrl())
  49. print("第"+str(i+1)+"页爬取完成")
  50. if self.isElementExist(By.ID,"pnnext"):
  51. browser.find_element(By.ID,"pnnext").click()
  52. if i == page - 1:
  53. print("全部爬取完成!")
  54. return allUrl
  55. else:
  56. print("没有下一页,全部爬取完成!")
  57. return allUrl
  58. else:
  59. print("不存在元素,全部爬取完成!")
  60. return allUrl
  61. # 处理url并生成csvtxt
  62. def createCsvandTxt(self,aList):
  63. with open(self.Txtname.replace(".csv",".txt"),"a+",encoding="utf-8") as f:
  64. for i in range(len(aList)):
  65. for j in range(len(aList[i])):
  66. f.write(aList[i][j].replace(" › ","/")+"\n")
  67. csvName=self.Txtname
  68. domain = []
  69. urlL = []
  70. for i in range(len(aList)):
  71. for j in range(len(aList[i])):
  72. parsed_tuple = parse.urlparse(aList[i][j])
  73. domain.append(parsed_tuple.netloc)
  74. urlL.append(aList[i][j].replace(" › ","/"))
  75. urlDict = {"domain":domain, "url":urlL}
  76. df = pd.DataFrame(urlDict)
  77. df.to_csv(csvName,index=False,encoding="utf-8")
  78. class CrawlerConfiguration:
  79. def __init__(self):
  80. self.TEXT="开始爬取"
  81. def ArgumentPars(self):
  82. # 传入参数设置
  83. TxtName = str(int(time.time())) + ".csv"
  84. parser = argparse.ArgumentParser()
  85. parser.add_argument('--gpu', action="store_false", help='输入该参数将显示chrome,显示爬取过程,默认为False')
  86. parser.add_argument('-s', type=str, default='site:.com', help='请输入你想搜索的google hacking语句,默认为site:.com,以此作为测试')
  87. parser.add_argument('-po', type=str, default='127.0.0.1:7890', help='请输入一下谷歌浏览器的代理,默认127.0.0.1:7890')
  88. parser.add_argument('-p', type=int, default=1, help='请输入你想搜索的页数,默认1页')
  89. parser.add_argument('-t', type=int, default=3, help='请输入翻下一页停顿的时间,默认3秒')
  90. parser.add_argument('-r', type=str, default=TxtName, help='请输入你想输出的文件名称,默认为'+TxtName)
  91. args = parser.parse_args()
  92. return args
  93. def ChromeInitialization(self):
  94. global browser
  95. args=self.ArgumentPars()
  96. # 初始化设置
  97. chrome_options = Options()
  98. chrome_options.add_argument(f"--proxy-server=http://{args.po}")
  99. if args.gpu:
  100. chrome_options.add_argument('--headless')
  101. chrome_options.add_argument('--disable-gpu')
  102. chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
  103. browser = webdriver.Chrome(chrome_options=chrome_options)
  104. browser.get("https://www.google.com")
  105. # 设置爬取目标并开始搜索
  106. #/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input是搜索框的XPath,模拟输入点击
  107. browser.find_element(By.XPATH,"/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input").send_keys(
  108. args.s)
  109. browser.find_element(By.XPATH,"/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[1]").click()
  110. print(self.TEXT)
  111. newChromeCrawl = ChromeCrawl(args.p, args.t, args.r)
  112. # url处理
  113. newChromeCrawl.createCsvandTxt(newChromeCrawl.allPage())
  114. # 结束
  115. browser.quit()
  116. if __name__ == '__main__':
  117. newCrawlerConfiguration=CrawlerConfiguration()
  118. newCrawlerConfiguration.ChromeInitialization()

image.png

Bing

平常用bing比较多,所以也记录一下他的小技巧

双赢号””

在想要搜索的文字前后加上双引号,搜索结果就会严格按照被引用的内容进行匹配,包括文字内容和字符顺序。

表格

关键字 定义 示例
contains: 确保搜索结果锁定到带有指定文件类型链接的站点。 若要搜索包含 Windows Media 音频 (.wma) 文件链接的网站,请键入 music contains:wma
ext: 仅返回带有指定文件扩展名的网页。 若要查找以 DOCX 格式创建的报告,请键入主题,然后键入 ext:docx
filetype: 仅返回以指定文件类型创建的网页。 若要查找以 PDF 格式创建的报告,请键入主题,然后键入 filetype:pdf
inanchor:inbody:intitle: 这些关键字分别返回元数据包含指定术语(如站点的锚点、正文或标题)的网页。每个关键字只能指定一个术语。您可以根据需要串联多个关键字条目。 若要查找在锚点中包含“msn”同时正文中包含“spaces”和“magog”术语的网页,请键入 inanchor:msn inbody:spaces inbody:magog
ip: 查找指定 IP 地址托管的站点。IP 地址必须由点分隔为四部分。键入 ip: 关键字,后接网站的 IP 地址。 键入 IP:207.46.249.252
language: 返回指定语言的网页。直接在 language: 关键字之后指定语言代码。 若要只查看关于古董的英文网页,请键入 “antiques” language:en
loc:location: 返回来自指定国家或地区的网页。直接在 loc: 关键字之后指定国家或地区代码。若要关注两种或更多语言,请使用逻辑 OR 来组织语言。 若要查看来自美国或大不列颠有关雕塑的网页,请键入 sculpture (loc:US OR loc:GB)。有关可以在必应中使用的语言代码列表,请参见国家、地区和语言代码
prefer: 为搜索术语或另一家运营商添加重点,以帮助锁定搜索结果。 若要查找足球的相关网页,但搜索内容主要限定在某球队,请键入 football prefer:organization
site: 返回属于指定站点的网页。若要关注两个或更多个域,请使用逻辑 OR 来组织域。您可以使用 site: 来搜索 Web 域、顶级域和深度不超过两级的目录。您也可以在站点上搜索包含指定搜索词的网页。 若要查看 BBC 或 CNN 网站上关于心脏病的网页,请键入 “heart disease” (site:bbc.co.uk OR site:cnn.com)。若要在 微软 网站上查找关于 Halo 的 PC 版本的网页,请键入 site:www.microsoft.com/games/pc halo
feed: 为您搜索的术语在网站上查找 RSS 或 Atom 源。 若要查找关于足球的 RSS 或 Atom 源,请键入 feed:football
hasfeed: 在网站上查找包含有关搜索术语的 RSS 或 Atom 源的网页。 若要查找关于纽约时报网站的包含 RSS 或 Atom 源的网页,请键入 site:www.nytimes.com hasfeed:football
url: 检查列出的域或网址是否在必应的索引内。 若要验证 微软 域是否在索引内,请键入 url:microsoft.com
  • 请不要在这些关键字的冒号后面加入空格。
  • 此处介绍的某些特性和功能可能在您的国家或地区不可用。

运算符

image.png

bing hack语法

  1. filetype:txt 学号
  2. filetype:xls 身份证
  3. filetype:doc 邮箱 site:xxx.com
  4. site:xxx.com
  5. inurl:asp?id=
  6. site:xxx.com inurl:admin|back|manage|manager|login|admin_login|login_admin|system|boss|master
  7. site:xxx.com intitle:管理|登陆|后台
  8. site:xxx.com 管理|登陆|后台|用户名|密码|验证码|系统|账号|manage|admin|login|system
  9. # 查找上传页面
  10. site:xxx.com inurl:file
  11. site:xxx.com inurl:load
  12. # 查找编辑器页面
  13. site:xxx.com inurl:fckeditor
  14. site:xxx.com inurl:ewebeditor
  15. site:xxx.com inurl:robots.txt
  16. site:xxx.com inurl:txt
  17. site:xxx.com filetype:mdb
  18. site:xxx.com filetype:ini