网站套餐表格模板,设计君app下载,做网站app是什么h行业,做网页是什么专业NSS [NUSTCTF 2022 新生赛]Ezjava1
题目描述#xff1a;你能获取flag{1}吗
开题#xff0c;一眼java web中的index.jsp。 默认index.jsp中的body内容是$END$ 附件jar包导入IDEA#xff0c;会自动反编译。看看源码。
附件结构大致如此。主要看classes.com.joe1sn中的代码就…NSS [NUSTCTF 2022 新生赛]Ezjava1
题目描述你能获取flag{1}吗
开题一眼java web中的index.jsp。 默认index.jsp中的body内容是$END$ 附件jar包导入IDEA会自动反编译。看看源码。
附件结构大致如此。主要看classes.com.joe1sn中的代码就好啦。 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.xxxuser.xxx。所以上述要求也就是
User.department.name1 等于或包含”njust”
User.name 等于或包含”2022”User类的属性应该是直接GET/POST传入的。 由于这里没有指定GET或者POST提交所以都行。注意路由是/addUser1。
payload
/addUser1?department.name1xxxnjustxxxnamexxx2022xxx