目录 前言 create_function()简介 函数功能: 代码注入实例: 0x01: 0x02 前言 一直遇到过这个 函数,但是不知道怎么利用 这回学习一下这个函数 create_function(
目录
一直遇到过这个 函数,但是不知道怎么利用 这回学习一下这个函数
语法:create_function(string $args, string $code)string $args 声明的函数变量部分string $code 执行的方法代码部分
分析:
create_function() 会创造一个匿名函数 (lambda样式) 此处创建了一个叫 lamvda_1 的函数, 在第一个 echo 中 显示名字, 并在第二个echo 语句中执行了 此函数。
create_function() 函数 会在内部 执行 eval() , 我们发现是执行了 后面的 return 语句,属于create_function() 中的第二个参数 string $code 的位置
因此,上述匿名函数的创建与执行过程等价于:
create_function( ) 函数在代码审计中,主要用来查找项目中的代码注入和回调后门的情况,熟悉了执行流程, 可以实现对代码注入的 payload 构造,从而 进行漏洞挖掘和找出存在缺陷
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();/*}
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(); /*)); }
来源地址:https://blog.csdn.net/snowlyzz/article/details/127171931
--结束END--
本文标题: PHP代码 之create_function()函数
本文链接: https://lsjlt.com/news/389419.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0