企业src漏洞挖掘-有意思的命令执行

admin 2023年9月17日09:00:44评论66 views字数 1738阅读5分47秒阅读模式

0x01 前言

最近学习了几个比较好的漏洞挖掘姿势与案例,记录分享一下。

0x02 Cloud Shell 命令注入 - ¥13337

该漏洞案例来自2022年GoogleCloud VRP中赏金top7的漏洞(参考https://j0o1ey.github.io/2023/06/28/GoogleCloudVrp-top7-2022-Study-and-Ideas/)

在GoogleCloud的web editor中,内置了shell,而url中的project参数似乎总会出现在python config脚本中,并且会引发脚本执行

单引号触发了一个python console error

企业src漏洞挖掘-有意思的命令执行

根据目标的闭合feature构造一个oneline命令执行

企业src漏洞挖掘-有意思的命令执行

0x03 python沙箱逃逸命令执行

我们通常所说的 Python 沙箱逃逸就是绕过模拟的 Python 终端,最终实现命令执行。导入模块在 Python 的内建函数中,有一些函数可以帮助我们实现任意命令执行:

os.system() os.popen()
commands.getstatusoutput() commands.getoutput()
commands.getstatus()
subprocess.call(command, shell=True) subprocess.Popen(command, shell=True)
pty.spawn()

在 Python 中导入模块的方法通常有三种(xxx 为模块名称):

import xxx
from xxx import *
__import__('xxx')

我们可以通过上述的导入方法,导入相关模块并使用上述的函数实现命令执行。

但是,正常的 Python 沙箱会以黑名单的形式禁止使用一些模块如 os 或以白名单的形式只允许用户使用沙箱提供的模块,用以阻止用户的危险操作。而如何进一步逃逸沙箱就是我们的重点研究内容。

实战src例子(https://mp.weixin.qq.com/s/99mQ7zcj1ynA1O3wI0ij_Q)

有时候挖一些资产,会有一些在线供人练习代码的功能点,例如【python大闯关】功能点,实际浏览进一步突破

企业src漏洞挖掘-有意思的命令执行

看描述是练习print的点击发现存在在线编辑:

企业src漏洞挖掘-有意思的命令执行

这是结果区:

企业src漏洞挖掘-有意思的命令执行
企业src漏洞挖掘-有意思的命令执行

企业src漏洞挖掘-有意思的命令执行

发现可以编辑并运行代码所以第一时间就想到了沙箱逃逸 首先直接输入:

import os 
os.system

企业src漏洞挖掘-有意思的命令执行

提示非法import 花式 import 首先,禁用 import os 肯定是不行的,因为

import  os
import   os
import    os
...

都可以。如果多个空格也过滤了,Python 能够 import 的可不止 import,还有 import__:__import('os'),__import__被干了还有 importlib:importlib.import_module('os').system('ls')

这样就安全了吗?实际上import可以通过其他方式完成。回想一下 import 的原理,本质上就是执行一遍导入的库。这个过程实际上可以用 execfile 来代替:

execfile('/usr/lib/python2.7/os.py')
system('ls')

这里提示非法import但是并没有给出是import语句非法还是import这个字符串非法所以进一步测试认证一下

企业src漏洞挖掘-有意思的命令执行
企业src漏洞挖掘-有意思的命令执行

成功输出“import”所以是禁用了import语句而并非禁用了字符串,所以就有了操作空间这块直接构造payload试试:

command = 'import osnos.system("id")'
exec(command)

这个payload是将 import osnos.system("id") 作为一个字符串赋值给 command 变量,并使用 exec 函数执行了这个字符串中的代码。这样就能够实现和 os.system("id") 类似的效果,所以就绕过了import导入os的这一步操作从而绕过沙箱禁用import:

企业src漏洞挖掘-有意思的命令执行
企业src漏洞挖掘-有意思的命令执行

免责声明:

「由于传播、利用本公众号虫洞小窝所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及作者不为此承担任何责任,一旦造成后果请自行承担!」

虫洞小窝

bugbounty or redteam

原文始发于微信公众号(虫洞小窝):企业src漏洞挖掘-有意思的命令执行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月17日09:00:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   企业src漏洞挖掘-有意思的命令执行https://cn-sec.com/archives/2043084.html

发表评论

匿名网友 填写信息