JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 大概在2015年左右用tangscan扫到了很几次jdwp服务端口,当时只是简单的测试过这个服务。 这个jdwp服务提供来对java程序调试的功能,只要有程序启动时使用了jdwp参数且端口绑定在内网或者共网上时候我们就可以利用这个服务来执行java代码片段弹shell。比较典型的有tomcat启动的时候如果是以jpda方式启动的话就会启动一个8000端口用于远程调试。 假设我们需要远程调试一段Java程序,如Test.java的main方法: 如果要远程调试我们就需要使用到远程调试参数,我们使用IDEA远程调试的时候会提示我们配置如下参数: 所以我们只需要在执行:java Test 之前添加我们的调试参数即可。 首先在内网找一个小白鼠,让他帮我们调试下这个Test.java,在启动的时候加上如下参数: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8003 Test 如下图: 小白鼠告诉我他的内外IP是:192.168.88.203,于是我们使用java自带的jdb(Java调试工具)来