说是研究的东西要落地,内存马落地可以写个jsp内存马查杀工具。我寻思先找几个现成的学习学习,然后看见了这个https://github.com/c0ny1/java-memshell-scanner
这个项目是写了个jsp查杀内存马,但是没有防xss,看了几个PR的Fork也都没防xss
poc
假设我是攻击者,我可以传这么个jsp上去:
1 | <%@ page import="java.lang.reflect.Field" %> |
servletName里放xss的payload,访问一下这个jsp把内存马插进去,然后用tomcat-memshell-killer.jsp查看:

可以看到html标签被解析了:

exp
真实利用可以写<script>document.currentScript.parentElement.parentElement.remove();</script>执行的时候直接把这一行删了,这样不仔细看就看不出来少了内存马那一行,只有id不对劲。当然js肯定也能改掉id,我就不细写了。

或者就跟其他xss一样拿cookie啥的,用jsp排查内存马这个jsp肯定和内存马在一个网站上,如果他登录了网站就能拿到这个网站的cookie或者token啥的。排查内存马的人不是网站管理员就是安全人员,登过这个网站的概率还是挺大的。
虽然但是内存马都打上去了,再拿个账号用处也不大。
做钓鱼的话也很难,来排查内存马的人不太可能中钓鱼。
beef上线扫内网也不太现实,排查内存马不太可能在这个网页停太长时间,查不出来直接换工具了。
修复
加个html实体编码就完了
夏戟把改的,看看就行。不如直接f12->设置->禁用javascript省事
1 | <%@ page import="java.net.URL" %> |