<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

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

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            php語言

            PHP漏洞:命令注入攻擊

            時間:2025-05-15 04:14:09 php語言 我要投稿
            • 相關推薦

            PHP漏洞:命令注入攻擊

              計算機程序中都會有漏洞,那么在PHP中該怎么防止注入攻擊呢?下面是小編整理的解決辦法,希望對大家有用,更多消息請關注應屆畢業生網。
              命令注入攻擊,PHP中可以使用下列5個函數來執行外部的應用程序或函數
              system、exec、passthru、shell_exec、“(與shell_exec功能相同)
              函數原型
              stringsystem(stringcommand,int&return_var)
              command要執行的命令
              return_var存放執行命令的執行后的狀態值
              stringexec(stringcommand,array&output,int&return_var)
              command要執行的命令
              output獲得執行命令輸出的每一行字符串
              return_var存放執行命令后的狀態值
              voidpassthru(stringcommand,int&return_var)
              command要執行的命令
              return_var存放執行命令后的狀態值
              stringshell_exec(stringcommand)
              command要執行的命令
              漏洞實例
              例1:
              //ex1.php
              $dir=$_GET["dir"];
              if(isset($dir))
              {
              echo"
              ";
              system("ls-al".$dir);
              echo"
              ";
              }
              ?>
              我們提交http://www.sectop.com/ex1.php?dir=|cat/etc/passwd
              提交以后,命令變成了system("ls-al|cat/etc/passwd");
              eval注入攻擊
              eval函數將輸入的字符串參數當作PHP程序代碼來執行
              函數原型:
              mixedeval(stringcode_str)//eval注入一般發生在攻擊者能控制輸入的字符串的時候
              //ex2.php
              $var="var";
              if(isset($_GET["arg"]))
              {
              $arg=$_GET["arg"];
              eval("\$var=$arg;");
              echo"\$var=".$var;
              }
              ?>
              當我們提交http://www.sectop.com/ex2.php?arg=phpinfo();漏洞就產生了;
              動態函數
              php
              funcA()
              {
              dosomething();
              }
              funcB()
              {
              dosomething();
              }
              if(isset($_GET["func"]))
              {
              $myfunc=$_GET["func"];
              echo$myfunc();
              }
              ?>
              程序員原意是想動態調用A和B函數,那我們提交http://www.sectop.com/ex.php?func=phpinfo漏洞產生
              防范方法
              1、盡量不要執行外部命令
              2、使用自定義函數或函數庫來替代外部命令的功能
              3、使用escapeshellarg函數來處理命令參數
              4、使用safe_mode_exec_dir指定可執行文件的路徑
              esacpeshellarg函數會將任何引起參數或命令結束的字符轉義,單引號“’”,替換成“\’”,雙引號“"”,替換成“\"”,分號“;”替換成“\;”
              用safe_mode_exec_dir指定可執行文件的路徑,可以把會使用的命令提前放入此路徑內
              safe_mode=On
              safe_mode_exec_dir=/usr/local/php/bin/

            【PHP漏洞:命令注入攻擊】相關文章:

            php防止SQL注入攻擊與XSS攻擊的方法07-01

            php防止SQL注入攻擊與XSS攻擊方法08-07

            PHP阻止SQL注入式攻擊的方法08-27

            php中sql注入與XSS攻擊的介紹11-10

            了解常見的php的sql注入式攻擊08-12

            php防止sql注入漏洞過濾函數的代碼08-22

            了解常見的php中sql注入式攻擊10-15

            在PHP中阻止SQL注入式攻擊的方法09-07

            PHP的漏洞-如何防止PHP漏洞09-05

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

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

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院