为Python渗透测试探测器添加网页图片下载

本篇概要

  • Selenium与PhantomJS
  • 为渗透测试探测器添加截图功能
  • 测试新功能

在前面文章中,我们使用Python编写了一个渗透测试探测器,从fuzz数据库中获取字典信息,利用requests模块请求拼接组装的URL,从而获得URL的响应内容,并借助termcolor模块将整理后的信息打印出来。

现在我们又有了一个不成熟的想法,不知道当不当说。

在正常的Web渗透测试中,我们在探测完一个网站,获取到所有的探测结果之后,肯定要看看请求成功的链接的网页是长什么样子的。如果URL过多,一个一个去点击的话,就太浪费时间了。所以我们需要获取到网页的截图,方便探测完之后,查看网页。

Selenium与PhantomJS

要对请求的网页进行截图,这样的操作,requests大概是没辙了。这时候,我们需要使用到另一个工具——Selenium,一个专门用于Web自动化测试的模块。

其能够借助浏览器内核驱动,实现浏览器的各种动作。在Python中,我们通过pip可以轻易的进行安装:

Selenium可以使用多种浏览器内核,比如主流的Chrome、 Firefox等,但在这里,我们使用另一个非主流的浏览器——PhantomJS,一个无头浏览器。除了没有图形界面外,拥有其他主流浏览器的所有功能。

我们可以在命令行使用phantomjs,自然也可以在Python中使用Selenium来调用phantomjs:

这样,就实现了使用PhantomJS作为Selenium调用的浏览器内核了。

在实例化一个webdriver后,使用get()方法,可以访问一个URL:

使用save_screenshot()方法,可以保存页面的截图。

关于Selenium的其他运用,可以参见博客的其他文章,或是网络上的资料。在此,我们主要使用到这两个方法。

添加网页截图功能

了解到使用Selenium进行网页请求和截图的方法后,我们就可以为我们的渗透测试探测器添加新功能了。

当然,肯定不是每个页面都需要保存网页的截图,我们对请求成功的页面进行截图,也就是响应的状态码大于等于200小于300的网页才需要截图。

下面修改一下request_performer()类中的run()方法:

我们主要添加了4行代码:

实例化一个webdriver,请求url,等待3秒,设置浏览器窗口大小,保存网页截图。

测试网页截图功能

修改好代码之后,我们可以测试一下我们的第4版本的渗透测试探测器了。

在命令行终端运行命令:

运行完成,我们看看我们的文件夹:

多出了5个图片,我们打开一个看看:

与浏览器打开的是一样的:

这样我们使用Python编写的渗透测试探测器就基本完善好了。

接下来,我们将会介绍Python Web渗透测试之密码攻击!

PS:点击“阅读原文”,查看清晰代码示例

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2017-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

3 条评论
登录 后参与评论

相关文章

来自专栏Laoqi's Linux运维专列

Zabbix自动发现之fping

1655
来自专栏前端架构与工程

Github page搭建博客使用自定义插件的方法

Github page的后台程序是由Jekyll搭建,但由于Github的保护措施,非认证的plugin一般不会被Github page支持,但可以使用一些小技...

1728
来自专栏bboysoul

git设置socks代理

终端下执行 git config --global http.proxy 'socks5://127.0.0.1:1080' git config --gl...

834
来自专栏伪君子的梦呓

使用github搭建个人博客

前言 为什么我要搭建一个个人博客呢?主要是为了方便自己分类一些东西,而且最近在学 html 和 css ,搭建一个博客来帮助自己理解一下。 文章主要分6个部分,...

4006
来自专栏西二旗一哥

Ghost - Birth of my blog

如果出现以上文字,那么恭喜你,进入服务器成功。 + 3.2 安装 Node.js 依次在终端上输入以下命令,注释除外(如果怕打错请全部复制粘贴):

1258
来自专栏北京马哥教育

Kickstart+PXE自动部署CentOS6.6

生产环境中对于部署大量的相同系统的服务器,如果逐台安装操作系统的话是非常浪费时间的工作,还好CentOS提供了无人值守安装系统的功能,下面就详细介绍一下配置步骤...

2384
来自专栏前端小叙

git版本超前了N个版本且落后了N个版本的解决办法

当遇到该问题的时候,一般情况下我们会首先拉取,紧接着就出现了一系列问题………… 其实当输入命令,git pull的时候,会报错,这时瞬间就感到凌乱了&……*%%...

31510
来自专栏王磊的博客

ReactNative环境搭建扩展篇——安装后报错解决方案

之前一篇写了《逻辑性最强的React Native环境搭建与调试》说了RN的安装,今天在这里做一个复盘,让我们能够更直观更深入的了解React Native(以...

3388
来自专栏Java Edge

前端基础实战(MBP 环境)node.jssublimechrome代理神器npm

2594
来自专栏西二旗一哥

Ghost - How to change ghost's theme

出来两个包啦。 + 这个时候重新启动你的 Ghost。 如果你是 forever 那么敲这个

874

扫码关注云+社区