基于web漏洞扫描及分析系统设计_kaic

news2024/11/25 11:28:47

基于web漏洞扫描及分析系统设计

摘 要
随着信息技术的发展和网络应用在我国的普及,针对我国境内信息系统的恶意网络攻击也越来越多,并且随着黑客攻击技术的不断地更新,网络犯罪行为变得越来越难以应对,用户日常访问的网站是否安全对于普通网民而言难以辨别,保护人民不受不法侵害也是难上加难。如何识别网站的潜在危险性,以及网站出现安全性问题该如何防御,尽可能减少网站被攻击后造成的实际损失,是目前迫切需要解决的难题。
本文使用VMware虚拟机技术模拟真实的网络环境,使用渗透测试技术对模拟网络进行薄弱点测试信息收集、攻击测试等,再现了渗透测试的重要流程和技术方法。在对目标主机实施渗透测试时,会从系统层面和Web层面两个维度进行测试,扫描出存在的漏洞,根据网站源码分析导致漏洞的原因,给出应对普遍性问题的解决办法。本课题参考现有的PTES渗透测试执行标准,对真实的案例进行渗透测试,使最终得到的研究结果在实际中能够得以应用。
除此之外,本课题使用python语言设计实现适用于普通网民的SQL漏洞扫描工具。该工具会帮助用户测试目标网站安全性,并会根据扫描结果给出适合用户的安全提示,重点是SQL注入漏洞的提示。SQL注入检测工具让普通人能够在上网时进行主动防御,这对国家网络安全建设有着非常重要的意义。
关键词: Web安全;SQL注入;网络安全;漏洞扫描。

Research and implementation of injection vulnerability scanning tool and protection method based on Web penetration technology

Abstract
With the development of information technology and the popularization of network applications in China, there are more and more malicious network attacks against China's information systems. With the continuous updating of hacker attack technology, cyber crimes become more and more difficult to deal with. Whether the Websites users visit daily are safe or not is difficult for ordinary Internet users to distinguish, and it is even more difficult to protect people from illegal infringement. How to identify the potential danger of the Website and reduce the actual loss caused by the attack is an urgent problem to be solved
This paper will use VMware virtual machine technology to build a simulated company's network environment, use penetration testing technology to collect weak point test information and attack testing on the simulated network, and reproduce the important processes and technical methods of penetration testing. When performing penetration testing on the target host, it is tested from the two dimensions of system level and Web level, scans for existing vulnerabilities, analyzes the causes of vulnerabilities according to the Website source code, and gives solutions to common problems. This project refers to the existing PTES penetration testing implementation standards, and conducts penetration testing on real cases, so that the final research results can be applied in practice.
In addition, this topic uses Python language to design and implement SQL vulnerability scanning tool suitable for ordinary Internet users. The tool will help users test the security of the target Website and give security tips suitable for users according to the scanning results, focusing on the tips of SQL injection vulnerabilities. SQL injection detection tool enables ordinary people to take the initiative to defend when surfing the Internet, which is of great significance to the construction of national network security.
Key words: Web security;SQL injection;network security;vulnerability scanning.
目录
基于web漏洞扫描及分析系统设计
摘 要
Abstract
1、绪论
1.1 研究背景
1.2 研究现状
1.3 研究目的与内容
1.4 设计目标及论文结构
2、渗透测试概要及流程
2.1 PTES渗透测试标准
2.1.1 PTES渗透测试流程
2.1.2 PTES 标准的缺陷
2.2 定制化渗透测试流程
2.3本章小结
3、测试实验环境搭建
3.1测试目标网络拓扑结构
3.2 测试目标网络配置
3.3 测试主机及测试工具
3.3.1 Kali Linux概述
3.3.2 Windows 概述
3.3.3测试工具Metasploit Framework
3.3.4测试工具 Nmap
3.3.5其他测试工具
3.4 测试目标主机概述
3.4.1 Windows server2008 靶机
3.5本章小结
4、系统漏洞研究
4.1系统漏洞现状及攻击态势
4.2扫描活跃主机
4.2.1扫描目标主机
4.2.2其他探测结果
4.3 系统漏洞测试
4.3.1 系统漏洞复现
4.3.2 分析测试结果
4.4 本章小结
5、Web漏洞研究
5.1 Web安全现状
5.2 SQL注入漏洞概述
5.3 SQL注入漏洞复现过程
5.3.1 SQL注入漏洞产生原因分析
5.3.2 漏洞修复建议
5.4 本章小结
6、SQL注入漏洞检测工具
6.1 现状分析
6.2 功能需求分析
6.3 总体设计
6.4 模块设计与实现
6.4.1 用户输入模块
6.4.3 报告模块
6.4.4 扫描结果分析
6.5 功能测试及其他测试
6.6 本章小结
7、总结
参考文献
附 录
致 谢
 
