偶尔有时命令执行有效负载Runtime.getRuntime().exec()失败. 使用 web shells, 反序列化漏洞或其他向量时可能会发生这种情况.

有时这是因为重定向和管道字符的使用方式在正在启动的进程的上下文中没有意义. 例如 ls > dir_listing 在shell中执行应该将当前目录的列表输出到名为的文件中 dir_listing. 但是在 exec() 函数的上下文中,该命令将被解释为获取 >dir_listing 目录.

其他时候,其中包含空格的参数会被StringTokenizer类破坏.该类将空格分割为命令字符串. 那样的东西 ls "My Directory" 会被解释为 ls '"My' 'Directory"'.

在Base64编码的帮助下, 下面的转换器可以帮助减少这些问题. 它可以通过调用Bash或PowerShell再次使管道和重定向更好,并且还确保参数中没有空格.

Input type:

avatar
ExterminateDog
ExterminateDog的博客,记录网络安全知识
一个还没想好做什么的按钮
公告
-比黑色更黑,比黑暗更暗的漆黑,在此寄讬吾真红的金光吧!觉醒之时的到来,荒谬教会的堕落章理,成为无形的扭曲而显现吧!起舞吧,起舞吧,起舞吧!吾之力量本源之愿的崩坏,无人可及的崩坏,将天地万象焚烧殆尽,自深渊降临吧,这就是人类最强威力的攻击手段,这就是究级攻击魔法,Explosion!