ABOUT ME

정보보안을 전공하고, 전자공학을 복수전공하고, 컴퓨터공학을 부전공을 하고 있는 욕심 많은 19학번 학생입니다ㅎㅎ

Today
Yesterday
Total
  • Chujowy CTF Write up _ beginner – Insanity1
    정보보안/CTF write-up 2020. 7. 20. 03:04

    문제 beginner Insanity1 )

     

    두 번째로 푼 문제입니다. 처음 풀 때보다 배점이 많이 낮아졌습니다. 이 문제의 유형 또한 MISC입니다.

     

    우선 주어진 도메인과 포트로 해당 서버에 접속합니다.

     

     

     저는 WLS로 사용한 우분투 20.04 LTS 버전으로 문제를 풀이하였습니다. netcat 프로그램을 사용하여 서버에 접속합니다.

     

    nc insanity1.chujowyc.tf 4004

     

     

    서버에 접속하면 소개를 하며 2+2에 대해 묻는 것을 확인할 수 있습니다.

     

     

    이에 4라고 답을 적어주었더니, 0에서 100사이에 생각나는 수 아무거나 입력해보라고 했습니다.

     

     

     유효하지 않는 답이라는 것을 보니 서버가 생각하는 숫자가 있는 것 같습니다. 이후에 여러 값을 입력해보았지만, 0부터 100까지 일일이 넣기에는 문제 상으로 맞지 않을 것 같아서 파이썬 프로그램을 하나 작성해보았습니다.

     

     

    from pwn import *

     

    for i in range(100):

    p = remote("docker-escape.chujowyc.tf", 4004)

     

    print(str(p.recvline()))

    print(p.recv())

     

    p.sendline('4')

    print(p.recvline(), i)

    p.sendline(str(i))

    tmp = p.recv()

    print(tmp)

    if str(tmp).find('Invalid')==-1:

    break

     

    print('Finish Exploit!!!!~헤이헤이헤이')

     

    위의 프로그램은 pwn 모듈을 사용하여 서버에 접속하고, 값을 받아들인 후 4를 입력하고, Invalid’라는 문자열이 나오면 탐색을 지속하고, 나오지 않으면 반복문을 종료하고, 값을 찾았다는 문구를 출력한 후에 종료하는 프로그램입니다.

     

     

     해당 프로그램을 실행해보겠습니다.

     

     

     0부터 하나씩 대입하여 81에서 유효한 값이라는 것을 알 수 있습니다.

    또한 답은 42123이라고 합니다. 이 답이 플래그 값처럼 생기지는 않았으므로, 다시 서버에 접속해서 입력해주겠습니다.

     

     

     

    유효한 값들을 모두 입력해주니

     

    chCTF{Ez3_cha113ng3}

     

    라는 플래그값이 나온 것을 확인할 수 있습니다.

     

    반응형
Designed by Tistory.