当前位置:   article > 正文

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/73687
推荐阅读
相关标签
  

闽ICP备14008679号