반응형

HackCTF 문제 풀이 / Web - Time (150)


https://ctf.j0n9hyun.xyz/challenges#Time

 

HackCTF

Do you wanna be a God? If so, Challenge!

ctf.j0n9hyun.xyz

 

Web - Time(150) 문제를 풀어보도록 하겠습니다. 

우선 아래 링크에 접속해 보겠습니다.

http://ctf.j0n9hyun.xyz:2032/

접속해 보면 아래와 같은 php 코드가 출력됩니다. 

아래 코드를 분석해 보겠습니다. 

먼저, time이라는 변수를 가져와, is_numeric() 함수를 통해 이 변수의 값이 숫자인지 검사합니다. 

 

그리고 그 숫자가 60 * 60 * 24 * 30 * 2 의 숫자보다 크거나 같고, 

60 * 60 * 24 * 30 * 3의 숫자보다 작거나 같은 숫자가 입력되어야 마지막 else문으로 진입할 수 있습니다. 

하지만, else 문으로 들어가면, 그 변수의 값으로 sleep() 함수를 호출하고, flag를 출력하는데, 

그 변수의 값이 2달, 3달에 대한 초가 입력이 되기 때문에, 2달, 3달은 기다려야 flag 값을 가져올 수 있습니다.

 

이때, php의 취약점을 이용하여 문제를 해결할 수 있습니다. 

60 * 60 * 24 * 30 * 2 = 5184000 입니다. 

지수형으로 표현해보면 5.18400e6 입니다. 

php에서는 5.18400e6를 (int) 형으로 형변환 할때, 소수점 이하는 잘라버리기 때문에 5가 됩니다. 

그러면 결국에는 sleep(5)가 되어 5초 이후에 flag를 확인할 수 있습니다.

반응형
반응형

HackCTF 문제 풀이 / Web - 보물 (100)

 

https://ctf.j0n9hyun.xyz/challenges

 

HackCTF

Do you wanna be a God? If so, Challenge!

ctf.j0n9hyun.xyz

 

Web에 있는 보물 - 100점짜리 문제를 풀어보도록 하겠습니다. 

반응형

아래 링크에 접속하면 아래 페이지가 출력됩니다. 

버튼을 하나씩 눌러보겠습니다. 

http://ctf.j0n9hyun.xyz:2025

Page 1을 눌렀을 때, URL Parameter 에 page=1이라는 값이 전달되면서 해시 값 같은게 출력됩니다.

URL Parameter 에 page=4를 입력하였더니, 아래와 같이 출력됩니다. 

이지 숫자 중엔 비밀이 하나 있다는게 page=? 를 계속 넣어 보면서 Flag를 찾아야 하는 문제로 파악됩니다. 

 

그래서 간단하게 파이썬 코드를 통해 page 값을 1부터 시작하여 bottom-up 방식으로 하여, Flag를 찾아보도록 하겠습니다. 

re

아마 requests하고, response 되는 내용 중 HackCTF 문구가 있으면 break 해보도록 하겠습니다. 

어느 id에서 멈추는지 보겠습니다. 

아래 코드를 돌려보면 한 몇분동안 scan을 진행하고, page id가 1225로 되는 부분에서 멈추는 것을 볼 수 있습니다. 

import requests

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

for i in range(1, 10000):
    response = requests.get(url + str(i))
    if "HackCTF" in response.text:
        print("page ", i, " => successes")
        break
    else:
        print("page ", i, " => failed")

page id를 1225로 입력하면, 아래와 같이 Flag가 출력되는 것을 볼 수 있습니다. 

이 Flag를 제출해보면 정답이 되는 것을 볼 수 있습니다.

반응형
반응형

HackCTF 문제 풀이 / Cryptography - Great Binary (50)

 

Great Binary 문제입니다. 

hoooo.zip이라는 파일이 있는데, download해서 파일을 열어보겠습니다.

hoooo.txt라는 파일이 있고, 이 파일안에는 이진코드가 있습니다. 

 

이진코드를 string으로 변환시켜 보겠습니다.

아래 링크에서 이진코드를 string으로 변환시켜 줍니다. 

아래 링크를 이용해서 변환해보겠습니다.

 

string-functions.com/binary-string.aspx

 

Binary to String Converter | Translate Your Binary to Text

Please note: any spaces or colons (:) in the binary string will be removed. Need to convert text to binary? Use Our Text to Binary Converter Tool! --- Read more about binary in Wikipedia Privacy Policy Sitemap Keywords: binary decode a string text, tool, o

string-functions.com

아래 이진코드를 string으로 변환하였더니 flag 값이 보입니다 

 

 

 

ctf.j0n9hyun.xyz/challenges

 

HackCTF

Do you wanna be a God? If so, Challenge!

ctf.j0n9hyun.xyz

 

반응형
반응형

HackCTF 문제 풀이 / Misc - Baseball Price(50)

 

Baseball Price 문제입니다. 

nc(Netcat) 명령어로 ctf.j0n9hyun.xyz 9000에 접속하여 푸는 문제입니다.

nc 명령어로 접속하면 아래와 같이 간단한 문제가 보입니다. 

야구배트 가격과 야구볼 가격을 입력하는 문제입니다. 

$ 표시를 넣었더니 Incorrect!가 발생하였습니다. 

각각 알맞게 입력하였더니 Correct! 문구가 출력되고 Flag 값을 획득할 수 있었습니다.

반응형

+ Recent posts