-
-
[分享]pwnable.kr random day5
-
发表于:
2021-1-6 14:39
8841
-
[分享]pwnable.kr random day5
flag 只对创建者 random_pwn 和 root 可读,而我们登录的用户是 random,无读权限。random 对random_pwn 和 random 开放读和执行权限,而且权限里面有 s,因此 random 用户在执行这个文件时会被赋予 root 权限。
我们的目标是执行 system("/bin/cat flag"),需满足 key ^ random == 0xdeadbeef
key 的值手动输入,我们可控
random 的值是由 rand() 产生,rand() 产生的随机数在每次运行的时候都是与上一次相同的。若要不同, 用函数 srand() 初始化它。此处没有使用 srand() 所以我们可以先执行一次程序查看 random 的值。
int
main(){
unsigned
int
random;
random
=
rand();
/
/
random value!
unsigned
int
key
=
0
;
scanf(
"%d"
, &key);
if
( (key ^ random)
=
=
0xdeadbeef
){
printf(
"Good!\n"
);
system(
"/bin/cat flag"
);
return
0
;
}
printf(
"Wrong, maybe you should try 2^32 cases.\n"
);
return
0
;
}
int
main(){
unsigned
int
random;
random
=
rand();
/
/
random value!
unsigned
int
key
=
0
;
scanf(
"%d"
, &key);
if
( (key ^ random)
=
=
0xdeadbeef
){
printf(
"Good!\n"
);
system(
"/bin/cat flag"
);
return
0
;
}
printf(
"Wrong, maybe you should try 2^32 cases.\n"
);
return
0
;
}
b
*
0x0000000000400610
x
/
10x
$rbp
-
4
b
*
0x0000000000400610
x
/
10x
$rbp
-
4
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-1-6 14:44
被cease2e编辑
,原因: 忘记加参考链接