상세 컨텐츠

본문 제목

[HackCTF-Web#3] Button - 50 points

WebHacking/HackCTF

by bing_su 2021. 1. 1. 22:16

본문

반응형
SMALL

HackCTF Web의 세 번째 문제 Button이다.

문제 링크: http://ctf.j0n9hyun.xyz:2026

 

문제를 보면 아래와 같이 버튼을 누르면 플래그가 출력되게 하면 된다고 적혀 있다.

페이지 소스를 살펴본다. 저번에 살펴본 Web#2 문제에서는 GET 방식을 통한 데이터의 전송을 살펴봤다. 혹시나 해서 저번 문제의 링크를 걸어 두었다. 이번 문제에서는 POST 방식을 통해 서버에 데이터를 전송하는 것을 확인할 수 있다. 

 

POST 방식은 사용자의 입력을 HTTP request BODY 부분에 넣어서 전송한다. 이 때문에 HTTP request header의 Content-type에 데이터 타입이 표시되고, 전송하고자 하는 데이터 타입을 적어줘야 한다.
1. Default: application/octet-stream
2. 단순 txt일 때: text/plain
3. 파일일 때: multipart/form-data

위와 같이 Content-type을 명시해야 하며, 보통 작성하지 않는 경우는 Default로 세팅된다.

1번은 GET 방식과 마찬가지로 key-value 쌍으로 데이터를 넣고, 두 개 이상의 데이터가 들어갈 경우 &를 쓴다.

2번은 BODY에 단순 txt를 넣을 때 쓴다.

3번은 파일 전송을 할 때 보통 많이 쓰고, HTTP BODY 부분에는 파일의 바이너리 데이터가 들어있다.

 

다시 페이지 소스 부분으로 돌아가 보자. button이라는 파라미터를 이용해 button value 값이 전송된다. 이 문제에서 "아래의 버튼으로 플래그를 출력하게 해 줘!"라고 되어있다. 따라서 우리가 원하는 value 값을 flag로 수정해 주자.

바꾼 후 버튼을 눌러보면 플래그가 출력되는 것을 볼 수 있다.

 

마찬가지로 50점인 만큼 쉬운 문제였다고 할 수 있다.

반응형
LIST

'WebHacking > HackCTF' 카테고리의 다른 글

[HackCTF-Web#6] Read File - 100 points  (0) 2021.03.23
[HackCTF-Web#5] Guess me - 100 points  (0) 2021.03.02
[HackCTF-Web#4] 보물 - 100 points  (0) 2021.01.24
[HackCTF-Web#2] Hidden - 50 points  (0) 2020.12.31
[HackCTF-Web#1] / - 50 points  (0) 2020.12.31

관련글 더보기

댓글 영역