系统概述本系统是一款基于Python语言开发的Web资产发现与基础漏洞检测工具专为网络安全教学、课程设计及毕业设计场景打造。系统采用分层模块化架构通过自动化扫描技术帮助用户快速发现目标网站的资产信息如子域名、开放端口、敏感目录等识别Web应用指纹如CMS类型、服务器信息并检测常见的基础安全问题如信息泄露、配置缺陷、弱口令等。系统提供直观的图形化界面GUI支持扫描结果的可视化展示与风险分级同时具备报告导出功能满足教学实验与基础安全评估的需求。系统架构设计系统采用三层模块化架构各层职责明确模块间解耦便于维护与扩展。表现层GUI基于PyQt5框架开发提供用户交互界面包括目标输入、参数配置、扫描控制、结果展示资产信息与风险分级、日志输出及报告导出等功能。界面分为顶部配置区、摘要区、结果展示区和日志区布局清晰操作便捷。业务逻辑层ScannerEngine作为系统的核心调度器负责协调各功能模块的执行顺序控制扫描流程如子域名扫描→端口扫描→CMS识别→目录扫描→漏洞检测汇总扫描结果并生成统计摘要同时处理多线程调度与任务中断逻辑确保扫描过程的高效性与稳定性。功能模块层包含五个独立的功能模块各模块通过统一接口与业务逻辑层交互具体功能如下子域名发现模块通过内置字典data/subdomains.txt进行DNS爆破多线程并发解析过滤无效域名输出子域名及其对应IP地址。端口扫描模块基于Socket连接探测目标主机的开放端口结合常见端口服务映射如80→HTTP、3306→MySQL快速识别服务类型。CMS指纹识别模块通过HTML关键字匹配如/wp-content/识别WordPress、HTTP Header分析及特征路径探测如/favicon.ico的MD5值精准识别网站使用的CMS类型如WordPress、DedeCMS、Discuz等。敏感目录扫描模块使用字典data/dir_dict.txt对目标网站进行路径爆破结合状态码过滤如200、301与基线对比发现敏感路径如/admin、/phpinfo.php、/.git/。漏洞检测模块检测常见基础安全问题包括敏感信息泄露如.git/config、phpinfo.php、安全头缺失如CSP、X-Frame-Options及HTTP Basic Auth弱口令等。系统工作流程系统的扫描流程遵循“资产发现→指纹识别→漏洞检测”的逻辑具体步骤如下输入目标用户在GUI界面输入目标URL如example.com系统自动解析URL并获取目标IP地址。子域名扫描可选启用子域名发现模块通过字典爆破与DNS解析收集目标域名的子域名信息。端口扫描对目标IP进行端口扫描识别开放端口及对应服务如80端口→HTTP服务。构建Web入口根据开放的HTTP/HTTPS端口如80、443、8080构建可访问的Web入口URL如http://example.com:80。CMS指纹识别对Web入口URL进行指纹分析识别网站使用的CMS类型及版本信息。敏感目录扫描基于构建的Web入口使用字典扫描敏感目录发现潜在的管理后台、备份文件等路径。漏洞检测对发现的资产如Web入口、敏感目录进行基础漏洞检测识别信息泄露、配置缺陷等安全问题。结果汇总与风险分级业务逻辑层汇总各模块的扫描结果按风险等级高危、中危、低危、信息分类展示生成扫描摘要如端口数量、子域名数量、漏洞数量。输出报告支持将扫描结果导出为HTML或JSON格式的报告便于后续分析与存档。核心功能模块详解子域名发现模块支持多线程DNS解析内置常用子域名字典如admin、www、mail可快速发现目标域名的子域名资产输出格式为子域名→IP地址帮助用户扩大资产收集范围。端口扫描模块采用Socket连接探测技术优先扫描Top 1000常用端口如80、443、22、3306支持服务横幅抓取如获取Nginx版本信息为后续CMS识别与漏洞检测提供基础数据。CMS指纹识别模块内置JSON格式的指纹库data/cms_fingerprints.json包含主流CMS的关键字、Header及文件MD5特征识别准确率高可快速确定网站的技术栈为针对性漏洞检测提供依据。敏感目录扫描模块支持“快速扫描”Top 50字典与“深度扫描”完整字典两种模式结合状态码过滤与基线对比有效减少误报发现潜在的管理后台、备份文件、配置文件等敏感路径。漏洞检测模块聚焦基础安全问题检测内容包括敏感信息泄露如.git目录泄露、phpinfo.php信息泄露、robots.txt敏感路径暴露。安全头检测检查HTTP响应头是否包含CSP内容安全策略、X-Frame-Options防止点击劫持、HSTS强制HTTPS等安全头。弱口令检测对HTTP Basic Auth进行简单弱口令爆破如admin:admin识别默认凭证风险。风险分级与结果展示系统采用四级风险分级机制帮助用户快速识别安全问题的严重程度高危可直接利用的漏洞如弱口令、敏感信息泄露导致代码执行。中危存在安全隐患的配置问题如安全头缺失、目录列表开启。低危配置不规范但风险较低的问题如服务器版本信息泄露。信息普通资产信息如开放的端口、识别的CMS类型。扫描结果在GUI界面的结果展示区分为左右两栏左栏展示资产信息子域名、端口、目录右栏按风险等级展示安全检测结果不同风险等级使用不同颜色标识如高危红色、中危橙色、低危黄色、信息蓝色直观清晰。系统测试与性能表现系统经过功能测试、性能测试与异常测试确保稳定性与可靠性功能测试覆盖URL解析、端口扫描、CMS识别、目录扫描、漏洞检测等核心功能测试用例包括非法URL输入、常见端口识别、主流CMS指纹匹配、敏感目录发现及基础漏洞检测结果均符合预期。性能测试在8核CPU、16GB内存环境下扫描单个目标含子域名、端口、目录、漏洞检测平均耗时约5-10分钟取决于目标规模与网络状况多线程并发默认30线程下UI响应流畅无卡顿现象。异常测试模拟网络超时、DNS解析失败、无开放端口、用户中断扫描等场景系统均能正常处理异常不会出现崩溃或数据丢失日志区会实时输出错误信息便于排查问题。应用场景与适用对象教学实验适用于网络安全、信息安全相关课程的教学实验帮助学生理解Web资产发现与漏洞检测的基本原理与流程。课程设计/毕业设计作为计算机、网络安全专业的课程设计或毕业设计项目代码结构清晰模块解耦便于二次开发与功能扩展。基础安全评估可用于小型网站的基础安全自查快速发现常见安全问题提升网站安全性。总结本系统通过模块化设计与自动化扫描技术实现了Web资产发现与基础漏洞检测的核心功能界面友好操作便捷结果可视化程度高满足教学实验与基础安全评估的需求。代码结构清晰注释完善便于学习与扩展是一款实用的网络安全工具。项目程序目录如下最终程序运行效果开发原理Web资产发现与基础漏洞检测系统开发原理技术选型与架构原理系统以Python为核心开发语言充分利用其丰富的第三方库生态与跨平台特性结合分层架构思想实现功能解耦。技术栈包括GUI框架PyQt5提供跨平台的图形界面支持通过信号与槽机制实现界面与业务逻辑的异步通信确保扫描过程中界面不卡顿。网络通信requests库处理HTTP/HTTPS请求socket库实现底层端口探测结合多线程threading模块提升扫描效率。数据处理json模块管理配置文件与指纹规则BeautifulSoup解析HTML内容以提取CMS特征queue模块实现线程安全的任务调度。架构上采用“生产者-消费者”模式业务逻辑层作为生产者将扫描任务如子域名爆破、端口探测拆分为独立线程任务功能模块层作为消费者执行具体操作结果通过队列回传至业务层汇总最终由表现层渲染展示。核心模块开发原理子域名发现模块原理基于DNS查询的字典爆破技术。系统内置常见子域名字典如admin、www、mail通过多线程并发调用socket.gethostbyname()解析域名若解析成功则判定子域名存在。优化采用线程池控制并发数默认30线程避免DNS查询过载通过正则表达式过滤无效域名如包含特殊字符的记录并缓存已解析的IP以减少重复查询。端口扫描模块原理基于TCP连接探测的端口状态检测。对目标IP的指定端口发起TCP连接请求若连接成功返回0则判定端口开放结合预定义的端口-服务映射表如{80: HTTP, 443: HTTPS}识别服务类型。优化使用select模块实现非阻塞IO避免单端口超时导致整体扫描停滞支持自定义端口范围如Top 1000常用端口平衡扫描速度与覆盖率。CMS指纹识别模块原理多特征融合识别技术。通过以下方式匹配CMS特征HTML关键字下载目标页面源码搜索特定字符串如WordPress的/wp-content/、DedeCMS的Powered by DedeCMS。HTTP Header分析响应头中的X-Powered-By、Server等字段如X-Powered-By: PHP。特征文件请求特定路径如/favicon.ico计算其MD5值并与指纹库data/cms_fingerprints.json比对。优化采用优先级匹配策略先Header后HTML减少不必要的请求指纹库支持动态扩展用户可自定义添加新CMS规则。敏感目录扫描模块原理基于HTTP状态码的字典爆破。使用内置字典data/dir_dict.txt生成待探测路径向目标网站发送HEAD请求减少带宽消耗根据响应状态码判断路径有效性200→存在301→重定向403→禁止访问404→不存在。优化引入“基线对比”机制先请求随机不存在的路径获取基准状态码过滤误报支持深度扫描递归探测子目录与快速扫描仅Top 50常见路径模式切换。漏洞检测模块原理基于规则匹配的静态检测。针对常见安全问题设计检测规则信息泄露探测敏感文件如.git/config、phpinfo.php若存在则判定为高危漏洞。安全头缺失检查响应头是否包含X-Frame-Options、Content-Security-Policy等字段缺失则标记为中危风险。弱口令检测对HTTP Basic Auth接口使用默认凭据如admin:admin进行爆破成功则判定为高危。优化采用分级检测策略先执行低风险规则如安全头检查再执行高风险规则如文件探测避免触发目标网站的防御机制。系统交互与数据处理原理GUI与业务层通信通过PyQt5的信号Signal机制实现异步交互。例如用户点击“开始扫描”按钮时界面发送start_scan信号业务层接收后启动扫描线程同时通过update_log信号实时更新日志区内容避免界面冻结。结果存储与展示扫描结果以JSON格式存储包含类型、URL、风险等级、详情等字段业务层汇总后生成统计摘要如端口数量、漏洞数量表现层通过表格QTableWidget与树形控件QTreeWidget分级展示高危漏洞以红色高亮标识。报告导出支持导出为HTML与JSON格式HTML报告通过模板引擎如Jinja2生成可视化页面包含扫描目标、时间、风险分布图表及详细结果便于教学演示与文档提交。异常处理与稳定性设计超时与重试所有网络请求均设置超时时间默认3秒超时后自动重试1次避免单点故障导致扫描中断。线程安全使用queue.Queue管理任务队列与结果队列确保多线程环境下的数据一致性关键操作如文件读写加锁threading.Lock防止资源竞争。用户中断提供“停止扫描”按钮通过设置全局标志位self.stop_flag True通知各线程优雅退出避免强制终止导致资源泄漏。通过以上原理设计系统在保证功能完整性的同时兼顾了扫描效率、稳定性与易用性能够满足教学场景下对Web资产发现与基础漏洞检测的实践需求。