前言
前面提及了最普通的JSP Webshell的构造,以及通过分析在java编译过程中对unicode编码的解码过程学习了一些在JSP中的关于unicode编码的绕过方法
这里主要是通过学习了在动态生成java文件的过程中,针对标准的JSP语法和XML格式的语法的编码的获取和解码进行编码~~~~
embed encoding
这里主要是使用在JSP页面中支持的编码进行多次不同的编码进行混淆
主要是Y4tacker师傅的研究成果进行一些代码上面的复现
针对编码的探测主要集中在generateJava方法(通过jsp页面生成等价的servlet页面)中
根据注释的内容我们可以明白主要是通过两步
step1: 首先解析jsp中的所有指令
step2: the whole translation unit
指令的解析集中在ParserController#parseDirectives
我们这仅关注一些关于编码的内容
这里的jspConfigPageEnc
变量,是通过getJspConfigPageEncoding
方法中Jsp config中获取的,也就是在web.xml中的<page-encoding>
标签中的内容
之后就是通过determineSyntaxAndEncoding
来探测我们需要处理的是标准的JSP语法还是通过XML语法编写的jsp页面,并且获取他们所使用的编码