WEB网站服务器安全漏洞扫描环境搭建及漏洞工具扫描

在这里插入图片描述

一、适用环境

1、企业自建有门户网站;
2、使用Struts框架的WEB网站;
3、网站服务器涉及有数据库之类的项目,如:微信登录、手机登录、充值、收费等。
4、使用安卓版、苹果版、电脑版结合的缴费类网站平台。
5、方便但需提高安全性的WEB网站系统。

二、安装配置Struts漏洞扫描工具的运行环境

(一)什么是Struts

struts2安全漏洞是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等互联网、政府、企业门户网站。
攻击者可通过发送恶意构造的HTTP数据包利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站造篡改等影响。由于该漏洞利用无需任何前置条件(如开启dmi ,debug等功能)以及启用任何插件,因此漏洞危害较为严重。
国家信息安全漏洞库(CNNVD)收到关于Apache Struts2 (S2-045)远程代码执行漏洞(CNNVD-201703-152)的情况报送。由于该漏洞影响范围广,危害级别高,国家信息安全漏洞库(CNNVD)对此进行了跟踪分析。
Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web 应用的开源MVC框架,主要提供两个版本框架产品: Struts 1和Struts 2。
Apache Struts2漏洞是由于上传功能的异常处理函数没有正确处理用户输入的错误信息。导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令。
攻击者可通过发送恶意构造的HTTP数据包利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站篡改等影响。由于该漏洞利用无需任何前置条件(如开启dmi ,debug等功能)以及启用任何插件,因此漏洞危害较为严重。

(二)安装java运行环境jdk

参考:CentOS8下的JDK安装
https://blog.csdn.net/weixin_43075093/article/details/134822281
1、查看当前java的版本、检查是否存在jdk
java -version
(1)当前系统中没有安装java
在这里插入图片描述

(2)当前已经有的java版本
在这里插入图片描述

2、删除当前版本
(1)查看当前有哪几个安装包可删除:rpm –qa |grep java
(2)删除某个安装包:rpm –e –nodeps java-x.x.x-openjdk
(3)再查看java是否存在
在这里插入图片描述

3、查看可安装的java版本:yum –y list java*
在这里插入图片描述

4、安装JDK:yum install java-1.8.0-openjdk-devel.x86_64
在这里插入图片描述
在这里插入图片描述

5、查看已经安装好的java版本:java -version
在这里插入图片描述

6、yum 命令安装默认安装路径为 /usr/lib/jvm
在这里插入图片描述

7、配置环境变量:vi /etc/profile
set java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-3.e18.x86 64
export CLASS_PATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar: J R E H O M E / l i b P A T H = JRE_HOME/lib PATH= JREHOME/libPATH=PATH: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
在这里插入图片描述

8、执行source /etc/profile
9、查看环境变量更新后的结果中有jdk的路径
在这里插入图片描述

10、若未知是否已配置JAVA_HOME
(1)查找本机中JDK安装的位置
Find / -name java
在这里插入图片描述

(2)编辑环境变量 vim /etc/profile
执行环境变量 /etc/profile
在这里插入图片描述

(3)执行$JAVA_HOME,能正常显示一个路径
在这里插入图片描述

(三)下载Struts漏洞扫描工具

(严禁用于非授权的测试及非法途径)下载地址:
https://github.com/abc123info/Struts2VulsScanTools
在这里插入图片描述
在这里插入图片描述

(四)启动漏洞扫描工具

在这里插入图片描述

(五)执行漏洞扫描

在这里插入图片描述

三、远程代码命令执行的防御措施

