gpt4 book ai didi

c - 如何在该程序中利用缓冲区溢出并将参数传递给 system() 函数?

转载 作者:行者123 更新时间:2023-11-30 16:44:58 32 4
gpt4 key购买 nike

首先,我对不清楚的问题感到抱歉,因为我的英语不好,我无法清楚地辨别它。我也不知道是什么?叫什么名字。

我的问题如下:

我用C语言写了一个程序:

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

int main() {
char buf[2],buf1[10];

fgets(buf,2,stdin);
fgets(buf1,10,stdin);

puts(buf);
puts(buf1);

printf("Opening Shell...\n");

system("/bin/dash");

printf("\nEND\n");
return 0;
}

我的目的是将参数传递给溢出缓冲区变量,并在 /bin/dash 之后插入命令来读取一些我不拥有的文件,等等...我尝试过:管道:

python2.7 -c 'print "a"*12 + "\n" + " -c \"cat tes.c > show\""' |  /myprogram

我的程序运行正常,但是shellcode -c "cat tes.c > show"也许不会被使用。

我设置了所有文件和权限7777 .

那么,如何在 /bin/dash 之后插入 shellcode?

感谢您的阅读!抱歉我的英语不好。

最佳答案

您需要覆盖 "/bin/dash" 末尾的 \0 并插入以 \0 结尾的代码,因为 \0 标记字符串的结尾。

关于c - 如何在该程序中利用缓冲区溢出并将参数传递给 system() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44296545/

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