当前位置: 首页 > news >正文

中国建设银行员工网站wordpress 更改首页

中国建设银行员工网站,wordpress 更改首页,台州网站注册 公司,做app做网站从何学起文章目录 前言一、漏洞详情二、修复过程1.通过脚本方式修复1.1.脚本修复原理1.2.脚本演示1.3.执行脚本 2. 手动升级包2.1.修复步骤2.2.遇到的问题 前言 该漏洞是三个月前由安全团队扫描出来的#xff0c;主要影响是: FastJSON是阿里巴巴的开源JSON解析库#xff0c;它可以解… 文章目录 前言一、漏洞详情二、修复过程1.通过脚本方式修复1.1.脚本修复原理1.2.脚本演示1.3.执行脚本 2. 手动升级包2.1.修复步骤2.2.遇到的问题 前言 该漏洞是三个月前由安全团队扫描出来的主要影响是: FastJSON是阿里巴巴的开源JSON解析库它可以解析JSON格式的字符串支持将Java Bean序列化为JSON字符串也可以从JSON字符串反序列化到JavaBean。由于具有执行效率高的特点应用范围广泛。FastJSON 存在反序列化远程代码执行漏洞漏洞成因是Fastjson autoType开关的限制可被绕过然后反序列化有安全风险的类。攻击者利用该漏洞可实现在目标机器上的远程代码执行。本文主要从运维侧修复手段介绍了该漏洞的两种修复方式。 提示以下是本篇文章正文内容下面案例如果不放心,先自行在测试环境验证,验证通过后再上生产环境操作 一、漏洞详情 FastJSON是阿里巴巴的开源JSON解析库它可以解析JSON格式的字符串支持将Java Bean序列化为JSON字符串也可以从JSON字符串反序列化到JavaBean。由于具有执行效率高的特点应用范围广泛。 FastJSON 存在反序列化远程代码执行漏洞漏洞成因是Fastjson autoType开关的限制可被绕过然后反序列化有安全风险的类。攻击者利用该漏洞可实现在目标机器上的远程代码执行。 主要影响FastJSON1.2.80 版本 二、修复过程 修复过程涉及到服务重启,请自行确认重启时间 1.通过脚本方式修复 该版本涉及autotype行为变更在某些场景会出现不兼容的情况 注意事项:1、该脚本适合以 lib 库形式依赖 fastjson-*.jar 包的Java微服务包,如 Springboot 打包的 jar 包。2、该脚本不支持直接打包 fastjson class 的 jar 包即 jar 包中存在 com/alibaba/fastjson/... 类似结构需要从代码升级修复。3、该脚本不支持docker 镜像包据说有签名校验直接改镜像文件可能会导致不可用。由于环境所限这种情况没有验证过。4、脚本适合 fastjson 全部版本。1.1.脚本修复原理 1、扫描当前服务器所有jar包。 2、查看jar包依赖包中是否包括 fastjson-*.jar 包。 3、如果有,更新该依赖包为fastjson-1.2.83.jar。同时脚本在更新 jar 包之前会备份该jar包到/export/fastjson_repair_workspace/backup_jars/ 目录下,防止替换后服务启动失败,后续方便回滚。1.2.脚本演示 #!/bin/bash # 2024-09-02 WORK_DIR/root/fastjson_repair_workspace BACKUP_DIR$WORK_DIR/backup_jars ALL_JARS$WORK_DIR/all_jars.txt TARGET_JARS$WORK_DIR/target_jars.txt DONE_FILE$WORK_DIR/DONEFILE TARGET_VERSIONfastjson-1.2.81.jar #修改为当前jar包中对应的fastjson包名,去lib目录下确认即可 FIX_VERSIONfastjson-1.2.83.jar #要确认升级的包#检查脚本执行环境是否具备超管权限 function check_env() {mkdir -p $BACKUP_DIRif [ $? -eq 1 ];thenecho Permission denied, need root userexitfi }#检查脚本执行用户,必须以服务器管理员root用户执行 function check_user() {if [ $(whoami) ! root ];thenecho Need root userexitfi }#检查是否有zip命令 function check_zip() {which zip /dev/nullif [ $? -eq 1 ];thenecho Install zip firstexitfi } #检查是否有unzip命令 function check_unzip() {which unzip /dev/nullif [ $? -eq 1 ];thenecho Install unzip firstexitfi } #检查当前服务器环境中是否存在要修复的fastjson包 check_fastjson_jar() {if [ ! -f ./$FIX_VERSION ];thenecho Fix task need $FIX_VERSIONexitfi }#环境检查 function check_find_env() {check_usercheck_envcheck_zip }function check_fix_env() {check_usercheck_envcheck_zipcheck_unzipcheck_fastjson_jar }#查看服务器所有jar包 function find_all_jars() {echo Finding all jars ...mkdir -p $WORK_DIRif [ -f $ALL_JARS ];thenif [ -f $DONE_FILE ];thenecho Jarlist exsit: $ALL_JARSelserm -f $ALL_JARSecho Jarlist broken, run againexitfielsefind / -path $BACKUP_DIR -prune -o -path /proc -prune -o -print | grep \.jar$ $ALL_JARSif [ $? -eq 0 ];thentouch $DONE_FILEfifiecho Find $(wc -l $ALL_JARS|awk {print$1}) jars.echo }function find_lib_jars() {echo $* /tmp/tmp_jarlistwhile read line;dofastjson_version$(echo $line|awk -F/ {print$NF})if [[ $fastjson_version $TARGET_VERSION ]];thenreturn 1fidone /tmp/tmp_jarlistreturn 0 }#检查查找出来的jar包是否包含target_version版本的包 function find_target_jars() {echo Finding target jars ... $TARGET_JARSnum1while read jar;doret$(unzip -l $jar 2 /dev/null | grep fastjson.*jar| grep -v Archive)if [ -n $ret ];thenfind_lib_jars $retif [ $? -eq 1 ];thenecho Find [$num] $jarecho $jar $TARGET_JARS((num))fielseret$(unzip -l $jar 2 /dev/null | grep com/alibaba/fastjson |grep -v Archive)if [ -n $ret ];thenecho [NOT support] Find [$num] $jar((num))fifidone $ALL_JARSecho Find $(wc -l $TARGET_JARS|awk {print$1}) target jars.echo }#替换jar包 function update_jars() {jarpath$1filepath$2jarname$(basename $jarpath)filedir$(dirname $filepath)mkdir -p /export/fastjson_repair_workspace/libjars/cp $jarpath /export/fastjson_repair_workspace/libjars/$jarnamemkdir -p /export/fastjson_repair_workspace/libjars/$filedircp ./$FIX_VERSION /export/fastjson_repair_workspace/libjars/$filedircd /export/fastjson_repair_workspace/libjars/zip -d $jarname $filepathecho adding: $filedir/$FIX_VERSIONjar -uf0 $jarname $filedir/$FIX_VERSIONcp -f $jarname $jarpathcd - /dev/nullrm -rf /export/fastjson_repair_workspace/libjars/* } #修复jar包 function fix_lib_jars() {jarpath$1if [ ! -n $(unzip -l $jarpath 2 /dev/null | grep fastjson.*jar | grep -v Archive) ];thenecho [WARN] NOT Fixedfiunzip -l $jarpath 2 /dev/null | grep fastjson.*jar | grep -v Archive /tmp/tmp_jarlistwhile read line;dofastjson_version$(echo $line|awk -F/ {print$NF})if [[ $fastjson_version $TARGET_VERSION ]];thenlibjar$(echo $line|awk {print$NF})update_jars $jarpath $libjarecho Fixedfidone /tmp/tmp_jarlist }function fix_target_jars() {if [ ! -f $TARGET_JARS ];thenecho run check first.exitfiecho Fix target jars ...echonum1while read jar;doecho $num echo Backup $jarmkdir -p ${BACKUP_DIR}$(dirname $jar)cp -f $jar ${BACKUP_DIR}$(dirname $jar)echo Fix $(basename $jar) ...fix_lib_jars $jarecho((num))done $TARGET_JARSecho Fixed $(wc -l $TARGET_JARS|awk {print$1}) target jars.mv -f $TARGET_JARS ${TARGET_JARS}.fixed.$(date %Y%m%d_%H%M%S) }function usage() {echo Version 1.0.0echo Usage: $0 [check|fix] }function check() {check_find_envfind_all_jarsfind_target_jars }function fix() {check_fix_envfix_target_jars }if [ $1 check ];thencheck elif [ $1 fix ];thenfix elseusage fi1.3.执行脚本 [rootprometheus ~]# chmod x fastjson_repair.sh [rootprometheus ~]# sh fastjson_repair.sh Version 1.0.0 Usage: fastjson_repair.sh [check|fix] #check是检查包 fix是对fastjson包进行升级处理 [rootprometheus ~]# sh fastjson_repair.sh check Finding all jars ... Find 751 jars.Finding target jars ... Find [1] /export/server/icity-client/icity-client-system-1.0.0.jar Find [2] /export/server/icity-server/icity-server-system-1.0.0.jar Find 2 target jars. #发现了两个fastjson版本低于1.28.3版本的包执行 ./fast_repaire.sh check脚本如下所示 vim java微服务包 查看jar中包含的fastjson包,果然低于1.28.3版本 执行fix命令 2. 手动升级包 有时,java微服务包使用上述脚本无法完成修复,而且研发不能快速配合修复那么从运维角度出发进行修复 2.1.修复步骤 如下图所示 1、拷贝需要修复的jar包至某一个空目录下2、执行jar -xf xxxx.jar 对包进行解压3、将解压后META-INF目录下的MANIFEST.MF文件 移动到跟META-INF目录平级 mv META-INF/MANIFEST.MF ../4、cd BOOT-INF/lib/目录下将低版本的fastjson包移除将高版本的包移动到该目录下5、执行打包命令 jar -cfm0 xxx.jar /xxx/xxx/MANIFEST.MF *6、将第5步构建好的包移动到对应的服务目录下重新启动该服务观察日志没有报错且vim xxxx.jar 发现fastjson包为替换后的版本的包则修复成功将上述低版本的fastjson jar包从当前lib目录下删除,将fastjson-1.2.83高版本的包拷贝到lib目录下 重新执行打包命令构建新的java微服务包 将上述新构建好的jar包拷贝到原来的位置,并重新启动服务查看服务日志是否报错,如果没报错,则fastjson漏洞修复完成 2.2.遇到的问题 在执行java微服务包构建时遇到了下方的错误The calling methods class, org.apache.catalina.authenticator.AuthenticatorBase, was loaded from the following location:jar:file:/export/system-server-1.0.0.jar!/BOOT-INF/lib/tomcat-embed-core-9.0.60.jar!/org/apache/catalina/authenticator/AuthenticatorBase.classThe called methods class, javax.servlet.ServletContext, is available from the following locations:jar:file:/export/system-server-1.0.0.jar!/BOOT-INF/lib/servlet-api-6.0.53.jar!/javax/servlet/ServletContext.classjar:file:/export/system-server-1.0.0.jar!/BOOT-INF/lib/tomcat-embed-core-9.0.60.jar!/javax/servlet/ServletContext.classThe called methods class hierarchy was loaded from the following locations:javax.servlet.ServletContext: jar:file:/export/system-server-1.0.0.jar!/BOOT-INF/lib/servlet-api-6.0.53.jar!/解决方法:将BOOT-INF/lib/目录下的servlet-api-6.0.53.jar包替换为一个高版本的包例如servlet-api-7.0.0.jar然后重新执行上述构建即可解决。https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api/7.0.0 在上述地址可以下载这个包重命名为对应的名字即可使用至此,fastjson低版本漏洞修复的两种方法介绍完毕
http://www.hkea.cn/news/14448698/

