首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebApp Windows命令注入,而不包含“Injection”

WebApp Windows命令注入,而不包含“Injection”
EN

Security用户
提问于 2021-02-04 19:23:18
回答 1查看 116关注 0票数 1

我已经找到了一个允许任意文件上传的应用程序(客户端对文件扩展名的验证),但是这些文件不能存储在web服务器可以访问的文件夹中,所以web shell是不可能的。

但是,由于webserver提供了详细的调试输出,文件上传功能直接将文件的路径(具有新的随机名称,但文件扩展名)直接传递给命令参数。这给了我注射命令的想法。该命令通常失败于未找到的文件(因为我的命令有效负载在文件扩展名中,因为它们随机地重命名文件并保留扩展名和文件内容)。

由于该命令是通过后端的cmd.exe运行的,所以我希望在文件扩展名中使用||来告诉shell在文件未找到错误后运行下一个命令。

唯一的问题是windows不允许将||存储在文件名中,而且当我试图在文件名/扩展名中包括||时,该网站不允许您继续(猜测服务器端黑名单或由于不受支持的字符造成的错误)。

字符&工作正常,除非从未找到该文件,否则永远不会成功,并且shell退出,因为&&只在前面的命令成功运行时运行下一个命令。

由于应用程序解析提供的文件名的方式,有效负载必须位于文件扩展名中,并且不能包含任何.字符。

还有其他方法可以让我的命令不使用||而运行吗?我尝试过使用URL编码,但它将编码文本存储在文件名中。

EN

回答 1

Security用户

发布于 2022-01-12 05:02:40

只需使用单个&,这样命令就不会有条件地堆叠。

让我们想象一下,这个命令是copy sourcefile destination.txt,您在这里控制源代码。

如果您将文件命名为hax && whoami &&.txt,那么正如您所说的那样,它是有条件的,不会执行:

代码语言:javascript
复制
copy hax && whoami &&.txt destination.txt
The system cannot find the file specified.

而使用hax & whoami &.txt将执行:

代码语言:javascript
复制
copy hax & whoami &.txt destination.txt
The system cannot find the file specified.
domain\user
'.txt' is not recognized as an internal or external command,
operable program or batch file. 
票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/244276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档