漏洞扫描工具

news2025/1/9 9:19:44

完整源码项目包获取→点击文章末尾名片!

在这里插入图片描述

漏洞检测
该模块主要是对目标Web系统进行安全漏洞扫描,包括SQL注入、跨站脚本攻击(XSS)、弱密码、中间件漏洞。中间件漏洞扫描包括对Weblogic、Struts2、Tomcat 、Jboss、Drupal、Nexus的已知漏洞进行检测,用户提供目标URL并选择CVE漏洞编号。
设计思路
该模块的全扫描、SQL注入漏洞扫描、XSS漏洞扫描、弱口令扫描、仅爬取是调用 AWVS API 进行实现。中间件漏洞扫描是基于脚本模拟网络请求实现。根据漏洞形成的原因,生成一些测试 payload 发送到目标系统,再由返回的状态码和数据来判断payload是否有效。
实现效果
点击扫描目标跳转到漏洞结果页:
在这里插入图片描述

再点击扫描目标的跳转到漏洞详情页:
在这里插入图片描述

详细实现

总体来说,通过上述的代码实现,实现了将用户输入通过 JavaScript 传输给后台,后台接收数据后将调用 AWVS API,然后 AWVS 开始根据用户输入开始扫描目标 URL,扫描结束后将结果保存在数据库中。实现效果如下:
在这里插入图片描述

这个只展示了扫描目标列,其他列类似

最后实现的效果如下图所示,根据每个扫描状态不同有不同的显示,使用红黄蓝绿来分类高危、中危、低危、info等级的漏洞。最后展示了扫描的处理时间。
[图片]

表格中扫描目标列可以点击进入查看目标的所有漏洞信息,如下图所示,展示了特定的扫描目标每个漏洞的危险等级、存在漏洞的URL、漏洞的类型。
端口扫描
本系统端口扫描当用户指定了目标IP地址后,系统正式工作,IP传入后台对目标进行扫描,扫描完成后将开放端口和对应服务显示到前端界面上。在“按端口分布划分”和“按协议类型划分”两个栏目中对端口划分进行讲解,使用户免于查询的繁琐。同时该模块还将内置常见端口查询表,在此可进行端口及其对应服务和功能的相关查询和筛选,通过这一系列功能用户能够更加清晰的认识到目标主机开放了哪些服务,以此来分析可能存在漏洞的服务。
设计思路
本系统端口扫描的实现方法是利用Python提供的库函数Socket进行调用,通过TCP三次握手与目标计算机的端口建立连接。当完成一次完整的三次握手时,则可以推断出端口和对应服务是开放的,反之则没有开放,为了提高了扫描的效率,本系统引入多线程扫描机制。
实现效果
在这里插入图片描述

指纹识别
该模块采用提取指纹特征码特征信息来识别Web指纹,系统通过构造大量特殊的HTTP请求与Web服务器交互,从其响应数据包信息中提取提取指纹特征信息,然后通过与指纹数据库进行比对,从而获取到Web服务器及应用的组件信息和版本信息。通过发现这些特征信息并对它进行识别可以帮助我们快速地制定渗透策略,是渗透环节中关键的一步。
设计思路
国内外对Web服务器及应用指纹的研究,主要都是通过构造大量特殊的HTTP请求与Web服务器交互,从其响应数据包信息中提取提取指纹特征信息,然后通过与指纹数据库进行比对,从而获取到Web服务器及应用的组件信息和版本信息。本文采用基于关键字特征匹配的方法实现指纹识别功能,为了使检测结果更加准确,对比网上一些主流的指纹数据库,对本系统的数据库进行了一系列优化。
实现效果
详细实现
指纹识别流程中最关键的就是提取指纹特征这一步骤。提取指纹特征首先需要确定应该提取响应数据报文中的哪些数据。因此需要设计特征提取算法对响应数据报文进行分析,响应数据包是由响应行、响应头、响应体三部分构成。响应行由HTTP版本、状态码、状态码描述构成。响应头用于指示客户端如何处理响应体,响应头里面包含很多的组件信息,用于告诉浏览器响应的类型、字符编码服务器类型和字节大小等信息。响应体则是服务器根据客户端的请求返回给客户端的具体数据。响应头和响应体中包含了能够识别Web指纹组件的字段内容,因此,对响应头和响应体中关键字段的提取,是实现指纹识别技术的核心。
指纹识别技术分为信息收集阶段和Web指纹识别阶段。
(I)信息收集阶段:通过用户输入的URL,收集Web应用的特定字段信息,返回页面关键字或者特殊文件和路径等这些特征。收集的关键数据越多对接下来的指纹识别结果越准确。
(2)Web指纹识别阶段:该阶段包含两部分,一部分是指纹库的建立,该部分主要负责从已知的Web应用程序中收集特征信息,并且建立指纹特征库;本文通过分析HTTP响应数据报文,设计了网站指纹的提取规则,通过分析响应头字段和响应体内容构建了一个指纹组件信息库,信息库采用JSON格式进行存储。指纹信息是从Wappalyzer和FOFA等平台上进行收集归纳的。另一部分从待测的Web应用程序中收集特征信息,并与指纹特征库中的数据进行比较,从而识别出待测的web应用程序。
目录扫描
目录识别参照dirsearch实现,包含php、asp、jsp等网站类型进行扫描,还设置了递归扫描和自定义扫描选项。支持自定义前后缀或者子目录。
设计思路
Dirsearch 扫描的结果通过 JSON的格式保存在对应的路径下,因此我们可以减轻对数据库的依赖。获取的数据被分成 URL 和 TIMR,URL下又分为 content-length、path、redirect、starus四个部分。因为在 JSON 格式中被不同类型括号的数据会被 Django 解析为列表、字典等格式,因此我们需要对获得的 JSON 数据进行处理,将其转换为 Django 可以识别的数据,使之在前端进行读取。
要正确解析数据,需要先理解 Python 数据结构和 JSON 数据的转换方法。我们基于当前的固定的 JSON 格式去解析取得的数据。
实现效果
[图片]

