在 python SimpleXMLRPC Server的 python 文档中,提到了:
警告 启用 allow_dotted_names 选项允许入侵者访问您模块的全局变量,并可能允许入侵者在您的机器上执行任意代码。仅在安全、封闭的网络上使用此选项。
现在我有一个服务器,代码如下:
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
server = SimpleXMLRPCServer(("localhost", 8000),
requestHandler=RequestHandler)
server.register_introspection_functions()
server.register_function(pow)
def adder_function(x,y):
return x + y
server.register_function(adder_function, 'add')
class MyFuncs:
def mul(self, x, y):
return x * y
server.register_instance(MyFuncs(), allow_dotted_names=True)
server.serve_forever()
请解释如何利用该漏洞将任意代码注入服务器?如果我上面的代码不是易受攻击的,那么举一个可以被利用的例子和客户端代码这样做。