1、绪论
1.1 研究背景
随着互联网的快速普及,为了业务的方便快捷,各行各业都相继把重要的信息类业务搬到了网络上。因此信息网络安全与各行各业的关系越发紧密,所以保障网络运行稳定和安全也是在保护各大行业甚至国家的稳定运行。随着近些年来一些骇人听闻的网络安全事件的发生,各行各业都开始关注网络安全问题,尤其是规模较大的公司和企业以及政府的相关机构,网络安全成为了重中之重。
在一般情况下,开发人员会根据安全开发需求进行相应的应用开发,然而在开发时难免会出现考虑不在周全的现象,或者对于开发人员缺乏安全相关的培训,导致在开发时期察觉不到漏洞的存在,所以经常会在应用上线之后,漏洞被不法分子利用的情况发生。同时也会造成一系列难以弥补的损失。
科技在发展,渗透技术也在不断升级,更新的漏洞利用技术以及更新的恶意代码编制技术,都让计算机系统时时刻刻面临着被攻击的可能性。现如今,随着自动化测试工具的普及,在实施网络渗透时,攻击者只需要找出计算机系统的一个不起眼的漏洞,然后使用相应的自动化工具加以利用就可以上传恶意代码[5],然而这些不起眼的漏洞就会导致整个计算机系统陷入危险的境地。
网站数据泄露事件频发的今天,数据泄露事件最大的受害者最终还是普通网民。一些网站疏于管理[1],页面存在大量的不安全漏洞,作为普通人上网时难以辨别,所以本课题将设计并实现适用于普通网民的页面简洁、操作方便的SQL注入漏洞扫描工具,在上网时遇到需要采集重要信息的页面,用SQL注入扫描工具可以确定网站页面的安全性,判断是否存在容易被利用的SQL注入漏洞,能够在一定程度上保护人民信息财产的安全。这对国家信息安全的建设有着非常重要的意义。

