[Tutor] accessing list from a string
Kent Johnson
kent37 at tds.net
Wed Nov 26 13:17:08 CET 2008
On Wed, Nov 26, 2008 at 4:16 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:
> "John Fouhy" <john at fouhy.net> wrote
>
>>> e = "tuple(" + e + ")"
>>>
>>> x,y = eval(e) # x -> 2.5, y -> 2.8
>>>
>> If I, as an evildoer, can control e, it seems that I could set it to:
>>
>> ,), __import__('os').system('rm -rf /'
>
> But that would be a specific bit of code aimed at a
> specific eval - in other words the perp would need to
> know that the eval had a function call in it. So yes
> you do classify as devious in my definition! :-)
This works just as well:
s = '__import__("os").system("rm -rf /")'
I've no actual experience with this sort of attacker but it's not hard
to imagine a bored attacker trying many combinations of input, or
having a priori knowledge of the code under attack.
Tangentially related I have to mention this lovely SQL injection attack:
http://xkcd.com/327/
Kent
More information about the Tutor
mailing list