w1w 发表于 2018-12-12 10:55:06

PHP代码执行函数总结

  【转】https://www.cnblogs.com/xiaozi/p/7834367.html
  PHP中可以执行代码的函数,常用于编写一句话***,可能导致代码执行漏洞,这里对代码执行函数做一些归纳。
  常见代码执行函数,如
  eval()、assert()、preg_replace()、create_function()
  array_map()、call_user_func()、call_user_func_array(),array_filter,usort,uasort()
  文件操作函数、动态函数($a($b))
  1、eval()
  eval() 函数把字符串按照 PHP 代码来计算,如常见的一句话后门程序:
  2、assert()
   与eval类似,字符串被 assert() 当做 PHP 代码来执行,如:
  示例代码:

  3、preg_replace()
  mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
  搜索subject中匹配pattern的部分, 以replacement进行替换。
  preg_replace()函数原本是执行一个正则表达式的搜索和替换,但因为存在危险的/e修饰符,使 preg_replace() 将 replacement 参数当作 PHP 代码
  示例代码:

  4、create_function()
  create_function主要用来创建匿名函数,如果没有严格对参数传递进行过滤,***者可以构造特殊字符串传递给create_function()执行任意命令。
  代码示例:

  参考链接:
  代码安全:PHP create_function()注入命令执行漏洞
  http://www.cnseay.com/1901/
  http://lovexm.blog.运维网.com/3567383/1743442
  http://qqhack8.blog.163.com/blog/static/11414798520153795157139/
  5、array_map()
  array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。 回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
  代码示例:
https://common.cnblogs.com/images/copycode.gif

https://common.cnblogs.com/images/copycode.gif
  6、call_user_func()/call_user_func_array ()
  call_user_func — 把第一个参数作为回调函数调用,其余参数是回调函数的参数。
  call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数
https://common.cnblogs.com/images/copycode.gif

  

  

https://common.cnblogs.com/images/copycode.gif
  7、array_filter()
  array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
  依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
https://common.cnblogs.com/images/copycode.gif

https://common.cnblogs.com/images/copycode.gif
  8、usort()、uasort()
  usort() 通过用户自定义的比较函数对数组进行排序。
  uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 。
  代码示例:
https://common.cnblogs.com/images/copycode.gif
php环境>=5.6才能用利用方式:  
test.php?1[]=1-1&1[]=eval($_POST['x'])&2=assert
  
:x=phpinfo();
  

  
php环境>=
  

https://common.cnblogs.com/images/copycode.gif
  10、动态函数
  PHP函数直接由字符串拼接
  代码示例:



页: [1]
查看完整版本: PHP代码执行函数总结