Pwnable-blackjack

喜夏-厌秋 提交于 2019-12-02 21:41:59

游戏源码

http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html

 

打开之后是一个游戏

 你有500本金,赢到一百万才有flag

 每次下注不能超过本金,运气好都要很久,更何况还会输,那么我们看看这个游戏的源码,但是

 于是我窃了一下其他的博客的源码(读书人能叫偷吗)

int betting() //Asks user amount to bet
{
 printf("\n\nEnter Bet: $");
 scanf("%d", &bet);
 
 if (bet > cash) //If player tries to bet more money than player has
 {
        printf("\nYou cannot bet more money than you have.");
        printf("\nEnter Bet: ");
        scanf("%d", &bet);     
        return bet;
 }
 else return bet;
} // End Function

可以看到这里,第一次判断如果下注超过本金,则告诉你没有那么多钱,并且让你在输入一次,重点是第二次输入的本金没有进行二次判断是否大于本金,于是我们就可以利用这里逻辑漏洞:第一次故意故意输入大于500,第二次输入一百万,一次一百万获取flag

 

第一次输入501,第二次1000000

 

 与电脑斗智斗勇,然后暴富

 

 或者可以利用负数

 

 

 

YaY_I_AM_A_MILLIONARE_LOL

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!