[RoarCTF 2019]Easy Java

题目链接:[RoarCTF 2019]Easy Java

环境打开后如下。

查看页面源码,发现存在任意文件下载漏洞。




<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>BBR Login</title>
<meta name="description" content="BBR Login">
<meta name="keywords" content="BBR Login">
<link href="" rel="stylesheet">
<style>
	body,p,div,ul,li,h1,h2,h3,h4,h5,h6{
		margin:0;
		padding: 0;
	}
	body{
		background: #E9E9E9; 
	}
	#login{
		width: 400px;
		height: 270px;
		background: #FFF;
		margin:200px auto;
		position: relative;
	}
	#login h1{
		text-align:center;
		position:absolute;
		left:120px;
		top:-40px;
		font-size:21px;
	}
	#login form p{
		text-align: center;
	}
	#username{
		background:url(../../images/user.png) rgba(0,0,0,.1) no-repeat;
		width: 200px;
		height: 30px;
		border:solid #ccc 1px;
		border-radius: 3px;
		padding-left: 32px;
		margin-top: 50px;
		margin-bottom: 30px;
	}
	#password{
		background: url(../../images/pwd.png) rgba(0,0,0,.1) no-repeat;
		width: 200px;
		height: 30px;
		border:solid #ccc 1px;
		border-radius: 3px;
		padding-left: 32px;
		margin-bottom: 30px;
	}
	#submit{
		width: 232px;
		height: 30px;
		background: rgba(0,0,0,.1);
		border:solid #ccc 1px;
		border-radius: 3px;
	}
	#submit:hover{
		cursor: pointer;
		background:#D8D8D8;
	}
</style>
</head>
<body>
<div id="login">
<h1>BBR Login</h1>
	<form action="Login" method="post">
		<p><input type="text" name="username" id="username" placeholder="username"></p>
		<p><input type="password" name="password" id="password" placeholder="password"></p>
		<p><input type="submit" id="submit" value="Login"></p>
	</form>
	<br/>
	<center><p><a href="Download?filename=help.docx" target="_blank">help</a></p></center>
</div>
</body>
</html>

随后,使用该接口下载 web.xml 文件(注意使用 POST 方法,不知为何 GET 方法无法下载)。

Payload:filename=/WEB-INF/web.xml

随后,在 web.xml 文件中,可以看到存在 "FlagController" 的一个 servlet,再次使用任意文件下载的接口去下载对应的 class 文件。

Payload:filename=/WEB-INF/classes/com/wm/ctf/FlagController.class

FlagController.class 文件如下所示。

发现存在一串 Base64 编码后的数据,解码后即可获得 flag。

posted @ 2024-11-11 00:18  imtaieee  阅读(12)  评论(0编辑  收藏  举报