1、假定所有的输入都是可疑的,对所有输入提交的可能执行命令的语句或构造语句严格检查,或控制外部输入;系统命令执行时,执行的结果与参数不传递到外部。
2、输入验证与过滤:验证输入的数据时,验证其名称、格式、长度、类型等信息。
3、在客户端与服务端都进行数据的验证与过滤。
4、对输出的数据检查,如数据库的输出或程序执行结果的输出进行检查验证。
5、对输入的数据进行编码加密,也在各输出点进行安全检查。
6、参数化查询:在处理数据库查询时,应使用参数化查询方式,而不是简单拼接SQL语句。参数化查询可以有效防止SQL注入攻击,避免攻击者通过恶意输入改变SQL查询的意图。开发者应该使用预定义的参数,并对参数进行正确的类型检查和转换。
7、最小权限原则:在服务器配置和应用程序设置中,遵循最小权限原则。即为每个角色或模块分配最少的权限,避免一些不必要的操作和权限。例如,数据库用户应该只拥有访问特定数据表的权限,而不是整个数据库的访问权限。
8、安全编码实践:在开发过程中,应采取安全编码实践,避免一些常见的安全漏洞。例如,禁止使用非安全的文件操作函数,如eval、exec等;不暴露系统和框架的详细错误信息,以防攻击者利用这些信息进行攻击。
9、安全框架和工具:选择适合的安全框架和工具来加强网站的安全性。安全框架和工具可以提供许多防御机制,如输入过滤、错误处理、访问控制等。开发者可以利用这些工具来规避一些常见的安全风险。

本文至此结束,不足之处敬请批评指正。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux-centos修改时区时间

修改时区为北京时间 先输入tzselect,输入5,再输入9,再输入1,最后再输入1就行了 修改系统时间和硬件时间 查看当前时间 命令date修改系统时间 命令date -s "2024-04-21 18:30:30"查看硬件时间 命令hwclock --show修改…

AIGC Chat GPT 用思维导图总结,数据分析所需要掌握的Excel知识

你还不会制作思维导图吗? 现在已经可以零门槛一键生成,只需跟AI说一句话,就能完成!!! 生成一个思维导图,主题是数据分析师需要掌握的Excel知识,在新窗口生成思念导图。 AIGC ChatG…

ONES 功能上新|ONES Wiki 新功能一览

支持在 ONES Wiki 页面中使用分栏进行横向排版,丰富排版方式,帮助用户以更丰富的版式展示内容。 应用场景: 页面的布局对内容的阅读有很大的影响。当页面中有图文混排的需求时,可以通过分栏来组织页面结构,以更清晰、更…

倾囊相授,ChatGPT干货技巧全在这里!如果没有这个方法我不可能学好ChatGPT

ChatGPT虽然已经问世一年多,但不少朋友还处于刚接触的阶段。于是,我们特别梳理了一些常见问题,尝试着用通俗的语言解释清楚这些内容。 1. ChatGPT的官方网址 https://www.chatgpt.com 你只要Google搜索能打开,这个网址肯定能打开。…

2024年成都市“蓉贝”软件人才年度评估及资金支持申报对象内容、材料要求

