博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W+、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人
文章目录
- [第一章 项目简介](#第一章 项目简介)
- [第二章 技术栈](#第二章 技术栈)
- [第三章 Web应用程序漏洞检测技术](#第三章 Web应用程序漏洞检测技术)
-
- [3.1 网络爬虫](#3.1 网络爬虫)
-
- [3.1.1 网络爬虫原理](#3.1.1 网络爬虫原理)
- [3.1.2 爬取策略](#3.1.2 爬取策略)
- [3.1.3 Scrapy爬虫架构](#3.1.3 Scrapy爬虫架构)
- [3.2 SQL注入漏洞](#3.2 SQL注入漏洞)
- [3.3 XSS漏洞](#3.3 XSS漏洞)
- [第四章 系统设计与实现](#第四章 系统设计与实现)
-
- [4.1 系统整体设计](#4.1 系统整体设计)
- [4.2 爬虫模块的设计与实现](#4.2 爬虫模块的设计与实现)
-
- [4.2.1 爬虫模块的设计](#4.2.1 爬虫模块的设计)
- [4.2.2 爬虫模块的实现](#4.2.2 爬虫模块的实现)
- [4.3 XSS扫描模块的设计与实现](#4.3 XSS扫描模块的设计与实现)
- [4.4 应用中SQL注入](#4.4 应用中SQL注入)
- [4.5 相关报告生成](#4.5 相关报告生成)
- [第五章 系统的实现与漏洞挖掘](#第五章 系统的实现与漏洞挖掘)
-
- [5.1 系统的首页面](#5.1 系统的首页面)
- [5.2 web漏洞挖掘网站首页](#5.2 web漏洞挖掘网站首页)
- [5.3 漏洞总览页面](#5.3 漏洞总览页面)
- [5.4 漏洞详情页面](#5.4 漏洞详情页面)
- [第六章 推荐阅读](#第六章 推荐阅读)
- [第七章 源码获取:](#第七章 源码获取:)
第一章 项目简介
本次技术通过利用Python技术来开发一款针对web漏洞挖掘扫描的技术,通过web漏洞的挖掘扫描来实现对网站URL的漏洞检测,通过高中低风险的判断来实现对一款网站中存在的漏洞进行可视化的分析,从而能够找到问题并且尽快的实现问题的解决。
网络漏洞扫描技术能够通过以攻击者的视角出发,通过模拟对程序的攻击来认识到程序可能存在的风险,从而更快速的找到问题的所在,实现有效的漏洞补丁完善等功能实现。漏洞挖掘扫描技术是一种主动的防御过程,是未雨绸缪的一种防护手段。这种手段能够通过提前对web进行渗透扫描来了解到网页的运行参数、时间参数等信息内容,从而通过扫描形成的检测报告来查找到系统中可能存在的威胁情况。而本次就是通过了Python技术来打造一款能够实现有效的网页漏洞扫描的主要功能实现,通过对网页的提前扫描来主动的进行安全的检测,之后再通过可视化的图表方式来对查找到的漏洞情况进行直观的展示,从而能够有效的为用户提供提醒或者警示的作用,告诉用户该网站是否安全,做好提前的使用判断。
【源码】基于Python的web漏洞挖掘技术的实现与研究
第二章 技术栈
原理:采用扫描软件awvs进行扫描
后端:Python Django
前端:HTML,Javascript
第三章 Web应用程序漏洞检测技术
3.1 网络爬虫
3.1.1 网络爬虫原理
网络爬虫是通过对网页中的URL加以利用,进而获得网页内的资料信息,通过模仿正常的网页登录方式来对网页中的内容进行下载以及深层次的内容分析。网络爬虫通过以数据源的地址为爬取的起始点,通过搜集URL,筛选出有关的连接信息,通过特定的规则来进行连接的筛选,通过将连接保存在队列中来完成下一步的搜索,直至搜索的队列内容为空为止。下图是一个网络爬虫的基本操作流程图:
3.1.2 爬取策略
爬取数据是需要有策略导向的,在URL队列汇总通过对搜索次序的排列来完成对整个爬取策略的订制,爬虫的相关策略有以下的几种方式:
(1)深度优先策略
通过以种子URL为起始点,从七点到下一个访问点之间不再有任何的访问节点,通过这种路径方式来实现深度的数据爬取,指导两个节点中间再无节点位置。深度优先的策略是一项能够完完整整的从网页上将所有的信息进行爬取的一种技术,但是这种技术也有着不足之处,如果爬取的内容过深,则该技术会进行无限的爬取,影响到爬取数据的准确度。
(2)广度优先策略
在这种优先策略的使用上,是以尽可能的覆盖整个网络来实现宽优先的搜索策略,通过这种搜索的过程能够从平行的起点开始,通过同一深度来进行有效的数据攀爬过程实现,反复攀爬直至全部的连接完成。
(3)最佳优先策略
最佳优先,是通过在传统的算法之中加入一系列特殊的算法,通过以算法为基础来进行一个可扩展的策略制定,通过将网页分析算法进行页面的分析,通过预测连接的需求来实现在通过思考之后将有必要爬取的连接放置在队列中,这种方式后期也是对队列中的信息进行不断的扫描纸质队列为空位置。这种算法的针对性更强,爬取的效率也更快。
3.1.3 Scrapy爬虫架构
本次在网络爬虫的选择上,由于系统的功能模块开发选择了Python技术,所以此次的爬虫架构也选择了Python语言下的Scrapy来进行爬虫功能的实现,在此次的设计上,该技术的主要由七大部分组成,通过scrapy作为主引擎,通过下载器来进行页面的相关内容的获取,通过蜘蛛和爬虫中间件来完成对数据的爬取功能。
3.2 SQL注入漏洞
SQL注入是现在通过数据库漏洞而造成的一项安全隐患巨大的漏洞,由于直面数据库,这种漏洞十分的危险,对于国家的安全、个人的信息安全等均可以造成巨大的损失。这种注入方式难易被察觉,和普通用户在使用网站是的数据存取基本相同,防火墙等安全措施无法进行报警,使得该注入漏洞有着极强的隐蔽性。SQL注入能够将常规的数值进行修改,改成SQL不敏感的一个字符串,通过这种修改来让字符串录入数据库是难易被察觉。这种漏洞出现的原因是在程序的开发过程中,在SQL语句的编译上,没有进行用户参数的严格全面的检查,使得SQL语句拼接的过程中存在问题,并将这种带有问题的语句提交到数据库汇总记性了运行。
SQL的注入方式通常会通过以用户输入的方式进行注入,这种方式下由于不严格的进行用户的输入参数值的筛选,从而造成含有特定含义的参数植入到SQL语句中,会实现数据库的侵入。Cookie的注入方式是通过输入cookie值的方式来进行SQL的注入。第三种方式是通过服务器的变量注入的方式通过以HTTP报头的环境变量,通过插入进行设计的敏感字符串,来实现注入运行。
3.3 XSS漏洞
跨站脚本攻击的方法也是常见的漏洞东之一,被简称为XSS漏洞,这种漏洞是在开发人员在提交用户数据时没有进行筛选和过滤,使得攻击脚本被传至浏览器中,并且在浏览器中被触发,从而产生安全的漏洞,这种方式下,通常有三种漏洞的形式,分别为反射型、存储型以及DOM型。
反射型的XSS漏洞中,攻击者通过将带有恶意脚本的网页返回给用户,并且通过在浏览器上进行恶意的脚本出发,从而使得攻击者能够获取个人用户的信息,如下图所示:
DOM型的漏洞攻击与XSS相似,都是通过这种方式来寻找网页中的反射型的缺陷。DOM是能够通过JavaScript的脚本动态来进行模型的修改。而存储型的XSS相对于前两者而言更加具有隐蔽性,其危害性也更加,通过对网页上存储的矢量进行攻击,使其在网页上执行攻击代码,从而获取用户的个人信息。这种方式的结构如下所示:
第四章 系统设计与实现
4.1 系统整体设计
此次在漏洞挖掘技术的使用上,主要通过以四个部分来进行相应的内容组成,分别为信息采集、输入参数分析、缺陷检测、缺陷报告产生等来进行设计,其主要的整体设计图如下所示:
通过上图可以看出此次的系统设计需要通过三大部分来实现有效的功能设计实现,分别为爬虫、漏洞探测、SQL注入,通过这三个步骤之后在网页端形成报告的生成。
(1)爬虫模块是以主题爬虫为最为基础的内容设计,通过对URL的相关数据爬取来实现有效的信息的下载获取;
(2)缺陷探测过程中,通过对正常的URL、带有缺陷的URL等进行检测,将检测出的内容存储在数据库汇总。
(3)通过SQL注入来进行数据库的SQL语句的内容测试。
4.2 爬虫模块的设计与实现
4.2.1 爬虫模块的设计
此次在爬虫模块的设计上,需要体现出爬虫爬取速度快、能够为用户快速的得到结果的处理方式来进行漏洞挖掘扫描技术的推进。所以本次通过采用广度优先的方式能够很好的通过覆盖页面的爬取方式来制定一个策略性的深度爬取过程,通过对系统的有效爬取来实现对相关信息的提取实现。主要分为了以下的几个步骤:
(1)网页下载
网页下载是通过将HTTP的请求发送到目的地,通过HTTP响应的方式来对页面进行分析,从最初的URL为起始点,将所有页面进行快速的浏览并且将其全部的存储到本地数据库中。
(2)提取URL
这种方式是通过抽取URL连接,通过正规运算规则,以字符串的排列来对字符串进行在线的匹配。通过对URL的规范、标准进行检测,将符合本次测试要求条件的URL保存到需要爬取的URL队列之中。
(3)提取可能的注入点信息
这种方式是通过从form表格中进行相关信息的查找,通过输入域< input>选择域> select>多行文本域的方式来进行相应的名称和价值属性管理的排列。通过以method作为请求的提交范式来进行get和post的获得。通过这种方式来检测使用者的表单中是否加入了恶意代码,如果加入了恶意代码则会在产生程式上产生缺陷。此次设计的爬虫整体的设计图展示如下:
爬虫模块设计图如下:
4.2.2 爬虫模块的实现
本次设计的爬虫模块的设计如下图所示:
4.3 XSS扫描模块的设计与实现
本次在XSS的检测设计上,是此次搭建的漏洞挖掘技术软件的一个非常关键的功能,通过该功能能够模拟恶意代码的注入,通过静态的扫描方式来找到可能存在缺陷的代码及模块,本次的设计如下:
此次的XSS设计是通过在服务器上建立一个特定的编码,通过对特定的编码进行标记,将其镶嵌在服务器中,通过返回的数据信息来进行漏洞的判定以及漏洞的挖掘实现。
XSS模块的流程如图。
(1)使用者在网站或者搜寻模组中通过获取目标网站来对目标网址进行判定,判定其是否满足搜寻目标的选定,如果满足则进入下一步的测试环节。
(2)在URL的参数分解上,通过自定义的key来代替相应的参数信息,从而向数据库发送请求,通过对得到的返回的请求信息进行判断来进行URL的保存。
(3)在参数的搜集过程中,如果出现清单不为空,则需要对该类表进行请求的判定,通过关键字来查找到key所标记的位置,通过位置属性的查找来实现URL的存储。
(4)通过在词典中读取每一个URL通过在payload中进行注入码的加载,来发送到服务器,通过服务器来判断是否返回,如果存在注入代码则代表着存在XSS威胁。
4.4 应用中SQL注入
在URL、cookie参数以及from窗体中都是出现SQL注入的常见地带。在SQL注入的扫描过程中,要通过工具的探测来实现服务器交互的实现。该工具能够探测到与服务器交互的各个位置,通过观察服务器的反应过程来判断SQL的注入漏洞缺陷。
SQL注入最为基本的方式是利用了网络应用不会对用户输入的数据及西宁筛选,从而通过在用户输入的内容中形成一个动态的SQL语句来实现特定字符的注入。SQL注入检测过程如下图:
本次设计的SQL注入漏洞挖掘技术的主要操作步骤展示如下:
(1)通过确定URL的需求,通过向服务器发送请求,在得到的信息中进行form标签的查看,然后再进行下一项内容的查询。
(2)在网页的分析中,通过返回的信息获取用户名和密码的标签名称。
(3)通过整体的运算操作,以大量的URL词典来进行下一步的请求发送,再一次的得到服务器的反馈分析。
(4)通过用户的身份验证,通过黑盒的方式来不断的输入信息来进行恶意的登录过程。
(5)在每一次都输入错误的过程中,查找一些其他方面的信息统计,通过status来进行信息的确认实现。
4.5 相关报告生成
本次的系统设计上,最终反馈给用户的如果仅仅是一串代码,很难满足大众的使用需求,因此需要将生成的报告形成可视化的方式来进行很好的内容展示工作完成。
在报告的生成上,通过以XML的方式来进行信息的转化有着很好的使用效果,XML是一种开放的、不依赖平台也不依赖于供应商的一种技术标准,这种技术标准可以在网页中进行直接的使用,因此具有很强的跨平台特点,能够在各类平台上进行XML文档的读写、处理等工作的实现,可以通过纯粹的文字文档来实现有效的通讯传输的功能实现,是一种纯粹的、有着很好的通信方式实现的长文本传送的格式。其体积轻便,能够通过很小的空间占用来实现高效的信息存储的工鞥那服务。能够实现有效的自我描述,通过标签、符号、自定义内容等方式来进行很好的内容组件,将电脑中的操作数据进行可视化的展示服务。
第五章 系统的实现与漏洞挖掘
本次的系统开发是建立在Python技术、django框架下来进行的页面模块开发,通过以scrapy爬虫技术来进行漏洞挖掘功能的实现,通过爬虫技术所爬取的数据信息全部存储在MySQL数据库中。
5.1 系统的首页面
此次的系统首页面是登录的页面,需要用户完成登录后才能够在网站中实现爬虫的功能应用。
5.2 web漏洞挖掘网站首页
在登录完成后,系统会进入到web漏洞挖掘的网站首页,在该页面中有爬取的总URL数、高危漏洞数、中危漏洞数以及低危漏洞数等。并且其他的功能菜单还有漏洞总览、漏洞详情等功能,配合有个人信息的维护管理的功能模块。如下图所示:
5.3 漏洞总览页面
在漏洞总览页面中,能看到扫描历史的主要URL情况,包括扫描的状态,出现的高危、中危、低危的漏洞个数,扫描完成的时间等内容,并且在对话框中也能够进行新的URL地址的输入并且进行搜索。如下图所示:
5.4 漏洞详情页面
在漏洞详情中,能够看到逐条显示的URL漏洞的名字、关联编号以及漏洞的危险等级等,通过这些信息的归类可以完成对漏洞的详细内容展示的功能实现,如下图所示:
第六章 推荐阅读
Java基于SpringBoot+Vue的网上图书商城管理系统(附源码,教程)
第七章 源码获取:
大家点赞、收藏、关注、评论 啦 、查看 👇🏻获取联系方式👇🏻
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人