动态函数执行

动态函数执行

函数与函数之间的调用,可能会造成的漏洞

usort函数介绍

usort(array,myfunction)

array(必须,需要排序的数组)

myfunction定义用于比较字符串的函数,如果第一个参数小于第二个参数,那么比较函数必须返回一个小于等于或大于0的整数,这样返回的数组是按照正序排列

 createfunction被定义的c函数

存在LAMBDA_TEMP_FUNCNAME “(%s){%s},这段代码我们用}就是为了封闭{,再写上自己的代码;

第一个)封闭strlen,第二个封闭return,第一个分号结束return,第一个大括号即是上述代码的{,写上自己的代码,第一个分号为该代码的结束,第二个分号为create_function的结束

 http://localhost/1.php?c=1%29%29;}phpinfo%28%29;;//

Eval_code=(char*)emalloc(eval_code_length);

sprintf(eval_code, “function ” LAMBDA_TEMP_FUNCNAME “(%s){%s}”, 

Sprintf(eval_code,NULL,eval_name RSRmLS_CC)

retval = zend_eval_string(eval_code, NULL, eval_name TSRMLS_CC);

 

posted @ 2016-04-06 11:01  平何去何  阅读(190)  评论(0)    收藏  举报