others_shellcode

题目链接:others_shellcode

下载附件后,使用 IDA 反编译,定位到主要函数,如下。

int getShell()
{
  int result; // eax
  char v1[9]; // [esp-Ch] [ebp-Ch] BYREF

  strcpy(v1, "/bin//sh");
  result = 11;
  __asm { int     80h; LINUX - sys_execve }
  return result;
}

对应的汇编代码如下。

.text:00000550                 push    ebp
.text:00000551                 mov     ebp, esp
.text:00000553                 call    __x86_get_pc_thunk_ax
.text:00000558                 add     eax, (offset _GLOBAL_OFFSET_TABLE_ - $)
.text:0000055D                 xor     edx, edx        ; envp
.text:0000055F                 push    edx
.text:00000560                 push    'hs//'
.text:00000565                 push    'nib/'
.text:0000056A                 mov     ebx, esp        ; file
.text:0000056C                 push    edx
.text:0000056D                 push    ebx
.text:0000056E                 mov     ecx, esp        ; argv
.text:00000570                 mov     eax, 0FFFFFFFFh
.text:00000575                 sub     eax, 0FFFFFFF4h
.text:00000578                 int     80h             ; LINUX - sys_execve
.text:0000057A                 nop
.text:0000057B                 pop     ebp
.text:0000057C                 retn

可以看到,程序直接执行了 execve 系统调用,并且参数为 "/bin/sh"。

因此,直接使用 nc 连接题目环境即可 GetShell。

posted @ 2025-09-06 13:06  imtaieee  阅读(22)  评论(0)    收藏  举报