信息泄露
该模块主要为用户提供常见的信息泄露检查。在前端直观的展示后台地址、配置文件等可能存在泄露的信息,在结果列表中,用户可以非常清晰的知道某个Web服务存在的信息泄露问题。
[图片]

旁站探测
该模块主要对通过 IP 地址,直接获取与当前 IP 所在服务器上的其它网站, 本模块直接调用 api 实现
[图片]

域名探测
该模块主要通过调用 api 来扫描网站的子域名
[图片]

完整源码项目包获取→点击文章末尾名片!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2273697.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP 销售确认收入的科目确定是由什么确定的?以及如何后台配置

财务同事问我,对销售单进行销售收入时确定收入科目是否是关联公司科目,我想当然的认为是由于客户主数据的贸易伙伴来决定的。后来查了一下配置,发现我搞错了。原来是通过客户的账号组来确定的。 然后我查了一下资料。分享如下: …

Kafka运维指南

一、Kafka架构概述 Kafka是一种分布式消息队列系统,采用发布 - 订阅模式,主要由生产者(Producer)、消费者(Consumer)、代理(Broker)和Zookeeper组成。 生产者:负责向Kaf…

Hadoop 实战笔记(一) -- Windows 安装 Hadoop 3.x

环境准备 安装 JAVA 1.8 Java环境搭建之JDK下载及安装下载 Hadoop 3.3.5 安装包 Hadoop 下载:https://archive.apache.org/dist/hadoop/common/ 一、JAVA JDK 环境检查 二、Hadoop(HDFS)环境搭建 1. 解压安装文件 hadoop-3.3.5.tar 2. 配置环境变量 HADOOP_HO…

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <

rabbitmq——岁月云实战笔记

1 rabbitmq设计 生产者并不是直接将消息投递到queue,而是发送给exchange,由exchange根据type的规则来选定投递的queue,这样消息设计在生产者和消费者就实现解耦。 rabbitmq会给没有type预定义一些exchage,而实际我们却应该使用自己定义的。 1.1 用户注册设计 用户在…

江科大STM32入门——SPI通信笔记总结

wx&#xff1a;嵌入式工程师成长日记 &#xff08;一&#xff09;简介 四根通信线&#xff1a;SCK、MOSI、MISO、SS(片选信号) 同步&#xff08;同步通信是一种通信模式&#xff0c;在这种模式下&#xff0c;发送方和接收方在同一时刻进行数据传输。&#xff09;&#xff0c;全…

Tableau数据可视化与仪表盘搭建-可视化原则及BI仪表盘搭建

目录 可视化原则 BI仪表盘搭建 仪表盘搭建原则 明确仪表盘主题 仪表盘主题拆解 开发设计工作表 经营情况总览&#xff1a;突出显示的文字 经营数据详情&#xff1a;表格 每日营收数据&#xff1a;多轴折线图 每日流量数据&#xff1a;双轴组合图 新老客占比&#xf…

Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问

在访问网页的时候&#xff0c;因为浏览器自身的安全设置问题&#xff0c; 对于https的网页访问会出现安全隐私的提示&#xff0c; 甚至无法访问对应的网站&#xff0c;尤其是chrome浏览器&#xff0c; 因此本文主要讲解如何设置chrome浏览器的设置&#xff0c;来解决该问题&…

