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

本文介绍了如何在企业自建网站和使用Struts框架的环境中安装Struts漏洞扫描工具,同时详细讲述了远程代码执行的危害及防御措施,包括输入验证、参数化查询和最小权限原则等,以提升网站安全性。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、适用环境

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、安全框架和工具:选择适合的安全框架和工具来加强网站的安全性。安全框架和工具可以提供许多防御机制,如输入过滤、错误处理、访问控制等。开发者可以利用这些工具来规避一些常见的安全风险。

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

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43075093

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值