这期内容当中小编将会给大家带来有关怎么对Python渗透测试探测器的改善,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
改善探测器的结果显示
在这个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个词数,与探测器返回的结果相同。
这样我们的探测器更新到第三版,功能也越来越丰富了。
上述就是小编为大家分享的怎么对Python渗透测试探测器的改善了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。