微软发布AIOpsLab:一个开源的全面AI框架,用于AIOps代理

在当今这个云计算技术迅猛发展的时代&#xff0c;企业面临着前所未有的挑战与机遇。随着云基础设施的日益复杂化&#xff0c;它们成为了企业运营不可或缺的支柱。网站可靠性工程师&#xff08;Site Reliability Engineers&#xff0c;简称SRE&#xff09;和DevOps团队肩负着关键…

Pixel 6a手机提示无法连接移动网络,打电话失败!

1、开启VoLTE 2、如果没有&#xff0c;下载shizuku和PixelIMS应用。 shizuke Releases RikkaApps/Shizuku GitHub PixellMS Release v1.2.8 kyujin-cho/pixel-volte-patch GitHub 3、安装shizuke启动&#xff0c;开通root可以直接点击下面的启动&#xff0c;如果没有就…

【Arm】Arm 处理器的半主机(semihosting)机制

概览 通过 semihosting 机制&#xff0c;主机可以通过调试器使用目标计算机 IO 接口。 例如开发者的 PC 通过 J-Link 来使用 STM32 MCU 的输入输出。 这些功能的示例包括键盘输入、屏幕输出和硬盘 I/O。例如&#xff0c;可以使用此机制启用 C Library 中的函数&#xff0c;如…

Wireshark 学习笔记1

1.wireshark是什么 wireshark是一个可以进行数据包的捕获和分析的软件 2.基本使用过程 &#xff08;1&#xff09;选择合适的网卡 &#xff08;2&#xff09;开始捕获数据包 &#xff08;3&#xff09;过滤掉无用的数据包 &#xff08;4&#xff09;将捕获到的数据包保存为文件…

2025-01-06 Unity 使用 Tip2 —— Windows、Android、WebGL 打包记录

文章目录 1 Windows2 Android2.1 横版 / 竖版游戏2.2 API 最低版本2.3 目标帧率2.3.1 targetFrameRate2.3.2 vSyncCount2.3.3 Unity 默认设置以及推荐设置2.3.4 Unity 帧率托管 3 WebGL3.1 平台限制3.2 打包报错记录 13.3 打包报错记录 2 ​ 最近尝试将写的小游戏打包&#xff…

湘潭大学人机交互复习

老师没给题型也没划重点&#xff0c;随便看看复习了 什么是人机交互 人机交互&#xff08;Human-Computer Interaction&#xff0c;HCI&#xff09;是关于设计、评价和实现供人们使用的交互式计算机系统&#xff0c;并围绕相关的主要现象进行研究的学科。 人机交互研究内容 …

基于FPGA的出租车里程时间计费器

基于FPGA的出租车里程时间计费器 功能描述一、系统框图二、verilog代码里程增加模块时间增加模块计算价格模块上板视频演示 总结 功能描述 &#xff08;1&#xff09;&#xff1b;里程计费功能&#xff1a;3公里以内起步价8元&#xff0c;超过3公里后每公里2元&#xff0c;其中…

基于FPGA的洗衣机控制器电子定时器

文章目录 功能描述 一、框架 二、verilog代码 控制模块实现 三、视频上板效果展示 功能描述 &#xff08;1&#xff09;定时启动正转20秒暂停10秒反转20秒暂 停10秒&#xff0c;定时未到回到“正转20秒暂停10秒……”&#xff0c;定时到则停止; 若定时到&#xff0c;则停…

【Linux系列】Vim 编辑器中的高效文本编辑技巧:删除操作

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

大纲笔记幕布的替换

文章目录 前言类似的大纲软件探索 DynalistLogseq通过国内代码仓库建立 Git 仓库Logseq 的使用PC 端安卓端Git 操作Termux git 步骤Termux 的桌面组件&#xff1a;Termux widget 报错参考 前言 之前我一直用幕布&#xff0c;买了三年&#xff0c;奈何要过期了&#xff0c;又三…

STM32-笔记35-DMA(直接存储器访问)

一、什么叫DMA&#xff1f; DMA&#xff08;Direct Memory Access&#xff0c;直接存储器访问&#xff09;提供在外设与内存、存储器和存储器之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于CPU&#xff0c;在这个时间中&#xff0c;CPU对于…

【踩坑】SparkSQL union/unionAll 函数的去重问题

【踩坑】SparkSQL union/unionAll 函数的去重问题 测试数据 case class Employee(first_name:String)val employeeDF1 spark.createDataset(Seq( Employee("Mary"), Employee("Mandy"),Employee("Kurt") )) val employeeDF2 spark.createDat…