Axis1.4漏洞,Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException
最新推荐文章于 2024-01-24 10:00:00 发布
最新推荐文章于 2024-01-24 10:00:00 发布
阅读量
2k
Axis1.4漏洞,Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException
Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:223) ~[axis-1.4.jar:na]
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:130) ~[axis-1.4.jar:na]
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1104) ~[axis-1.4.jar:na]
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) ~[na:na]
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) ~[na:na]
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
FragmentContentDispatcher.dispatch(Unknown Source) ~[na:na] at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[na:na] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[na:na] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[na:na] at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[na:na] at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) ~[na:na] at org.apache.xerces.jaxp.SAXParserImpl
F
r
a
g
m
e
n
t
C
o
n
t
e
n
t
D
i
s
p
a
t
c
h
e
r
.
d
i
s
p
a
t
c
h
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
[
n
a
:
n
a
]
a
t
o
r
g
.
a
p
a
c
h
e
.
x
e
r
c
e
s
.
i
m
p
l
.
X
M
L
D
o
c
u
m
e
n
t
F
r
a
g
m
e
n
t
S
c
a
n
n
e
r
I
m
p
l
.
s
c
a
n
D
o
c
u
m
e
n
t
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
[
n
a
:
n
a
]
a
t
o
r
g
.
a
p
a
c
h
e
.
x
e
r
c
e
s
.
p
a
r
s
e
r
s
.
X
M
L
1
1
C
o
n
f
i
g
u
r
a
t
i
o
n
.
p
a
r
s
e
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
[
n
a
:
n
a
]
a
t
o
r
g
.
a
p
a
c
h
e
.
x
e
r
c
e
s
.
p
a
r
s
e
r
s
.
X
M
L
1
1
C
o
n
f
i
g
u
r
a
t
i
o
n
.
p
a
r
s
e
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
[
n
a
:
n
a
]
a
t
o
r
g
.
a
p
a
c
h
e
.
x
e
r
c
e
s
.
p
a
r
s
e
r
s
.
X
M
L
P
a
r
s
e
r
.
p
a
r
s
e
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
[
n
a
:
n
a
]
a
t
o
r
g
.
a
p
a
c
h
e
.
x
e
r
c
e
s
.
p
a
r
s
e
r
s
.
A
b
s
t
r
a
c
t
S
A
X
P
a
r
s
e
r
.
p
a
r
s
e
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
[
n
a
:
n
a
]
a
t
o
r
g
.
a
p
a
c
h
e
.
x
e
r
c
e
s
.
j
a
x
p
.
S
A
X
P
a
r
s
e
r
I
m
p
l
JAXPSAXParser.parse(Unknown Source) ~[na:na]
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:241) ~[axis-1.4.jar:na]
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) ~[axis-1.4.jar:na]
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) ~[axis-1.4.jar:na]
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) ~[axis-1.4.jar:na]
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) ~[axis-1.4.jar:na]
at org.apache.axis.client.Call.invokeEngine(Call.java:2782) ~[axis-1.4.jar:na]
at org.apache.axis.client.Call.invoke(Call.java:2765) ~[axis-1.4.jar:na]
at org.apache.axis.client.Call.invoke(Call.java:2443) ~[axis-1.4.jar:na]
at org.apache.axis.client.Call.invoke(Call.java:2366) ~[axis-1.4.jar:na]
at org.apache.axis.client.Call.invoke(Call.java:1812) ~[axis-1.4.jar:na]
如上所示的异常,偶发的,重试又是正常的。
经网上查找,发现是axis1.4版本的自身代码的问题,只有在JDK1.8且高并发的情况下偶发
1、把JDK降到1.7
2、有个内部的1.4.1的版本,没有正式发布的,可以去自己去找源码打包;
3、修改有问题的代码,重编译,替换jar里面的class (推荐)
第三种方案的新的JAR这里不能上传附件,所以放到GIT上了,可以自行下载,我测试了是没有问题的,不放心的可以参看最下面的问题原链接,按照上面描述的自行编译替换
https://github.com/nishiergouma/jar/blob/main/axis-1.4.jar
问题详细链接:
https://stackoverflow.com/questions/52218759/axis-client-1-4-with-jdk-8-gives-org-apache-axis-axisfault-java-util-concurrent
部署一个webservice
,webservice开启一个写文件服务。这里我们要写入的文件名是../webapps/ROOT/shell.jsp,服务模块的工作路径是bin目录,这里利用相对路径写入ROOT目录,也就是tom
cat
默认根目录。
/
axis
/services/AdminService
HTTP/1.1
Host:
localhost:8080
Connect
ion
:
close
Accept:
text/html,appli
cat
ion
/xhtml+xml,appli
cat
ion
/xml;q=0.9,*/*
Axis
1.4
freemarker
下载
Axis
包
1.4
版本将
Axis
放到tom
cat
的webapp目录中。freemarker.
jar
放到
Axis
的 lib目录下。运行tom
cat
即可。
WEB-INF/web.xml 中将该配置取消注释
AdminServlet
/servlet/AdminServlet
原创复现需要将/WEB-INF下面的server-config.wsdd文件中的内容进行编辑一下
[图片](https://img-一、
漏洞
介绍
漏洞
本质是管理员对AdminService的配置错误。当enableRemoteAdmin属性设置为true时,攻击者可以构造调用freemarker组件中的template.utility.Execute类,远程利用AdminService接口进行WebService发布,再次访问生成的WebService接口,传入要执行的命令,就可以进行远程命令执行
漏洞
的利用。
Axis
1.4
依赖的
jar
包Maven配置文件<!--
axis
1.4
jar
start -->
<dependency>
<groupId>
org
.
apache
.
axis
</groupId>
<artifactId>
axis
</artifactId>
<vers
ion
>
1.4
</vers
ion
>
在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出
java.util.Concurrent
Modifi
cat
ion
Exception
异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。
1、异常出现的原因
先看下面这段代码:
public class Test {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList
Apache
Axis
1.4
RCE CVE-2019-0227
漏洞
复现
漏洞
产生原因:
Axis
1.4
adminservice开启远程访问,此时攻击者可通过services/AdminService 服务 部署一个webservice ,webservice开启一个写文件服务
影响范围:
Axis
<=
1.4
且enableRemoteAdmin设置为True
环境搭建:tom
cat
8.5+
apache
Axis
1.4
将
apache
Axis
1.4
下的webapps/
axis
包放到tom
<br />上面三章做了通过WSDL文件生成
java
code的WebService服务器端和客户端例子。下面我们来做通过WSS4J对WebService的加密。<br /> <br />1.下载wss4j.
jar
还是自己用google去找来下载。<br />2.把wss4j.
jar
放到VacSyncService_WSS4J工程的 /WebContent/WEB-INF/lib 下。 可能提VacSyncService_WSS4J工程有点晕,其实这个就是前面我们使用的VacSyncService工程改
API.dll已退出,代码为 5。请验证您是否有足够的权限来运行此命令
以上为编译他人程序过程中出现的问题,对应英文为:
exited with code 5 . Please verify that you have sufficient rights to
run this command
这个是stackoverflow上的相关问题以及解决方式stackoverflow
第一个回答
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Do