1.2 研究现状
互联网时代,众多企业都会利用Web站点对外提供电子商务、电子政务、在线支付等服务。随着企业服务的多样化,庞大的计算机网络系统往往漏洞百出,不法分子进程会利用Web应用存在的漏洞进行非法获利。
目前,众多互联网安全厂商都推出了自己的网络安全设备,比如绿盟科技的漏洞扫描系统、天融信的防火墙设备、启明星辰的入侵防御系统。这些设备都能够对目前频发的不安全漏洞进行扫描或者修补。因为对应的漏洞必须在被发现并且研究过后,开发出对应的防御插件,还要及时更新到各设备上才能对受保护的网络系统进行对应的扫描或者防御。这个过程中包括对漏洞的发现、研究、设计开发插件、测试、发布更新[6]。这整个流程需要耗费大量的时间,经常是数周或者数月。然而,当一个漏洞被发现时,它已经是被不法分子利用过的,而且该漏洞的覆盖面也是相当广泛的,比如最近爆出的log4j中的第五个安全漏洞CVE-2021-44832,它影响日志库的所有版本,从 2.0-alpha7 到 2.17.0,2.3.2 和 2.12.4 除外。所以在计算机网络系统中部署过对应的安全设备后,也会被黑客绕过或者利用0day漏洞进行攻击。所以针对漏洞的被动防御往往存在滞后性。
目前网络安全问题主要集中在黑客攻击、应用软件漏洞和企业缺乏规范化管理。不法分子将木马程序或者病毒通过信息网络中存在的漏洞通过互联网的通讯数据传送到攻击目标服务器中达到犯罪目的。信息系统中应用软件作为企业对外提供服务的主体,随着业务的拓展升级,计算机系统上集成的应用软件越来越多元化,各应用软件的漏洞共同成为了整个信息系统的漏洞,无论哪个应用的都有可能导致整个系统的瘫痪。当计算机系统的运维管理人员缺乏规范性的管理也是信息系统的不安全因素之一。
为了保障计算机网络系统的相对安全和应对国家相关法律的规定,企业会对计算机网络实施模拟黑客攻击的渗透测试来评估计算机网络系统的安全性,测试人员通过标准的渗透测试流程对目标网络进行渗透。最终给被测单位提供记录系统中存在安全问题的渗透测试报告。
在互联网的网络安全形势日益严峻的今天,众多学者都在研究Web安全,比如蒲石对于SQL注入漏洞和XSS漏洞的形成原因和漏洞的验证方法的研究[30]、郑雷雷等人对Web应用常见的安全漏洞和测试方法的研究[31]、田伟提出了模型驱动的SQL注入渗透测试方法[32],能够提高对Web应用进行SQL注入的安全漏洞测试的准确性等等。通过这些学者的研究,发现以往的研究通常是集中于已经公布的高危漏洞的发现和防范[33]。以往对于渗透测试流程的研究往往是对渗透测试流程中的某一个步骤进行深入研究,对于整体的介绍相对较少,也没有对于渗透测试流程实施过后整体的效果进行分析研究。
对于自动化渗透测试工具的研究,研究人员的目标一般是开发出安全有效的渗透测试工具,以提高测试的效率和准确性,达到降低成本的目的。目前比较成熟的渗透测试工具有CoreImpact和Metasploit Framwork,这些工具为测试人员提供了极大的便利,但同时也会成为黑客的有力武器。

1.3 研究目的与内容
基于规范化的安全开发,不免在开发结束后或者产品交付后会遇到一些逻辑上的,或者变量处理不全面等漏洞,为了使计算机系统相对比较安全,所以厂商一般会对自家的产品或者自家的计算机信息系统进行渗透测试,即模拟黑客攻击,以攻击者的视角对计算机信息系统的安全性进行较为全面的评估,从攻击者的角度对计算机系统的任何弱点、技术缺陷或者针对漏洞的主动分析,这样可以发现并消除大多数的漏洞,使得计算机信息系统在今后的使用中出现安全问题的可能性大大降低。这也能提高所有相关人士的网络安全防护意识,也能对企业或组织的信息系统安全做出深入且具体的安全风险评估。
本课题将会在VMware虚拟机上搭建模拟公司的网络环境,参考现有的渗透测试流程,设计出适合本次研究的测试流程,使用渗透测试技术对目标靶机进行信息收集、漏洞扫描、漏洞测试及利用。在测试过程中,会用到现如今渗透测试人员在实施项目时经常使用的扫描工具进行测试,一方面是因为使用渗透测试工具会大大提高测试的效率和准确性,另一方面为达到尽可能贴合现实,使研究出的成果能够高效的应用于现实的目的。

