懒癌发作,不写了,主要是gadget中对rmi factory利用的理解。参考下边两文足够。
1 | https://mp.weixin.qq.com/s/spDHOaFh_0zxXAD4yPGejQ |
坑
需要提的是过程中的坑。
坑1-lib的问题
首先是各种类找不到,idea中lib加全去找符号表时,很多情况会找到两个类,需要根据orb的实现找到对的类,否则反射就改崩了,还有后边rmi reference的factory name和stub ref也可能找错。
坑2-ssl的问题
Error getting WsnNameService properties
这个错估计每个人都遇到过。
在调试过程中,我的解决办法是先不去管他,去console把security -> global security -> iiop security -> ssl改成tcpip,然后重启虚拟机就可以了。
但是这个问题只能帮助你调试,真正环境中ssl都是开的,这时候你就懵逼了。。
这里用了@l1nk3r师傅给的ssl-solved-jar,我只能说看不懂。。一堆硬编码hex。。然后rmi打就完了。。膜。。
更新:后来@r4v3zn师傅更新的文章里解决了这位问题,@Litch1师傅也有自己的解决方式,懒得改了233
坑3-host的问题
各种java unknown host,本质原因跟了一下没太搞懂为啥把websphere里的host发到了物理机里,这里在物理机改一下对应host到虚拟机ip就行。
还可能报端口的错误,重启解决。
坑4-jndi问题
rmi server可能这样,照着改一下就行
1 | https://stackoverflow.com/questions/15685686/java-rmi-connectexception-connection-refused-to-host-127-0-1-1 |
TODO
这修复方式,不gadgetinspector挖一波都对不起他。
然而下图原因,需要先去看看websphere的classloader,有空跟一下。
补充
看过了classloader,很麻烦