如何使用带有Perl -e参数的cat读取文件?

时间:2019-06-14 11:38:39

标签: linux perl

我已经建立了渗透测试虚拟机,并试图进行特权升级。

我当前正在尝试读取文件。我无权访问文件所在的用户的主目录,但我有权将/usr/bin/perl作为user/admin运行。

我的理解是,我可以使用授予我的perl权限,运行以下命令来基本整理文件并查看其中的内容,但它似乎不起作用,也没有返回结果

james@linuxtest:~$ sudo -l

在Linuxtest上为James匹配默认项:

env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

用户james可能在linuxtest上运行以下命令:

(james2) /usr/bin/perl

james@linuxtest:~$ sudo -u james2 perl -e 'print 'cat /home/james/test.txt''

我希望结果是文件的内容,或者至少是某种错误,但没有结果。我在这里犯了一个愚蠢的错误吗?

1 个答案:

答案 0 :(得分:4)

我认为您想要

sudo -u james2 perl -e 'print `cat /home/james/test.txt`'

反引号用于执行shell命令并捕获其输出。

那是一种怪异的方式

sudo -u james2 perl -e 'system "cat /home/james/test.txt"'

这是一种奇怪的做法

sudo -u james2 cat /home/james/test.txt

由于您是root,所以这是一种奇怪的方式

cat /home/james/test.txt