1.4 设计目标及论文结构
本论文中,将使用VMware搭建漏洞测试需要用到的靶机以及kali Linux攻击计算机。课题整体是通过系统漏洞和Web漏洞两个方面针对靶机进行渗透测试,并且通过对靶机存在的漏洞进行研究,得出漏洞的形成原因、防御方法和手段以及渗透测试的实施流程进行研究,将通过研究个别已存在的实例,挖掘上面的漏洞,研究分析网站源码,总给出能够解决一类问题的通性防御方法,这对于网络安全的防护有着实际的意义。
第一章中,整体是为了理清并分析当前网络安全行业的现状以及国家乃至全世界面临的共同问题,从中剖析出本课题的研究价值。
第二章,根据实际的需求,区分实验与现实,根据不同的渗透测试目标,定制符合需求的渗透测试流程,根据实验的深究性和实际的严谨性分别设计符合要求的渗透测试流程,针对不同步骤适当进行增加或精简。
第三章,本章主要会根据本课题中的漏洞研究涉及到的内容在VMware上搭建符合需求的虚拟测试环境,并且还会对实验中用到的系统、工具和网络环境等基本情况加以说明,对靶机的Web服务部署情况和漏洞检测工具的使用情况以及其在现实中的应用广度都会加以说明,以求实验达到映射实际的标准。
第四章,根据第二章制定的渗透测试流程从信息搜集阶段对目标主机系统进行黑盒测试,也会分析实验与现实的异同点,力求实验做得严谨,结果符合实际。
第五章,本章会通过对现实网络环境以及网络安全事件的具体内容进行分析、推理,找出威胁性最高、发生最频繁的Web漏洞进行研究,并在虚拟靶机上进行渗透测试,秉承着从无到有的合理发展原则,通过一步一步的推理、测试,找出漏洞、利用漏洞、研究漏洞最后给出解决这类问题的通用化方案。
第六章,经过调查,在过去几年内,网络诈骗的事件时常发生,罪犯们能够对受害者的信息掌握的及其详细,其中大部分的数据来源竟然是网络攻击。众所周知,作为一个Web应用网站,其内部的用户数据通常都保存在后台的数据库中。然而,许多公共网站运营者的不负责任,对于已知的漏洞不及时修复,总是想着能用就行,这就导致了犯罪分子利用漏洞盗取公民信息的恶性事件发生。从而引发了一系列悲剧的产生。所以,在本课题中设计并开发了针对SQL注入漏洞进行检测的轻量化扫描工具。能够让非专业的普通人拥有判断网站是否安全,是否可信的能力。开发SQL漏洞扫描工具的原则为:简单易用、扫描精准、提供安全上网建议。
第七章,本章会对整个课题研究的全过程进行总结,阐述自己的观点以及课题的研究成果。针对课题研究过程中遇到的问题进行总结和分析,为后续的学习计划指明方向。 

 

 

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

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

相关文章

【八大排序(六)】快排终极篇-快速排序非递归版

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:八大排序专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习排序知识   🔝🔝 快排非递归版 1. 前情回顾2. 快排非递归基…

A100 GPU服务器安装CUDNN教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

从Window中先多瞥几眼

JavaFx17官方文档中有如下的描述: Window类是一个顶层窗口类,在其中可以承载场景,并与用户交互。窗口可以是Stage、PopupWindow或其他类似的顶层窗口。 JavaFX Stage类是顶级的JavaFX容器。初级阶段由平台搭建。其他Stage对象可以由应用程序构造。 许多Stage属性是只读的…

chatgpt赋能python:Python入门:如何添加Seaborn库

Python入门:如何添加Seaborn库 Python是一种易于学习的、功能强大的编程语言,在数据分析和科学计算方面尤其闻名。Seaborn是一个建立在Matplotlib之上的Python可视化库,它提供了一组简单易用的界面,用于绘制优美的统计图形——包…

几个Caller-特性的妙用

System.Runtime.CompilerServices命名空间下有4个以“Caller”为前缀命名的Attribute,我们可以将它标注到方法参数上自动获取当前调用上下文的信息,比如当前的方法名、某个参数的表达式、当前源文件的路径,以及当前代码在源文件中的行号。 一…

RedisSon高并发分布式锁实战RedisSon源码解读

Redis高并发分布式锁实战 1.分布式场景下的synchronized失效的问题–用redis实现分布式锁 synchronized是通过monitor实现的jvm级别的锁,如果是分布式系统,跑在不同的虚拟机上的tomcat上,会导致synchronized无法锁住对象 ----------- 需要分…

读数据压缩入门笔记05_字典转换

1. 瓶颈 1.1. 在网络带宽有限、存储昂贵的时期 1.2. 移动设备正日益成为人们访问互联网的首选的今天 1.3. 数据压缩成了缓解这些瓶颈的关键 2. 字典转换 2.1. dictionary transforms 2.2. 完全改变了人们对数据压缩的认知 2.2.1. 压缩变成了一种对各种类型的数据都有用的…

