python system函数工作_python – 为什么“echo os.system(‘/ bin / bash’)”工作?

我正在做一种黑客挑战,其中一部分发现我陷入了一个只有很少命令的限制shell.其中一个可用的命令是echo.经过几个小时的撞击我的头,我决定在一些提示高峰.事实证明,echo os.system(‘/ bin / bash’)会把你从受限制的shell中解脱出来……只有在我看到这个之后我才能谷歌它,但我还没有找到任何信息除此之外你可以do it in some限制shell的情况.当我用zsh和bash尝试它时,它在我的终端上不起作用…为什么这甚至可以工作? os.system部分对我来说看起来像Python ..有人能为我提供一些背景知识吗?如果这是Python,那么它如何与echo一起使用?

解决方法:

这似乎是LShell 0.9.15中存在的一个问题,这是一个在python中实现的受限shell.

易受攻击的函数称为check_path(),用于检查是否允许用户访问命令行上的给定路径.

问题是这个函数使用eval()作为从命令行中去除引号的方法,这也很乐意执行任何有效的python表达式.

for item in line:

# remove potential quotes

try:

item = eval(item)

except:

pass

标签:python,echo,restricted-shell

来源: https://codeday.me/bug/20190812/1641709.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值