diff --git a/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb b/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb index b0eff5f2e..4f3ae8baa 100644 --- a/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb +++ b/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb @@ -1,3 +1,8 @@ +# ##################### +# Programming Challenge +# Echo string - Repeat a string and repeat back to the script +# ##################### + require 'securerandom' require 'timeout' diff --git a/modules/generators/challenges/misc/programming/echo_string/secgen_local/medium.rb b/modules/generators/challenges/misc/programming/echo_string/secgen_local/medium.rb new file mode 100644 index 000000000..21d85b251 --- /dev/null +++ b/modules/generators/challenges/misc/programming/echo_string/secgen_local/medium.rb @@ -0,0 +1,37 @@ +# ##################### +# Programming Challenge +# Echo string - Medium: Reverse a string and repeat it back to the script +# ##################### + +require 'securerandom' +require 'timeout' + +$stdout.sync = true # Disable stdout caching (for challenges that can be run over the network) +puts 'Prepare yourself. You need to work quickly for this challenge.' + +sleep 2 +puts 'Echo the string back to me, in reverse, before the script times out. Try writing a script of your own to make it easier!' +sleep 2 +puts 'Get ready, here we go...' +sleep 2 +# Generate random string +string = [SecureRandom.base64(rand(20..40)), SecureRandom.hex(rand(20..40))].sample + +puts string +STDOUT.flush + +begin + Timeout.timeout 5 do + response = gets.chomp + if response == string.reverse + puts File.read('flag') + else + puts 'Incorrect answer!' + exit + end + end +rescue Timeout::Error + puts 'Too slow!' + exit +end + diff --git a/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml b/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml index e05422655..860fcfb1f 100644 --- a/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml +++ b/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml @@ -18,9 +18,9 @@ difficulty - low - - + + medium +