pwnable.kr:lotto

Posted    on 2017, Jul30, Sunday 23:24:04
Modified on 2017, Jul30, Sunday 23:24:07

Tags: pwnable.kr

题目

Mommy! I made a lotto program for my homework.
do you want to play?

ssh lotto@pwnable.kr -p2222 (pw:guest)

1. 分析

验证部分代码如下

int match = 0, j = 0;
for (i = 0; i < 6; i++)
{
    for (j = 0; j < 6; j++)
    {
        if (lotto[i] == submit[j])
        {
            match++;
        }
    }
}

// win!
if (match == 6)
{
    system("/bin/cat flag");
}
else
{
    printf("bad luck...\n");
}

其中submit是从stdin读入的数据,lotto为随机生成的1——45的数字,显然令submit = “\x01\x01\x01\x01\x01\x01”,即6个字符都相同,这样中奖的概率最高

2. 题解

代码见附件

附录

附件: lotto.zip