<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 遠程命令/代碼執行漏洞 ### 一、遠程命令執行原理: 很多應用系統從設計上需要給用戶提供指定的遠程命令操作的接口 >比如很多網絡設備的web管理界面上一般會有一個ping操作的web界面,用戶從web界面輸入目標IP,提交后,后臺會對該IP地址進行一次ping測試,并返回測試結果。 而如果設計者在完成該功能時,沒有做嚴格的安全控制,則可能會導致攻擊者通過該接口提交“意想不到”的命令,從而讓后臺進行執行,從而控制整個后臺服務器 。 現在很多的甲方企業都開始實施自動化運維,大量的系統操作會通過"自動化運維平臺"進行操作。 在這種平臺上往往會出現遠程系統命令執行的漏洞 ### 二、遠程代碼執行原理: 同樣的道理,因為需求設計,后臺有時也會把用戶的輸入作為代碼的一部分進行執行,也就造成了遠程代碼執行漏洞。 因此,如果需要給前端用戶提供操作類的API接口,一定需要對接口輸入的內容進行嚴格的判斷,比如實施嚴格的白名單策略會是一個比較好的方法。 ### 三、命令執行一般出現那些地方? 只要帶參數的地方都可能出現 常見的路由器、防火墻、入侵檢測、動化運維平臺 ### 四、系統命令拼接方式 : ``` |? ? ? ? ?管道符,前面命令標準輸出,后面命令的標準輸入。例如:help |more &? ? ? ?commandA & commandB 先運行命令A,然后運行命令B ||? ? ? ?commandA || commandB 運行命令A,如果失敗則運行命令B &&? ? commandA && commandB 運行命令A,如果成功則運行命令B? ``` ping命令案例 ```sh # 正常情況下,web輸入框要求輸入ip地址,回車即可開始ping 192.168.1.1 # 給ip后拼上其他命令 192.168.1.1 & whoami # 整體命令變為 ping 192.168.1.1 & whoami ``` ### 五、需要注意的函數 ``` #關于執行系統命令漏洞需要注意的函數 assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,`` #關于執行系統命令漏洞需要注意的函數 eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13 ``` ### 六、解決方案: 假定所有輸入都是可疑的 1. 嘗試對所有輸入提交可能執行命令的構造語句進行嚴格的檢查或者控制外部輸入 系統命令執行函數的參數不允許外部傳遞。 2. 不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。 3. 不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。 4. 對輸出的數據也要檢查,數據庫里的值有可能會在一個大網站的多處都有輸出 即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
                  <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>

                              哎呀哎呀视频在线观看