728x90
SMALL

OverTheWire이라는 워게임 사이트에 있는 다양한 문제중에 리눅스 관련 워게임인 Bandit을 풀어보았습니다. Bandit은 Level34까지 문제를 리눅스 명령어로 비밀번호를 얻어 해결해 나가는 방식의 워게임입니다. MacOS의 터머널을 이용하여 각 문제를 해결해 나갔습니다.

Level0

접속 방식은 SSH이고 주소는 bandit.labs.overthewire.org이고 포트번호는 2220번이다. 

ssh bandit0@bandit.labs.overthewire.org -p 2220

⬆️ 접속하기 위해 사용한 비밀번호는 bandit0입니다.

Level0 -> Level1

boJ9jbbUNNfktd7800psq0ltutMc3MY1

ls(List)는 현재 작업 디렉토리의 내용을 화면에 표시해주는 명령어입니다. ls로 현재 디렉토리에 있는 내용을 확인해 보니 readme라는 파일이 있었습니다. 파일의 내용을 출력해주는 명령어인 cat을 확인하여 readme안에 있는 내용을 확인해보니 비밀번호를 확인할 수 있었습니다.

LIST
728x90
SMALL

 

⬇️CTF풀때 필요한 툴이 정리되어있다.

출처 : http://delimitry.blogspot.com/2014/10/useful-tools-for-ctf.html

LIST
728x90
SMALL

 

HackCTF Web의 첫번째 문제인 / 문제를 들어가보면 깜찍한 로봇 하나가 나온다.

이 로봇이 힌트!🤖

이 문제는 robots.txt를 활용하여 푸는 문제입니다.

robots.txt란, 검색엔진의 접근을 설정하기 위한 파일입니다.

링크에 /robots.txt를 입력해주면 다음과 같은 창이 나오는 것을 볼수있다.

링크에 /robots.txt 대신 /robot_flag/를 입력하면 flag를 얻을수있다.

HackCTF{w3lcome_to_s1mple_web_h3cking!}

 

 

다음 문제는 Hidden이라는 문제입니다

문제를 들어가보면 5번 파일에 플래그가 있다악!!!!!!!!!!이라는 글과 함께 버튼 4개가 나옵니다.

육안으로는 5번 버튼을 확인 할수없는 상태입니다.

4번 버튼을 눌러보겠습니다.

버튼을 누르면 get방식으로 전송되는 것을 확인 할수있습니다.

?id=4 이 부분을 ?id=5로 수정을하면 메시지창에 Nop이라는 글 대신 flag가 뜨는 것을 확인할수있습니다.

HackCTF{idx_is_so_s1m3le_ctf}

세번째 문제는 Button이라는 문제입니다.

문제에 들어가면 아래의 버튼으로 하여금 플래그를 출력하게 해줘!라는 문장이나오고 버튼 하나가 나옵니다.

버튼을 눌러도 아무런 변화가 없는 것을 확인 할수있을 것입니다.

개발자 도구를 이용해 코드를 확인하면 button이라는 value가 post형식으로 전송된다는 정보를 얻을 수 있다.

value를 flag로 바꿔보자!

그럼 버튼을 눌렀을때 아래와 같은 flag가 나오는 것을 확인 할수있다.

HackCTF{0k4y...php_c4nn0t_cr34t3_4_butt0n}

다음은 보물이라는 문제입니다.

문제를 들어가 보면 다음과 같은 화면이 나옵니다.

page 1버튼을 눌러보면 해시값이 출력됩니다.

Hash Analyzer로 분석해본결과 SHA 512이라는 결과가 나왔습니다.

page라는 파라미터에 숫자가 들어가는데 페이지 변수 값이 달라지면서 해시 값이 달라지는 것을 보아 flag가 있는 페이지를 찾는 문제이고 페이지의 경우의 수가 많이 있는 것 같습니다.

BurpSuite의 Intruder 도구를 통해 URL의 파라미터 변조를 자동화하여 문제를 풀수도 있지만 BurpSuite가 설치되있지 않은 관계로 파이썬 코드를 짜 문제를 풀었습니다.

import requests

url = "http://ctf.j0n9hyun.xyz:2025/?page="

for i in range(1, 5000):
    ans = requests.get(url+str(i))
    if "HackCTF" in ans.text:
        print(i)
        break
    print("/page=", i, "에 Flag 없음")

 

