摘要:通过对传统互联网企业,以Web应用为主的公司学校的多次授权渗透测试,发现渗透测试的流程基本一致,由于人力和时间的不足在面对那种大的互联网企业和授权对象让前期信息收集变得效率低下和重复劳作,为了减少一些在渗透测试过程中的无用工和工作效率低下的问题。本次设计详细的把测试工作前期可以利用自动化工具完成的东西细化,做成一个自动化的漏洞检测工具以方便更多渗透测试工程师。
本文对Web应用漏洞检测工具的设计、实现、线上环境测试作了详细的描述,通过自己在渗透测试的理解和对国内外已公开的自动化工具的学习与分析,为自己的工具设计了5个模块,分别是,ip处理模块,二级域名查找模块,http服务探测模块,CMS(内容管理系统)识别模块,以及最后的漏洞检测模块,为了后期可以更好的拓展我们所需要的功能,我把各个模块分离,相互不干扰,直接继承主体的框架
在整个系统的模块中都是采用python来实现各个功能,其中ip处理模块调用了netaddr模块,二级域名查询模块调用了一个已经封装完成的DNS包,http服务探测模块和CMS识别模块,漏洞检测模块都继承了自己写的Scanner.py这个主框架来实现逻辑,为了方便后期对输出结果处理的需求,写了一个OutputFormatter.py方便进行自定义的输出,PackageThread这个模块是处理多线程的模块。
随着各大公司对网络安全的重视,各大安全厂商开发自己的cdn来方便甲方企业隐藏自己的真实ip,这样会对该工具的识别产生很大的影响,所以只能随着技术的提高来解决一些现有的问题,这个时候新的规则会逐渐加入这套系统
关键词:Python,识别,漏洞,模块
目录
摘要
Abstract
1 前言-1
1.1 系统分析-1
1.2 技术可行性分析-2
1.2.1 服务端-Python-2
1.2.2 UI端-PHP+html5-2
1.3 需求分析-2
1.3.1 功能需求-2
1.3.2 运行环境需求-2
2 系统整体设计-3
2.1 主框架的设计-4
2.1.1 主体框架的设计思路-4
2.1.2 主体框架的代码实现-5
2.2 二级域名查询模块的设计-9
2.2.1 二级域名查询设计思路-9
2.2.2 二级域名查询的代码实现-10
2.3 ip处理模块的设计-18
2.3.1 ip处理模块设计思路-18
2.3.2 ip处理模块代码实现-18
2.4 http服务探测模块的设计-20
2.4.1 http服务探测设计思路-20
2.4.2 http服务探测代码实现-22
2.5 CMS识别模块的设计-26
2.5.1 CMS识别设计思路-26
2.5.2 CMS识别的代码实现-27
2.6 漏洞检测模块的设计-29
2.6.1 漏洞检测模块设计思路-29
2.6.2 漏洞检测模块的代码实现-29
3 系统测试-30
3.1 功能测试-30
4 Bug分析和可扩展性分析-35
4.1 Bug分析-35
4.2 可扩展性分析-35
结 论-37
参 考 文 献-38
附录A 本文专业用语规定-39