在蟒蛇SimpleXMLRPC Server的python文檔,它提到:注入任意代碼轉換爲Python SimpleXMLRPC服務器
警告啓用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()
請解釋漏洞如何被利用來注入任意代碼到服務器上?如果我的上面的代碼不易受到攻擊,那麼請舉例說明可以被利用的代碼和客戶端代碼。