스크립트 결과

코드를 실행시키면 1225에서 멈추는 것을 확인할수있습니다.

/?page=1225를 입력하면 아래와 같이 flag가 출력되는 것을 확인할수있습니다.

HackCTF{0hhhhh_5o_g0od_try!}

다음 문제는 Guess me라는 문제입니다.

문제를 들어가보면 비밀 코드를 맞춰보세요. 성공하면 플래그를 뱉어낼 겁니다.라고 되어있고, 밑에 php코드가 적혀있습니다.

이 문제는 php의 extract취약점을 알고있는지 묻는 문제입니다.

extract함수는 배열속의 키값을 변수화 해주는 함수다.

php코드를 해석하면 guess와 secretcode가 일치해야 flag.txt를 출력해준다.

php에서 $_GET 변수는 ?secretcode= 이런식으로 전달이 가능하다.

하지만 이런식으로 한다고해도 또 변수가 선언되기 때문에 의미가 없다.

filename에 해당하는 파일을 찾고, 그 파일의 콘텐츠를 확인하는데 서버 내 파일이 없기에 null값을 리턴하는데, guess도 null 값이 들어가면 된다.따라서 filename=아무문자&guess=를 입력하면 flag를 찾을 수 있게 된다.

filename에 아무값이나 대입해도 되는 이유는 extract()가 filename변수를 선언한뒤에 나타나기 때문이다.

참고로 secret.txt와 flag.txt에 접속을 하면 이미 막혀있는 상태다.

HackCTF{3xtr4c7_0v3rr1d3ds_pr3vi0u5_kn0wn_v4r1abl35}

Read File이라는 문제입니다.

문제를 들어갔지만 Read File과 File is flag.php라는 글 외에 다른 글은 딱히 없었다.

url을 살펴보니 command라는 인자에 구글주소 값이 전달되있었다.

file이 flag.php라고 되어있으니 파라미터 값으로 flag.php를 전달해보았다.

에러페이지가 나온다.

flag.php값을 필터링하는 것으로 예상이된다.

이어서 파라미터 값으로 flag를 전달해보았다.

맨처음과 같은 페이지가 나오는 것을 확인할수있다.

이를 통해 flag라는 단어를 필터링 하는 것을 알수있다.

이를 우회하기 위해 flflagag.php라는 값을 전달해보았다.

flag값이 나오는 것을 확인 할수있다.

HackCTF{w3lcome_to_vu1n_web?}

Login이라는 문제입니다.

sql injection을 사용하여 푸는 문제로 추측할수있습니다.

이번문제는 맥북을 사용하는 저를 위해 친절히 코드를 볼수있는 버튼이 마련되어있습니다😊👏

코드를 보니 역시나 sql에서 취약점을 보이고 있다.

id를 admin'#으로 입력을 하면 '로 sql이 닫히고, #이 뒷부분을 주석처리를 하여 비밀번호를 입력하지 않아도 로그인이 되는 것을 볼수있습니다.

로그인 버튼을 누르면 flag를 확인 할수있습니다.

HackCTF{s1mple_sq1_1njecti0n_web_hack!!}

마법봉이라는 문제입니다.

 

View Source를 통해 소스코드를 확인해보면 Magic Hash를 알고있는지 묻는 문제라는 것을 알수있다.

md5(240610708) 값을 Magic Hash 사이트를 통해 확인을 하면 0e462097431906509019562988736854라는 값을 확인할수있습니다.

0e로 시작하기 때문에 이값은 int==int비교를 할때 0으로 인식이 됩니다.

sha1를 암호화할때 0e인 값을 찾아보면  0e07766915004133176347055865026311692244, 즉, 10932435112라는 값을 얻을 수 있습니다.

얻은 값을 입력창에 넣고 제출하면 flag가 나오는 것을 확인 할수있습니다.

HackCTF{magic_makes_everything_possible}

 

LIST

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

[HackCTF|Misc] BF  (0) 2022.04.27
[HackCTF|Crypto]Smooth CipherText  (0) 2022.04.19
[HackCTF|Crypto]Great Binary  (0) 2022.04.19
[HackCTF|Web] WriteUp(2)  (0) 2022.04.19
[HackCTF|Misc]QRCODE  (0) 2022.04.15

+ Recent posts