当前位置: 首页 > news >正文

NSS [NUSTCTF 2022 新生赛]Ezjava1

NSS [NUSTCTF 2022 新生赛]Ezjava1

题目描述:你能获取flag{1}吗

开题,一眼java web中的index.jsp

image-20230830224149897

默认index.jsp中的body内容是$END$

image-20230830224239996

附件jar包导入IDEA,会自动反编译。看看源码。

附件结构大致如此。主要看classes.com.joe1sn中的代码就好啦。

image-20230830224618032

HelloController.class内容如下

package com.joe1sn.controller;
import ...@Controller
public class HelloController {public HelloController() {}@RequestMapping({"/hello"})public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {ModelAndView mav = new ModelAndView("index");mav.addObject("message", "Do you know \"beans\"?");return mav;}@PostMapping({"/index"})public void postIndex(@ModelAttribute EvalBean evalBean, Model model) {System.out.println("@POST Called");}@GetMapping({"/index"})public void getIndex(@ModelAttribute EvalBean evalBean, Model model) {System.out.println("@GET Called");}@RequestMapping({"/addUser1"})@ResponseBodypublic String addUser(User user) throws IOException {System.out.println(user.getDepartment().getName1());if (user.getDepartment().getName1().contains("njust") && user.getName().contains("2022")) {return "flag{1}";} else {String var10002 = user.getDepartment().getName1();File f = new File("../webapps/ROOT/" + var10002 + user.getName() + ".njust.jsp");return f.exists() ? "flag{2}" : user.getName();}}
}

根据题目描述,我们的目标是拿到flag{1},所以核心代码是:

if (user.getDepartment().getName1().contains("njust") && user.getName().contains("2022")) {return "flag{1}";
}

判断条件:

调用user对象中的getDepartment方法然后再调用到Department类中的getName1方法,之后判断调用后的结果是否等于或包含”njust”

调用user对象中的getName方法,之后判断结果是否等于或包含”2022”

看了一眼User类和Department类,getxxx()方法,最后返回的就是this.xxx(user.xxx)。所以上述要求也就是:

User.department.name1        等于或包含”njust”
User.name                    等于或包含”2022”

User类的属性应该是直接GET/POST传入的。

image-20230830230635722

由于这里没有指定GET或者POST提交,所以都行。注意路由是/addUser1

payload:

/addUser1?department.name1=xxxnjustxxx&name=xxx2022xxx

image-20230830230707000

http://www.lryc.cn/news/146700.html

相关文章:

  • 【Go 基础篇】探索Go语言中Map的神奇操作
  • 第6篇:ESP32连接无源喇叭播放音乐《涛声依旧》
  • Linux用户组管理学习
  • 【知识分享】C语言应用-易错篇
  • 六、Json 数据的交互处理
  • 企业微信cgi-bin/gateway/agentinfo接口存在未授权访问漏洞 附POC
  • 【数据结构与算法 模版】高频题刷题模版
  • 西门子840DSL 840DPoweLine 刀具数据读取
  • EMQ X支持哪些认证方式?
  • java八股文面试[JVM]——JVM内存结构2
  • 《C和指针》笔记14: 作用域和存储类型总结(例子说明)
  • Linux之系统操作参数详解
  • datax 使用
  • 【C/C++】#define宏替换高级用法
  • Android 之 传感器专题 (4) —— 其他传感器了解
  • 【高级搜索】双向广搜,A*,IDDFS,IDA *算法总结 (terse版)
  • CATIA Composer R2023安装教程
  • git,修改远程分支名称
  • 信息系统项目管理师(第四版)教材精读思维导图-第六章项目管理理论
  • [Android]JNI的基础知识
  • 力扣-哈希-字母异位词分组
  • excel 分组排序
  • vue三级市区联动
  • C++ 组合类
  • HTML总结2 [转]
  • 【LeetCode-中等题】2. 两数相加
  • postman接口参数化设置
  • easyexcel poi根据模板导出Excel
  • 怎么把pdf图片转换成jpg?pdf转jpg的方法分享
  • MongoDB 双机热备那篇文章是 “毒”