看wp说好像ctfshow全是java的Struts2的框架漏洞

Struts2是用Java语言编写的一个基于MVC设计模式的Web应用框架

判断网站是否基于Struts2的方法

  • 通过页面回显的错误消息来判断,页面不回显错误消息时则无效
  • 通过网页后缀来判断,如.do .action,有可能不准
  • 如果配置文件中常数extension的值以逗号结尾或者有空值,指明了action可以不带后缀,那么不带后缀的uri也可能是struts2框架搭建的
  • 如果使用Struts2的rest插件,其默认的struts-plugin.xml指定的请求后缀为xhtml,xml和json
    判断 /struts/webconsole.html 是否存在来进行判断,需要 devMode 为 true

web279

给出提示echo flag

我们看到url也有提示 S2-001

image-20241115195142711

s2-001是一个struts2命令执行漏洞编号

漏洞原理

struts2漏洞 S2-001是当用户提交表单数据且验证失败时,服务器使用OGNL表达式解析用户先前提交的参数值,%{value}并重新填充相应的表单数据。

1

加法表达式%{1+1}成功执行