相关文章:

  • 可直接进入正能量网站ui设计概念定义
  • 网站建设从零开始公众号注册
  • 手机网站制作wordpress分类信息模板下载
  • sql server网站建设制作游戏网站
  • 网站流量很少站长之家whois
  • 做网站的硬件和软件环境上海抖音推广公司
  • 张家港外贸网站设计wordpress 删除版权
  • 徐州建设网站设计图片欣赏
  • 辽阳高端网站建设公司百度关键词挖掘
  • 惠州手机模板建站深圳市seo网站设计哪家好
  • 如何自主建设企业网站购物网站建设策划书
  • 满城区城乡建设局网站东莞营销策划推广公司
  • 无忧中英繁企业网站系统 完整今天头条新闻
  • 中小企业网站建设咨询营销型网站seo
  • 成都电子商务网站建设手机优化加速有什么用
  • 网站部署到服务器活动推广宣传方案
  • 苏州专业做网站公司电话营销网站建设与管理
  • 做网站是用什么技术的企业网站必备模块
  • 网站备案检验单自己做公司网站简单吗
  • 怎么样可以做网站充值代理互动 网站建设
  • 自适应网站搭建做百度网站营业执照用注销吗
  • 在建设银行网站能换美元吗德州网页制作
  • 国产做性直播视频网站新闻发布会主题
  • 网站后台统计怎么启动啊世界杯 网站模板
  • 哪个网站做ppt模板赚钱电商网站有哪些官网
  • pc网站制作公司哈尔滨建设规划局网站
  • 本地网站搭建如何访问网页郑州专业做网站的公司
  • 网站建设完成外网无法访问wordpress进不去仪表盘
  • wordpress仿站流程精准到可怕的2022楼市预言
  • 大的网站建设公司好wordpress 用户积分系统