From fb61e5916e95369a769bbf2d52e9a558c2f8a4d4 Mon Sep 17 00:00:00 2001 From: Michael Barre Date: Sat, 11 Mar 2017 03:19:47 -0600 Subject: [PATCH] added a integer overflow problem, included source and flag but neither of those should be provided to the user --- risky-business/casino | Bin 0 -> 15224 bytes risky-business/description.md | 1 + risky-business/flag.txt | 1 + risky-business/grader.py | 4 ++ risky-business/main.cpp | 75 ++++++++++++++++++++++++++++++++++ risky-business/problem.yml | 9 ++++ 6 files changed, 90 insertions(+) create mode 100644 risky-business/casino create mode 100644 risky-business/description.md create mode 100644 risky-business/flag.txt create mode 100644 risky-business/grader.py create mode 100644 risky-business/main.cpp create mode 100644 risky-business/problem.yml diff --git a/risky-business/casino b/risky-business/casino new file mode 100644 index 0000000000000000000000000000000000000000..7cda6bedf991ed45d95b76d289f7b3f089f55449 GIT binary patch literal 15224 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 +#include +#include +#include + + +bool gamble() +{ + if (rand() % 5 == 0) + { + return true; + } + return false; +} + +void printflag() +{ + std::cout << "Welcome to our exclusive club!" << std::endl; + std::ifstream flagI("flag.txt"); + std::string flag; + getline(flagI, flag); + flagI.close(); + std::cout << "Here's our special flag: " << flag << std::endl; +} + + +int networth = 100000; +int main() +{ + std::cout << "Welcome to the EasyCTF 2017 Casino" << std::endl; + std::cout << "Try your luck and gain access to our exclusive club!" << std::endl; + while (true) + { + std::cout << std::endl; + std::cout << "Your net worth is: $" << networth << std::endl; + if (networth > 2000000000) + { + printflag(); + break; + } + std::cout << "Please enter how much you would like to bet:" << std::endl; + std::string tmp; + getline(std::cin, tmp); + std::stringstream s(tmp); + int inp; + s >> inp; + if (!s.eof() || s.fail()) + { + std::cout << "That was not a valid number :("; + continue; + } + if (inp <= 0) + { + std::cout << "You must bet a positive amount" << std::endl; + continue; + } + if (inp > 100000000) + { + std::cout << "Sorry, the most we can allow you to bet is $100,000,000" << std::endl; + continue; + } + if (!gamble()) + { + std::cout << "Sorry, I'm afraid you've lost :(" << std::endl; + networth -= inp; + } + else + { + std::cout << "Congratulations, you won!" << std::endl; + networth += inp; + } + + } + return 0; +} \ No newline at end of file diff --git a/risky-business/problem.yml b/risky-business/problem.yml new file mode 100644 index 0000000..b9f93b6 --- /dev/null +++ b/risky-business/problem.yml @@ -0,0 +1,9 @@ +author: GenericNickname +title: Risky Business +hint: I wonder how you could make a lot of money... +category: Binary Exploitation +autogen: false +programming: false +value: 100 +files: + - casino