在反序列化利用、代码执行场景中,通过 Runtime.getRuntime().exec() 执行系统命令时 可能无法生效,因为此时 payload 的重定向符和管道符都被当成普通字符。这时需要对 payload 进行 base64 编码然后作为 bash 或者 powershell.exe 程序的参数传入,使其生 效

编码 powershell 的 payload 时注意使用 utf-16le 编码

python demo

powershell.exe -NonI -W Hidden -NoP -Exec Bypass -Enc {base64.b64encode(raw_cmd.encode('utf-16le')).decode()}