赞
踩
我正在做一种黑客挑战,其中一部分发现我陷入了一个只有很少命令的限制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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。