首先配置远程调试,本人这里用的jboos-6.1.0版本,打开其bin目录。对run.conf.bat做修改,初次打开前面有会rem ,其实就是注释的作用,将其删掉即可。
之后IDEA与该端口为一致
漏洞点位置在server/all/deploy/httpha-invoker.sar/invoker.war/WEB-INF/classes/org/jboss/invocation/http/servlet/ReadOnlyAccessFilter中(如果断点无法使用,则通过jd-gui反编译在覆盖原文件即可)
其实该类是一个自定义的Filter,在其doFilter中,通过request.getInputStream()获取内容之后,并进行了反序列化
通过查看web.xml得知。拦截路径如下,但是invoker没找到在哪里配置了。所以就跳过了
http://URL/invoker/readonly
反序列化看完之后
jboss-6.1.0.Final\common\lib\ 目录下,存在cc和cb的包,这里直接用cc1即可
直接使用ysoserial生成payload
直接打过去即可
之后成功断点
走到InvokerTransformer中。
之后是到达ChainedTransformer中
通过循环调用,来执行了命令
此外,在同目录中InvokerServlet也存在反序列化点
通过web.xml查看得知,路径为:
http://127.0.0.1:8080/invoker/EJBInvokerServlet/*
使用curl发个包
之后成功反序列化