gpt4 book ai didi

c - 使用修改后的 ls 执行另一个程序

转载 作者:行者123 更新时间:2023-11-30 19:47:17 28 4
gpt4 key购买 nike

我修改了ls :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char **argv){
gid_t egid = getegid();
setregid(egid, egid);
printf("This is a special NSA-modified 'ls' program. Due to security reasons it can only run 'ls' without user parameters.\n");
system("ls -l");
return 0;
}

我需要运行修改后的ls运行名为 get-code 的程序,但我不知道如何欺骗 system此代码中的函数不仅执行 ls -l还有 get-code 。这是学校的类(class),我可以在网上向老师询问,该类(class)是如何更好地保护程序,不让代码中出现任何安全漏洞。

有人可以帮助我吗?这不是重复的我只是想知道如何欺骗 system所以我可以用这个 ls 执行它代码

最佳答案

您可以创建一个本地ls,例如

#!/bin/bash

/bin/ls -l
/courses/InetSec1/challenge6/get-code

然后将此脚本(您应该将其命名为 ls 并运行 chmod a+x ls 以为其添加执行权限)放在某个目录中,例如 ~/bin/,并通过 export PATH=$HOME/bin:$PATH 将此目录添加到您的路径中。

此后,如果您再次运行该程序,它将运行您本地的ls,因为system()将在子shell下运行您的命令,并且该shell将需要在 $PATH 中运行搜索命令。

正是 Modify a program I'm not the owner of 中给出的答案

关于c - 使用修改后的 ls 执行另一个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22319744/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com