CTF/웹해킹

[angstromCTF] Celeste Speedrunning Association - 웹해킹 / Python

SecurityMan 2023. 5. 14. 11:00

 

간단한 웹해킹 문제

 

말 그대로 Speedrunning 해야하는 문제였다.

 

반응형

 

 

문제페이지에 접속하면 이런 화면이 나온다.

 

뭔가 순위표가 나와있는데

 

1등인 Old Lady 가 0 seconds 라고 나와있다.

 

느낌상 1등보다 빨라야 플래그를 얻을 수 있는것 같다.

 

안내되어있는 /play 경로로 들어가봤다.

 

 

/play 로 들어가보면

 

Press when done! 라는 버튼이 하나 보인다.

 

 

버튼을 누르면

 

/submit 으로 이동하는데

 

이기지 못했다는 안내 문구가 나온다.

 

 

/play 경로로 다시 돌아가

 

F12를 눌러 개발자도구를 통해 소스를 확인해봤다.

 

버튼을 눌렀을때 어떤 데이터가 전달되는지 봤는데

 

1682427392.763026 이라는 숫자가 전달되고 있었다.

 

 

DCode 도구로 확인해보니

 

이건 현재시간을 Unix 타임으로 나타낸 것이었다.

 

버튼을 눌렀을때 시간 - 페이지에 접속했을때 시간 을 계산해서

 

얼마나 빨리 버튼을 눌렀는지 확인하는것 같았다.

 

그런데 사실 아무리 빨리 눌러도 0초를 이길순 없다.

 

다른 방법을 생각해야 한다.

 

import requests

url = 'https://mount-tunnel.web.actf.co/submit'

data = {'start':9999999999999999999999999999999999999999999999999}
r = requests.post(url, data=data)
print(r.text)

 

이런 방법으로 시도해봤다.

 

버튼을 눌렀을때 전달하는 시간값을

 

어마어마하게 큰 수로 넣어 보냈다.

 

이렇게 보내면 수를 표현할 수 있는 범위를 넘어가

 

음수로 바뀌지 않을까 생각했기 때문이다.

 

 

생각이 맞았는지

 

코드를 실행시켰더니

 

플래그를 찾을 수 있었다.

반응형