Pwnable-blackjack

时间:2019-10-30
本文章向大家介绍Pwnable-blackjack,主要包括Pwnable-blackjack使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

游戏源码

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

原文地址:https://www.cnblogs.com/gaonuoqi/p/11763520.html