/* 属性 */
PageContext pageContext;
HashMap praameterMap = new HashMap<Object, Object>();
/* 方法 */
Class g(byte[] b) :类加载
String get(String key):获取prameterMap某个键的值
byte[] getByteArray(String key):获取praameterMap某个键的值// Shell相关
byte[] run() :核心方法,根据parameterMap中获取的evalClassName和methodName调用方法
void formatParameter():{"ILikeYou":"bWV0b28="} prameterMap,又将praameterMap放入request的parameters属性
boolean equals(Object obj):判断对象是否为PageContext类型
String toString():调用run方法,并清空request的parameters属性
byte[] test():返回"ok"的字节码,shell初次链接时确认key和密码使用
void noLog(PageContext pc):清空日志
handle():// 文件管理
getFile()、listFileRoot()、readFile()、uploadFile()、newFile()、newDir()、deleteFile() 、moveFile() 、copyFile() 、deleteFiles(File f)// 命令执行
byte[] execCommand()// 基础信息
byte[] getBasicsInfo()
byte[] include()
Map<String, String> getEnv()
String getDocBase()
String getRealPath()// 数据库管理
byte[] execSql()// 反射
Object invoke(Object obj, String methodName, Object... parameters)
Method getMethodByClass(Class cs, String methodName, Class... parameters)
static Object getFieldValue(Object obj, String fieldName)// Base64操作
String base64Encode(String data)
String base64Encode(byte[] src)
byte[] base64Decode(String base64Str)
f.equals(arrOut);
f.equals(pageContext);
ByteArrayOutputStream -> this.outputStream
HttpServletRequest | ServletRequest -> this.servletRequest
[B (byte[].class) -> this.requestData
HttpSession -> this.httpSession
f.toString();
formatParameter();//获取服务端接受的参数(方法名)
f.equals(arrOut):获取输入对象待用
f.equals(pageContext):获取所有参数
f.toString():执行代码
往期推荐
E
N
D
团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台 | ......
星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享
星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......
星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑 | ......
扫码加入一起学习吧~