JAVA-and-J2EE

fastjson < 1.2.67 反序列化远程代码执行漏洞升级及思考

星期三, 三月 25th, 2020 | JAVA-and-J2EE | 没有评论

阿里云推送了fastjson 安全提醒,记得上次升级到61版本还没有多久,这次又有0day漏洞,其实对很多应用基本上是没有影响的,不用管它就行.

只是有短信 邮件等提醒 还是让人心不安的,从墨菲定律的上面说,你不知道其他人是怎么使用的就有可能会中招,从公司角度就是督促升级或者移除fastjson依赖、

或者购买安全服务拦截.

一:准备移除fastjson的依赖了,看了下封装个工具类JsonKit,实现下面的几个方法,就可以很好的替换了,更多功能根据自己的实际应用处理.

据华为云披露升级到1.2.67也无法完全避免,还有部分没有完全添加到黑名单中,默认关闭type即可.

public static String toJSONString(Object data) {
		try {
			return mapper.writeValueAsString(data);
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
		return "";
	}
 
	public static String parseObjectVal(String data, String key) {
		try {
			JsonNode node = mapper.readTree(data);
			return node.get(key).toString();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
 
	public static <t> T parseArray(String data, TypeReference</t><t> valueTypeRef) {
		T ret = null;
		try {
			ret = mapper.readValue(data, valueTypeRef);
		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return ret;
	}
 
	public static Map<String, Object> parseObject(String data) {
		Map<String, Object> map = parseObject(data, new TypeReference<Map<String, Object>>() {
		});
		return map;
	}
 
       // ......
</t>

› Continue reading

Tags: ,

tomcat9配置优化及使用jdk11的调整

星期四, 三月 12th, 2020 | JAVA-and-J2EE | 没有评论

把常用调整的部分整理记录了下,方便自己以后翻阅和调整

本人实际tomcat9应用中,只注释了conf/server.xml下ajp的服务,新增了bin下的setenv.sh 的JVM配置及spring外置的配置文件

那些调整数值的根据自行配置调整.

1.系统启用nginx+tomcat配合

2.本文主要优化tomcat的配置项目

配置项参考:http://tomcat.apache.org/tomcat-9.0-doc/config/http.html

2.1 关闭AJP端口及war包的热部署
› Continue reading

Tags: , , ,

网站监控功能上线

星期日, 三月 1st, 2020 | JAVA-and-J2EE | 没有评论

监控网站是否运行正常一直是个问题,终于花了2天时间,开发了此后台功能.

1.实行指定页面的访问监控系统的运行状况

功能包括:

1.1 每10分钟扫描一次待验证的站点,每个站点的间隔时间支持自定义,以10分钟为基本刻度

1.2 记录每次扫描站点的信息,供后续出问题及时排查也留档当时的一些情况.

1.3 返回系统异常时候 此处打通钉钉的群通知进行手机提醒,虽说很讨厌钉钉的夺命连环CALL功能,但能免费提醒还是不

错的,接入微信的通知比较麻烦,接手机短信的还要收费等,一系列下来感觉还是钉钉比较方便,有更好的,再接入

其他通知即可, 接口开放很方便.

2.查看扫描信息、添加、修改监控站点信息钉钉通知渠道,间隔通知时间,关闭检测 常用的功能,

后续只要添加需要监控的网站即可

3.目前只是监控自己旗下网站是否可以正常访问,发现异常好及时处理

4.拓展功能,后续开放给用户,或者监控指定网站的异动及更新等

Tags:

Apache Tomcat AJP协议文件读取与包含漏洞的版本升级及关闭AJP功能

星期六, 二月 22nd, 2020 | JAVA-and-J2EE | 没有评论

1.阿里云提醒对应的安全风险:

Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器。默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。

但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应用根目录下的任意文件,如果存在文件上传功能,将可以导致任意代码执行。

漏洞利用AJP服务端口实现攻击,未开启AJP服务对外不受漏洞影响(tomcat默认将AJP服务开启并绑定至0.0.0.0)。

阿里云应急响应中心提醒 Apache Tomcat用户尽快排查AJP端口对外情况并采取安全措施阻止漏洞攻击。

影响版本

Apache Tomcat 6
 
Apache Tomcat 7 < 7.0.100
 
Apache Tomcat 8 < 8.5.51
 
Apache Tomcat 9 < 9.0.31

安全版本

Apache Tomcat 7.0.100
 
Apache Tomcat 8.5.51
 
Apache Tomcat 9.0.31

2.查看了下自己并不需要ajp的功能,最简单的方法只时间注销此项功能即可,同时也可以少监听一个端口

具体操作:

› Continue reading

Tags: ,

不root的情况下修改手机hosts,使用电脑的fiddler代理的模式

星期三, 二月 19th, 2020 | JAVA-and-J2EE | 没有评论

1.想测试手机版的网站,需要把对应的域名指向内部的机器地址,想和电脑版本一样去改手机的hosts文件,

查了下感觉还是很麻烦的,需要root手机,随放弃,启用fiddler代理的模式

2.电脑C:\Windows\System32\drivers\etc下的HOSTS的文件修改对应域名和ip即可

3.PC下载的话直接百度搜索Fiddler 下载即可:

在手机里的wifi里面设置代理ip和端口即可完成监听

› Continue reading

Tags: ,

nginx配置ssl后代理tomcat获取不到https

星期五, 二月 14th, 2020 | JAVA-and-J2EE | 没有评论

1.前置使用nginx做了反向代理

2.服务有tomcat提供,在tomcat里有获取getScheme总是http而不是https,需要解决.

遇见的问题如下:

request.getScheme()  //总是 http,而不是实际的http或https  
request.isSecure()  //总是false(因为总是http)  
request.getRemoteAddr()  //总是 nginx 请求的 IP,而不是用户的IP  
request.getRequestURL()  //总是 nginx 请求的URL 而不是用户实际请求的 URL  
response.sendRedirect( 相对url )  //总是重定向到 http 上 (因为认为当前是 http 请求)

3.解决办法

› Continue reading

Tags: ,

解决XML文件中的警告提示“No grammar constraints (DTD or XML Schema) referenced in the document.”

星期三, 二月 12th, 2020 | JAVA-and-J2EE | 没有评论

在springboot项目中使用的自定义的xml文件,

但是显示警告信息“No grammar constraints (DTD or XML Schema) referenced in the document.”

解决如下:

#加上 <!DOCTYPE xml> 即可

› Continue reading

Tags:

certbot配置letsencrypt遭遇Installing Python packages

星期一, 二月 3rd, 2020 | JAVA-and-J2EE, linux | 没有评论

同样的问题再次触发,害的查了半天

使用certbot来配置ssl,比较方便,遭遇下列错误

1.Creating virtual environment…
Installing Python packages…

查看了系统的python版本都已经是python3.6.8不会出现版本低的情况

根据报错提示发现是pip的问题,使用的镜像地址还是http://mirrors.cloud.aliyuncs.com

更换之http://mirrors.aliyun.com再执行搞定

vim ~/.pip/pip.conf

国内的镜像源分别如下:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里:https://mirrors.aliyun.com/pypi/simple
豆瓣:http://pypi.douban.com/simple/
中国科学技术大学: https://pypi.mirrors.ustc.edu.cn/simple
华中理工大学: http://pypi.hustunique.com/simple
山东理工大学: http://pypi.sdutlinux.org/simple

推荐使用豆瓣的源,更新的比较及时和快:

[global]
timeout = 300
#index-url=http://mirrors.aliyun.com/pypi/simple/
index-url=http://pypi.douban.com/simple/
[install]
#trusted-host=mirrors.aliyun.com
trusted-host=pypi.douban.com

同样适用于centos8版本:

使用certbot来进行Let’s Encrypt的ssl 配置

Tags: , ,

Centos8使用yum出现无法访问的错误

星期一, 二月 3rd, 2020 | JAVA-and-J2EE, linux | 没有评论

1.服务器升级系统到centos8,发现无法使用yum update

错误为:Failed to synchronize cache for repo ‘AppStream’, ignoring this repo.

2.修复之法:

2.1:检测网络是否通畅

2.2:修改 baseurl 的地址 http://mirrors.cloud.aliyuncs.com(在另外一台机器上好用,这台怎么都ping不通)

替换成http://mirrors.aliyun.com

即可,这两个地址可以尝试下哪个好用,把/etc/yum.repos.d/下的.repo文件都替换下,主要是下面三个

/etc/yum.repos.d/CentOS-AppStream.repo
/etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Extras.repo
› Continue reading

Tags: ,

springboot升级到2.2.4版本freemarker出现404

星期日, 一月 26th, 2020 | JAVA-and-J2EE | 没有评论

今天看到spring mvc 有漏洞提醒升级,就把spring boot从2.1.4版本升级到2.2.4版本

github警告 springmvc 5.0系列5.0.16以下 5.1系列5.1.13以下,5.2系列5.2.3以下,springboot 2.2.4以下都有安全漏洞

换了后没有发现编译错误,启动后试了下,发现页面都是404了,网上查了下,是FreeMarkerViewResolver的缺省配置文件

改了suffix 由原来的ftl 改成ftlh了,详情可以参见源码,现记下处理方式:

1.改原来的ftl文件扩展名ftl改成ftlh 可以解决(对于老工程不适合)

2.修改application.properties 文件

#spring
spring.freemarker.suffix=.ftl
 
更多其他配置:
spring.freemarker.cache=false
spring.freemarker.suffix=.ftl
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.resources.static-locations=classpath:/static/

› Continue reading

Tags: ,

Search

文章分类

Meta