一、申报对象 经2023年评估合格的第一批(2019年评聘)、第二批(2020年评聘)、第三批(2021年评聘)“蓉贝”软件人才,2022年评聘的第四批“蓉贝”软件人才。 二、评估内容 (一&#…

java和python刷题的一些语法规则总结(未完成)

语法总结 Java篇1、代码补全2、编程题中常用头文件3、编程题常用的内置方法4、模版 Python篇1、2、编程题中常用的头文件3、编程题中常用的内置方法4、伪代码模版 去哪练习? 1、LeetCode上有个面试模拟 2、牛客公司真题(ACM模式) ⚠️ 笔试均…

AI-数学-高中-44导数的运算法则

原作者视频:【导数】【一数辞典】3导数的运算法则(略难)_哔哩哔哩_bilibili 三种求导表达方式一样的,中间的比较常用: 链式法则:从外向内:

Vue3 实现 Three.js粒子特效

效果 <template><div id"waves" /> </template><script setup> import { ref, onMounted, onUnmounted } from "vue"; import * as THREE from "three";const amountX ref(50); const amountY ref(50); const color …

MATLAB实现蚁群算法栅格路径优化

蚁群算法是一种模拟自然界中蚂蚁觅食行为的优化算法&#xff0c;常用于解决路径规划问题。在栅格路径优化中&#xff0c;蚁群算法可以帮助找到从起点到终点的最优路径。以下是蚁群算法栅格路径优化的基本流程步骤&#xff1a; 初始化参数&#xff1a; (1)设置蚂蚁数量&#xff…

JavaScript实现代码雨

一、功能描述 使用canvas实现一个代码雨的功能&#xff0c;炫一个~~~ 二、上码 html <canvas id"canvas"></canvas> js let canvas document.querySelector(canvas);let ctx canvas.getContext(2d);// screen.availWidth:可视区域的宽度canvas.width…

Blender游戏资产优化技巧

创建视频游戏资产既具有挑战性又富有回报。 经过一些研究并根据我的经验&#xff0c;这里有三个技巧可以帮助你使用 Blender 优化游戏资产。 在 Blender 中优化游戏资源的三种技术可以归结为拥有高效的 3D 模型拓扑、通过烘焙优化纹理&#xff0c;以及最后通过 Blender 节点的…

【Spring AI 来了】

spring官方已经有Spring AI 插件&#xff0c;每个程序员必定拥抱AI&#xff0c;也意味着不就以后AI的open API 会成为我们开发成的基础jdk。 下面的内容也是AI直接根据网址给我翻译的&#xff0c;连格式都是生成的。AI应用已经渗透到各行各业了&#xff0c;并且会改变我们每个…

【八股】Java基础、集合、JVM

面向对象三大特性 1 封装&#xff1a; 将 方法 和 属性 写到同一个类中&#xff0c;并将属性 私有化&#xff0c;生成 get set方法&#xff0c;外部访问属性需要通过get和set方法,内部可以直接访问属性&#xff0c;这样的一个类我们认为它完成了封装。 2 继承&#xff1a; 子…

神经网络手写数字识别

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计4077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

python安装pytorch@FreeBSD

先上结论&#xff0c;最后在conda下安装成功了&#xff01; PyTorch是一个开源的人工智能深度学习框架&#xff0c;由Facebook人工智能研究院&#xff08;FAIR&#xff09;基于Torch库开发并维护。PyTorch提供了一个高效、灵活且易于使用的工具集&#xff0c;用于构建和训练深…

Python-VBA函数之旅-iter函数

目录 一、iter函数的常见应用场景&#xff1a; 二、iter函数使用注意事项&#xff1a; 三、如何用好iter函数&#xff1f; 1、iter函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;神奇夜光杯-CSDN博客 …

AndroidStudio 新建工程的基本修改及事件添加

注&#xff1a;2022.3.1&#xff0c;新建Empty Activity默认是Kotlin&#xff0c;可以选择新建Empty View Activity&#xff0c;修改语言为JAVA 应用名称 修改应用名称 路径&#xff1a;res-values-strings.xml 是否显示应用名称 路径&#xff1a;res-values-themes.xml …

SpringMVC基础篇(一)

文章目录 1.基本介绍1.特点2.SpringMVC跟SpringBoot的关系 2.快速入门1.需求分析2.图解3.环境搭建1.创建普通java工程2.添加web框架支持3.配置lib文件夹1.导入jar包2.Add as Library3.以后自动添加 4.配置tomcat1.配置上下文路径2.配置热加载 5.src下创建Spring配置文件applica…

React.js 3D开发快速入门

如果你对 3D 图形的可能性着迷&#xff0c;但发现从头开始创建 3D 模型的想法是不可能的 - 不用担心&#xff01; Three.js 是一个强大的 JavaScript 库&#xff0c;它可以帮助我们轻松地将现有的 3D 模型集成到 React 应用程序中。因此&#xff0c;在本文中&#xff0c;我将深…

Educational Codeforces Round 164 (Rated for Div. 2) A-E

A. Painting the Ribbon 暴力模拟即可 #include <bits/stdc.h>using namespace std; const int N 2e5 5; typedef long long ll; typedef pair<ll, ll> pll; typedef array<ll, 3> p3; // int mod 998244353; const int maxv 4e6 5; // #define endl &…