代码已上传至github
https://github.com/linxi0428/httpscan
作者博客
http://www.tiaozhanziwo.com/
更新日志
Httpscan Version:1.7
添加针对已存在的web目录开展迭代查询,迭代次数由Iterations参数控制;
修复迭代过程中遇到的死循环问题,由Deduplicate列表控制;
功能模块函数化,精炼部分代码;
添加request前,先期判断http与https页面,测试链接数降低一半;
添加特定的404页面判定,增强程序的准确度;
解决301、302跳转的相关问题;
删除控制台的print输出,python的编码转换问题以及cmd的兼容问题真是太挫了,重新定义了logging函数,仍然没有很好的解决中文的输出问题,难道python2版本就真的没办法解决了吗?希望知道的小伙伴告诉我下!
利用爬虫的特性,分析、读取响应页面的URL,作为进一步web目录测试的条件;
Httpscan Version:1.6
修复针对域名列表的测试相关问题;
修复部分bug;
Httpscan Version:1.6
修复针对域名列表的测试相关问题;
修复部分bug;
Httpscan Version:1.5
添加web页面测试时常见的漏洞目录等要素;
添加端口扫描模块,在测试的时候先进行端口扫描,然后针对指定端口开展web漏洞目录测试;
Httpscan Version:1.4
测试的时候发现对https的页面测试效果非常差,修复忽略https请求的证书验证等问题;
添加web页面测试时常见的漏洞端口等要素;
Httpscan Version:1.3
增加对多线程处理中的中断响应,(ctrl+c)实现柔和退出
Httpscan Version:1.2
增加https页面的访问功能,原来的版本https页面访问从日志信息中发现一直报错
Httpscan Version:1.1
增添日志输出功能,输出到程序目录的httpscan_log.txt文件中
Httpscan Version:1.0
代码是网上综合改造的
功能:基于web的信息探测,支持从文件读取目标(IP或域名),支持IP地址探测,IP地址支持CIDR,文件中的目标不加http(s)://,程序会自动添加
演示:
python xxx.py -f file.txt -t 20
python xxx.py 1.1.1.0/24 -t 20
Install(安装需求库与程序)
1、pip install nmap
2、pip install python-nmap
3、pip install IPy
4、pip install lxml
5、系统需要安装nmap程序(下载安装:https://nmap.org/)
To Do
有什么需求可以提交,我会着手改造!
1、https页面的访问问题,目前有些问题,其实就是证书相关的东西;(V-1.2版本已经解决)
2、增添对于访问目标后302跳转页面的输出以及日志记录功能;
3、添加对多线程处理中的中断响应(ctrl+c);(V-1.3版本已经解决)
4、添加域名解析、旁站解析、C段旁站解析;
5、测试的时候发现对https的页面测试效果非常不好,可能涉及到忽略证书等问题;(V-1.4版本已经解决)
6、在进行页面的测试时,简单添加常见的漏洞目录、漏洞端口等要素;(V-1.4版本初步构建功能)
7、收集了一个常见的网站目录,大概2000个,结合1.4版本构建的几千个常见web端口,完善一个测试策略。比如先进行一个端口扫描,再把开放的端口放入扫描队列,同时结合常见的漏洞目录列表进行,效率会有成倍的提升;(V-1.5版本构建功能)
8、添加网站爬虫方法,不断提升网站目录漏洞扫描精准度,目前目录的遍历探测仅仅针对根目录,后续将实现对其他的二级、三级乃至多级目录的探测;(V-1.7版本已经解决)
9、不断简化功能分类以及功能模组,提升代码的可读性以及代码分工的简易性;(V-1.7版本初步解决)
10、随着后期程序功能的不断扩充,替换部分效率低下的功能方法,去除不必要的接口、循环以及判断,提升程序的整体效率;
11、鉴于C段扫描过程太长,后续可以添加一个扫描进度显示,然后界面就不显示扫描结果了,这个可以从端口扫描结束的时候开始显示,端口扫描结束的时候,后续的整体request数量就定了;
12、目前的域名文件列表读取存在一些bug或者是问题,下一步着手解决;(V-1.6版本已经解决)
13、portscan扫描模块有时候会卡住(一些可能的原因python-nmap库,多线程解决方案不完善等问题),下一步着手解决;
14、扫描结果的优化处理:一是http的status为200,但是是一个特制的404页面,这种可以从title中做进一步判断;二是部分IP直接访问后,URL地址处会直接变成或者跳转到某个域名地址,结果可以把这一部分地址记录下来;(V-1.7版本初步解决)
15、利用爬虫的特性,读取响应页面的URL,作为进一步web目录测试的条件,优化了目录探测的准确度,提升了web探测的精度;(V-1.7版本初步解决)
Q & A
1、错误’ValueError: IP(‘1.1.1.1/24’) has invalid prefix length (24)’的解决办法
这个是由于IP地址的CIDR格式引起的,根据IPy的库规定,第一位必须是所在IP段的网络号,正确的写法如下:
1.1.1.0/24 : 1.1.1.0~1.1.1.255
1.1.1.128/25 : 1.1.1.128~1.1.1.255
1.1.1.64/26 : 1.1.1.64~1.1.1.127
1.1.1.32/27 : 1.1.1.32~1.1.1.63
1.1.1.16/28 : 1.1.1.16~1.1.1.31
2、结果保存的相关问题
结果除了显示在cmd的控制台界面外,还会在程序当前目录生成httpscan_log.txt文件,保存扫描的结果
3、当遇到错误’module’ object has no attribute ‘PortScanner’时,尝试重新安装python-nmap
pip uninstall python-nmap
pip install python-nmap
https://github.com/linxi0428/httpscan
作者博客
http://www.tiaozhanziwo.com/
更新日志
Httpscan Version:1.7
添加针对已存在的web目录开展迭代查询,迭代次数由Iterations参数控制;
修复迭代过程中遇到的死循环问题,由Deduplicate列表控制;
功能模块函数化,精炼部分代码;
添加request前,先期判断http与https页面,测试链接数降低一半;
添加特定的404页面判定,增强程序的准确度;
解决301、302跳转的相关问题;
删除控制台的print输出,python的编码转换问题以及cmd的兼容问题真是太挫了,重新定义了logging函数,仍然没有很好的解决中文的输出问题,难道python2版本就真的没办法解决了吗?希望知道的小伙伴告诉我下!
利用爬虫的特性,分析、读取响应页面的URL,作为进一步web目录测试的条件;
Httpscan Version:1.6
修复针对域名列表的测试相关问题;
修复部分bug;
Httpscan Version:1.6
修复针对域名列表的测试相关问题;
修复部分bug;
Httpscan Version:1.5
添加web页面测试时常见的漏洞目录等要素;
添加端口扫描模块,在测试的时候先进行端口扫描,然后针对指定端口开展web漏洞目录测试;
Httpscan Version:1.4
测试的时候发现对https的页面测试效果非常差,修复忽略https请求的证书验证等问题;
添加web页面测试时常见的漏洞端口等要素;
Httpscan Version:1.3
增加对多线程处理中的中断响应,(ctrl+c)实现柔和退出
Httpscan Version:1.2
增加https页面的访问功能,原来的版本https页面访问从日志信息中发现一直报错
Httpscan Version:1.1
增添日志输出功能,输出到程序目录的httpscan_log.txt文件中
Httpscan Version:1.0
代码是网上综合改造的
功能:基于web的信息探测,支持从文件读取目标(IP或域名),支持IP地址探测,IP地址支持CIDR,文件中的目标不加http(s)://,程序会自动添加
演示:
python xxx.py -f file.txt -t 20
python xxx.py 1.1.1.0/24 -t 20
Install(安装需求库与程序)
1、pip install nmap
2、pip install python-nmap
3、pip install IPy
4、pip install lxml
5、系统需要安装nmap程序(下载安装:https://nmap.org/)
To Do
有什么需求可以提交,我会着手改造!
1、https页面的访问问题,目前有些问题,其实就是证书相关的东西;(V-1.2版本已经解决)
2、增添对于访问目标后302跳转页面的输出以及日志记录功能;
3、添加对多线程处理中的中断响应(ctrl+c);(V-1.3版本已经解决)
4、添加域名解析、旁站解析、C段旁站解析;
5、测试的时候发现对https的页面测试效果非常不好,可能涉及到忽略证书等问题;(V-1.4版本已经解决)
6、在进行页面的测试时,简单添加常见的漏洞目录、漏洞端口等要素;(V-1.4版本初步构建功能)
7、收集了一个常见的网站目录,大概2000个,结合1.4版本构建的几千个常见web端口,完善一个测试策略。比如先进行一个端口扫描,再把开放的端口放入扫描队列,同时结合常见的漏洞目录列表进行,效率会有成倍的提升;(V-1.5版本构建功能)
8、添加网站爬虫方法,不断提升网站目录漏洞扫描精准度,目前目录的遍历探测仅仅针对根目录,后续将实现对其他的二级、三级乃至多级目录的探测;(V-1.7版本已经解决)
9、不断简化功能分类以及功能模组,提升代码的可读性以及代码分工的简易性;(V-1.7版本初步解决)
10、随着后期程序功能的不断扩充,替换部分效率低下的功能方法,去除不必要的接口、循环以及判断,提升程序的整体效率;
11、鉴于C段扫描过程太长,后续可以添加一个扫描进度显示,然后界面就不显示扫描结果了,这个可以从端口扫描结束的时候开始显示,端口扫描结束的时候,后续的整体request数量就定了;
12、目前的域名文件列表读取存在一些bug或者是问题,下一步着手解决;(V-1.6版本已经解决)
13、portscan扫描模块有时候会卡住(一些可能的原因python-nmap库,多线程解决方案不完善等问题),下一步着手解决;
14、扫描结果的优化处理:一是http的status为200,但是是一个特制的404页面,这种可以从title中做进一步判断;二是部分IP直接访问后,URL地址处会直接变成或者跳转到某个域名地址,结果可以把这一部分地址记录下来;(V-1.7版本初步解决)
15、利用爬虫的特性,读取响应页面的URL,作为进一步web目录测试的条件,优化了目录探测的准确度,提升了web探测的精度;(V-1.7版本初步解决)
Q & A
1、错误’ValueError: IP(‘1.1.1.1/24’) has invalid prefix length (24)’的解决办法
这个是由于IP地址的CIDR格式引起的,根据IPy的库规定,第一位必须是所在IP段的网络号,正确的写法如下:
1.1.1.0/24 : 1.1.1.0~1.1.1.255
1.1.1.128/25 : 1.1.1.128~1.1.1.255
1.1.1.64/26 : 1.1.1.64~1.1.1.127
1.1.1.32/27 : 1.1.1.32~1.1.1.63
1.1.1.16/28 : 1.1.1.16~1.1.1.31
2、结果保存的相关问题
结果除了显示在cmd的控制台界面外,还会在程序当前目录生成httpscan_log.txt文件,保存扫描的结果
3、当遇到错误’module’ object has no attribute ‘PortScanner’时,尝试重新安装python-nmap
pip uninstall python-nmap
pip install python-nmap