BUU-日刷-[网鼎杯 2020 朱雀组]phpweb-call_user_func函数
2021/9/1 20:06:31
本文主要是介绍BUU-日刷-[网鼎杯 2020 朱雀组]phpweb-call_user_func函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
图片是孙笑川?
无所谓了,可以发现页面隔几秒刷新一次,页面会打印当前时间
(还有一个date函数的警告,但在无所谓了)
抓个包:
post传参
一共传了两个函数func和p
由于前面有func报错,可以猜到这里func是函数,p是参数
估计用的是call_user_func(func,p)
测试,确实是
这里说一下call_user_func()这个函数
这个函数接收多个参数call_user_func(a,b,c...)
其中a是被调用的函数(自定义函数也可),而b是a的参数
但是call_user_func这个函数不是所有都能调用的,
一些语言结构不能调用,例如:,echo(),empty(),eval(),exit(),isset(),list(),print(),unset()之类的
尝试传入 func=system p=ls
提示hacker,被拦截,估计有黑名单
这里传入file_get_contents(index.php)
<?php $disable_fun = array("exec","shell_exec","system","passthru","proc_open","show_source","phpinfo","popen","dl","eval","proc_terminate","touch","escapeshellcmd","escapeshellarg","assert","substr_replace","call_user_func_array","call_user_func","array_filter", "array_walk", "array_map","registregister_shutdown_function","register_tick_function","filter_var", "filter_var_array", "uasort", "uksort", "array_reduce","array_walk", "array_walk_recursive","pcntl_exec","fopen","fwrite","file_put_contents"); function gettime($func, $p) { $result = call_user_func($func, $p); $a= gettype($result); if ($a == "string") { return $result; } else {return "";} } class Test { var $p = "Y-m-d h:i:s a"; var $func = "date"; function __destruct() { if ($this->func != "") { echo gettime($this->func, $this->p); } } } $func = $_REQUEST["func"]; $p = $_REQUEST["p"]; if ($func != null) { $func = strtolower($func); if (!in_array($func,$disable_fun)) { echo gettime($func, $p); }else { die("Hacker..."); } } ?>
简单的代码审计,黑名单过滤了一大堆函数
看代码,发现有个Test类没使用
看类里面有个析构函数,调用了call_user_func函数
很明显这里是反序列化
序列化代码
这里多看看,或者find都能找到flag
这篇关于BUU-日刷-[网鼎杯 2020 朱雀组]phpweb-call_user_func函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享