Commit 74c4bf0c authored by Medicean's avatar Medicean Committed by Medicean

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

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