[Web] Tenable CTF Write-up : Spring MVC 1–8
ctf문제 파일만 남아있는 관계로 로컬서버에 실행시켜서 write up을 작성하겠다.
Spring mvc 환경으로 작성된 코드가 주어진다.
1번, /main 으로 Mapping 되어있고, get request로 받겠다고 되어있다.
그냥 /main 으로 접속하면 끝.
2번, 같은 url에서 GET request가 아닌 POST request로 접속하면 뜬다.
버프로 하기 귀찮아서(?) 그냥 파이썬 requests 이용해서 flag를 응답받았다.
3번은 post 요청에 parameter 를 더해서 보내는 문제이다. 조건문 상 magicWord=please 면 flag3을 보여준다는 것 같다.
request에 요구되는 파라미터에 맞게 입력을 하여 같이 요청하였다.
위의 4번 코드를 보면, consumes라는 조건이 걸려있다. 이말은 spring에서 요청 페이로드 타입을 applicaion/json으로 제한한다는 말이다.
따라서 헤더에 content-type을 applicaion/json으로 변조해 요청해야한다.
6번, 조건 그대로 헤더에 Magic-Word:please 넣어주면된다.
7번부터 숨겨진 파일에 있는 내용을 보아야한다.
숨겨진 파일의 코드를 보면, 파라미터 중 name 의 값이 please 인지 검사한다
코드 그대로 request를 보내준다.
숨겨진 필드에 플래그가 떴다.
8번 플래그의 조건은 realName이라는 세션값을 admin으로 만들어야한다.
문제의 주어진 파일 중 하나인 OtherControll을 보자
이곳에서 name이라는 이름으로 realName 을 설정 할 수 있다.
따라엇 우리가 해야 할 일은 URL/other?name=admin 으로 세션에 realName=admin이라는 것을 등록해준 후
URL/ 로 접속하면 된다.
대회가 끝난 후 문제파일로만 writeup을 쓰려다보니 플래그가 실제 플래그와 다르게 예시 플래그로 나온다.