对Python渗透测试探测器的改善

本篇概要

  • 改善探测器的结果显示
  • 为探测器添加新的特征
  • 测试探测器的新特征

改善探测器的结果显示

在上一篇我们使用Python编写了一个暴力探测器,用来探测web站点上可能存在利用漏洞的目录和路径。

在这个0.1的版本中,我们只是将网址和其响应状态码打印到终端中,命令行中黑底白字的显示,似乎很不美观也不容易找出重点信息。有什么办法可以改善一下呢?

我们可以借助于一个模块——termcolor,一个用于将输出进行颜色格式化的工具。

我们来看看termcolor的一个官方示例:

运行代码,会在终端输出带有颜色的字符:

从上面的示例我们可以知道,使用termcolor的colored()方法,可以将普通字符格式化为带有颜色的字符,cprint()方法则可以直接打印出特定颜色的字符。

termcolor自带了八种颜色供我们使用,分别是:

  • grey:灰色
  • red:红色
  • green:绿色
  • yellow:黄色
  • blue:蓝色
  • magenta:品红色
  • cyan:青色
  • white:白色

在探测器中,我们使用colored()方法对状态码进行颜色格式化。除了添加颜色的显示外,在结果中仅仅显示URL的状态码似乎有点单调,我们再添加几个结果显示:

  • 网页文本的行数;
  • 网页文本的字符数;
  • 网页中的词数;
  • 网页内容的哈希值;

接下来,我们将颜色格式化和新的结果显示添加到request_performer()类中:

我们设置状态码在大于等于200小于300为绿色,大于等于400小于500为红色,大于等于300小于400为蓝色。

在终端中运行命令:

可以看到显示出来的结果清晰明了很多了:

添加新的功能选项

在上面的示例中,我们将探测器的显示结果优化了一下,使其更加美观。但是,还有一个问题——404页面的处理。

在字典文件小、字典条目少的情况下,即使我们的探测器探测出很多的404页面,在结果中也容易排除开来。但是如果字典的条目很多,探测出来的404页面也会很多,在命令行界面就会掩盖了成功的响应。我们需要将404页面从结果中剔除掉。

由404页面问题延伸开来,我们的功能的需求就是:通过命令行关键字参数指定,去除某个响应状态码的显示结果。

在request_performer()类中,新添加一个属性hidecode:

然后在request_performer()类中排除响应状态码为hidecode的请求结果:

如果响应状态码不等于指定剔除的状态码,就打印结果。

再在启动函数start()中设置新功能的命令行参数:

接着,完善 launcher_thread()函数:

所有的函数就修改完毕。

测试新功能

改好了代码,我们来测试一下新的功能。目标站点同样选用虚拟机环境中的靶机http://www.scruffybank.com/,common.txt作为字典文件。

因为我们在start()函数里面设置了hidecode的默认值为000,所以我们新增的-c选项不加也可以运行。

先看看不加-c选项的结果:

和第二版的程序效果一致:

我们再加上-c选项排除404页面:

所有状态码为404的页面都没有显示出来:

我们打开其中一个网址看看:

三个字母加一个换行符一共4个字符、1行文本、1个词数,与探测器返回的结果相同。

这样我们的探测器更新到第三版,功能也越来越丰富了。

下一篇,我们会继续为我们的渗透测试探测器增加功能。

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

Excel多工作薄合并

今天要给大家介绍一下Excel多工作表合并的技巧! 由于Excel工作薄文件可以包含多个工作表,所以合并起来要比Word麻烦! 目前还无法单纯通过Excel界面...

2646
来自专栏无所事事者爱嘲笑

react-native 报错 RawText "" must be wrapped in an explicit <Text> component

1234
来自专栏数据结构笔记

python爬虫系列之数据存储实战:爬取简书用户文章列表并保存

前面讲了 json和 csv两个存储数据的库,在数据量比较少的时候,用这两个库很方便。

1714
来自专栏数据小魔方

异步加载的基本逻辑与浏览器抓包一般流程

本篇内容不涉及任何R语言或者Python代码实现,仅从异步加载的逻辑实现过程以及浏览器抓包分析的角度来给大家分享一下个人近期学习爬虫的一些心得。 涉及到的工具有...

3144
来自专栏Jack-Cui

Python3网络爬虫快速入门实战解析

Python版本: Python3.x 运行平台: Windows IDE: Sublime text3 一 前言 强烈建议:请在电脑的陪同下,阅读...

6318
来自专栏mini188

学习笔记:发现一个IE版本判断的好方法

web开发就不得不面对浏览器兼容性问题,特别是IE的兼容问题。在前端代码中经常要处理一些兼容格式,为了解决这个问题网上找了找识别浏览器版本的方法。 常规js方法...

1926
来自专栏猛牛哥的博客

aardio v13.11-21更新内容

1654
来自专栏一个会写诗的程序员的博客

功能强大的jQuery图片查看器插件

1231
来自专栏屈定‘s Blog

Angular2学习记录-给后端程序员的经验分享

前几天刚下定决心把毕业设计改造下,因为毕业设计算是我学习的基石,学习到的东西都尽可能的在这个平台上施展,锻炼自己.改造为前后端分离,前端使用angular2,后...

462
来自专栏Google Dart

AngularDart Material Design 步进器 顶

(adsbygoogle = window.adsbygoogle || []).push({}); fun...

952

扫码关注云+社区