《C和指针》读书笔记(第十一章 动态内存分配)

目录 0 简介1 为什么使用动态内存分配2 malloc和free3 calloc和realloc4 使用动态分配的内存5 常见的动态内存错误6 内存分配实例6.1 排序一列整型值6.2 复制字符串6.3 变体记录的创建与销毁 7 总结 0 简介 在实际开发中(C语言),数组的元素存…

JDK,JRE,JVM有什么区别?跨平台?跨语言?

JDK Java Development Kit(Java开发工具包),提供了Java的开发环境和运行环境。包含Java源文件的编译器Javac,还有调试和分析工具。 JRE Java Runtime Environment(Java运行环境)包含了Java虚拟机&#xff…

WPF开发txt阅读器10:语音播报快进快退

文章目录 MySpeech类快进 文章目录 MySpeech类快进 txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录字体控件绑定💎前景/背景颜色书籍管理系统💎用树形图管理书籍语音播放💎播放进度显示 MySpeech类 …

MySQL 中有哪些锁?

数据库中锁的设计初衷处理并发问题,作为多用户共享资源,当出现并发访问的时候,数据库需要合理控制资源访问规则。锁就是实现这些访问规则中的重要数据。 锁的分类 根据加锁范围,MySQL 里面的锁可以分成全局锁、表级锁、行锁三类…

计算机视觉算法——BEV Perception算法总结

计算机视觉算法——BEV Perception算法总结 计算机视觉算法——BEV Perception算法总结1. Homograph Based——3D LaneNet2. Depth Based——LSS3. MLP Based——PON4. Transformer Based——BEVFormer5. Transformer Based——Translating Image into Maps 计算机视觉算法——…

急于生成人工智能是有风险的:如何保护数据

每天的业务用户都在尝试使用 ChatGPT 和其他生成式 AI 工具。事实上, Gartner 预测, 到 2025 年,30% 的营销内容将由生成式人工智能创建并由人类增强。 然而,像三星这样的公司已经发现,不了解新技术风险的用户正在成…

linux(线程控制)

目录: 1.线程创建 2.线程等待 3.线程终止 4.线程分离 5.线程ID -------------------------------------------------------------------------------------------------------------------------------- 1.线程创建 pthread_create pthread_t *pthread 是一个输出型…

Nucleo-F411RE (STM32F411)LL库体验 5 - 通用定时器TIM2的使用

Nucleo-F411RE (STM32F411)LL库体验 5 - 通用定时器TIM2的使用 1、简述 设定TIM2,计数周期为10KHZ,即计时1s需要10000次,通过shell命令动态修改reload值,来更改定时器的频率。 假定设定TIM2 counter cloc…

第五章 部署PKI与证书服务

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 PKI(公钥加密基础结构):通…

【C++】list的使用和模拟实现

目录 1.什么是list2.list的一些接口3.list的模拟实现3.1 迭代器3.2 list主体3.2.1 构造函数3.2.2 拷贝构造、赋值重载3.2.3 主体内引入迭代器3.2.4 insert和erase3.2.5 clear和析构函数 3.3 const迭代器的实现3.4 实现迭代器的operator-> 4.总结list迭代器的实现 1.什么是li…

领域驱动应用架构实践

一个合适的应用架构不仅能促使项目朝着好的方向发展,易于维护,也能指导团队成员有效协作。 DDD是站在领域的角度来驱动应用架构的落地,接下来将介绍一种落地方案。 架构分层 首先在架构层次方面,在遵循DDD的分层架构模式的同时&…

STM32单片机(六)TIM定时器 -> 第五节:TIM输入捕获

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

Nucleo-F411RE (STM32F411)LL库体验 4 -Letter Shell移植与调试

Nucleo-F411RE (STM32F411)LL库体验 4 -Letter Shell移植与使用 1、串口的初始化 Nucleo-F411RE自带st-link,并支持虚拟串口的功能,根据原理图,st-link的rx tx接到了Nucleo-F411RE的PA2 PA3,所以我们要初…