【JspServlet混淆与绕过处理】
在Unix下的系统是使用的UNIXProcess类
类似的我们可以
构造UNIXProcess/ProcessImpl实例进行命令执行
或者更底层的通过Unsafe进行类实例的创建以及反射调用Native方法forkAndExec进行命令执行
混淆绕过
编码
最常见的混淆就是通过编码来进行webshell的隐藏
对于JSP的解析流程
在请求一个jsp页面时,如果是首次jsp页面的访问将会对jsp页面进行编译生成一个class文件,之后封装成一个JspServlet,通过调用他的service方法处理请求,特别的,如果不是首次访问jsp文件,如果没有更改将不会再次进行编译操作,直接使用之前的JspServlet进行调用。
台远程计算机上运行的 Windows PowerShell 主机的版本。
由于只运行一个命令,因此不必创建与每台计算机的持续性连接(会话),而是由此命令使用 ComputerName 参数来指定计算机。
此命令使用 Invoke-Command cmdlet 来运行 Get-Host 命令。它使用点表示法来获取 Windows PowerShell 主机的 Version 属性。
为了指定计算机,它使用 Get-Content cmdlet 来获取 Machine.txt 文件(计算机名称文件)的内容。
简单跟进一下Jsp的解析过程以及对编码的判断
在JspServletWrapper#service方法中通过compile方法进入编译流程
混淆绕过