Commit 3eadcd95 authored by Medicean's avatar Medicean

Enhance(Core/JSPJS): 标记JSPJS支持RAW

parent f75f16f5
......@@ -47,8 +47,7 @@
* JSPJS 兼容各种表达式注入
> 具体请看 spelbase64、el、ognl 这三个内置编码器样例
> 具体请看 spelbase64、el、ognl 这三个内置编码器样例, 详细请参考[Java表达式注入的武器化利用](https://mp.weixin.qq.com/s/nCvAICapO8NX--VfToLcwQ)
### 数据管理
......@@ -58,6 +57,7 @@
* 新增配置选项「Body 设置为 RAW 模式」
> 勾选该选项后,只会发送 `pwd` 键下的内容,不会发送键值
> 目前生效的类型有: 「PHPRAW」、「CMDLinux」、「PSWindows」、「JSPJS」
主要场景如下:
......@@ -70,7 +70,7 @@
* 新增 FileHash 计算目标文件 hash 功能
> 该功能目前正在逐步适配所有类型中 (PHP/PHP4/PSWindows/CMDLinux/JSP)
> 该功能目前正在逐步适配所有类型中 , 目前已经适配 PHP/PHP4/PSWindows/CMDLinux/JSP
### 后端模块
......@@ -78,10 +78,9 @@
* Fix #307
* 重新规整 `modules/request.js` 代码结构
* 调整 superagent ignoreHTTPS 注入,避免 npm upgrade之后引发问题
*
* 支持 WebSocket 连接
> 由于 ASP/ASPX/PHP/JSP/JSPJS 类型每次请求时为多个参数,WebSocket连接之后Server端解析会较为困难,所以当前仅支持「RAW」类型: 「PHPRAW」、「CMDLinux」、「PSWindows」,未来会支持基于 defineClass 的 JSPRAW 类型
> 由于 ASP/ASPX/PHP/JSP/CUSTOM 类型每次请求时为多个参数,WebSocket连接之后Server端解析会较为困难,所以当前仅支持「RAW」类型: 「PHPRAW」、「CMDLinux」、「PSWindows」、「JSPJS」,未来会支持基于 defineClass 的 JSPRAW 类型
[wsMemShell](https://github.com/veo/wsMemShell) 项目中的 `wscmd` 为例:
......
......@@ -9,6 +9,9 @@
const Base = require('../base');
class JSPJS extends Base {
static get supportRawBody() {
return true;
}
constructor(opts) {
super(opts);
// 解析模板
......@@ -41,18 +44,18 @@ class JSPJS extends Base {
* @return {array} 编码器列表
*/
get encoders() {
return ["spelbase64","el","ognl"];
return ["spelbase64", "el", "ognl"];
}
get decoders() {
return ["default", "base64", "hex", "b64reverse", "b64rot13"];
}
/**
* HTTP请求数据组合函数
* @param {Object} data 通过模板解析后的代码对象
* @param {bool} force_default 强制使用 default 解码
* @return {Promise} 返回一个Promise操作对象
*/
return ["default", "base64", "hex", "b64reverse", "b64rot13"];
}
/**
* HTTP请求数据组合函数
* @param {Object} data 通过模板解析后的代码对象
* @param {bool} force_default 强制使用 default 解码
* @return {Promise} 返回一个Promise操作对象
*/
complete(data, force_default = false) {
// 分隔符号
let tag_s, tag_e;
......@@ -86,7 +89,7 @@ class JSPJS extends Base {
}
// 组合完整的代码
let tmpCode = data['_'];
data['_'] = `
try {
load("nashorn:mozilla_compat.js");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment