CTF/웹해킹

[HouseplantCTF] Pie generator - 웹해킹 / 패킷변조

SecurityMan 2022. 6. 26. 11:00

 

이 문제는 대회 당시 pwn(포너블)로 분류가 되어 있었는데.

 

아무리 생각해도 포너블 보다는 웹 분야의 문제가 맞는거 같아서 웹해킹으로 분류하였다.

 

반응형

 

따로 소스코드가 제공되지는 않고, 문제 페이지 주소만 제공이 된다.

 

 

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

 

Feel free to guess my next number :3 라는 문구와 함께

 

숫자를 입력할 수 있는 칸이 나온다.

 

 

시험삼아서 12를 입력해봤는데

 

자기들 숫자는 90 이었다면서 틀렸다고 안내한다.

 

이렇게 매번 실행할때마다 맞춰야 하는 숫자가 달라진다.

 

 

f12를 눌러서 개발자 도구를 확인해보면 스크립트를 확인할 수 있다.

 

document.getElementById("ts").value=(Date.now() / 1000000);

 

이렇게 적혀있는데 Date.now() 함수를 이용해서 현재시간을 가져오고,

 

그 값을 1000000으로 나누고 있다.

 

 

개발자도구의 콘솔 창에서 테스트 해볼 수 있다.

 

Date.now() 라고 입력해보면 저렇게 숫자로 현재시간이 출력되는것을 볼 수 있다.

 

 

(Date.now() / 1000000) 를 계산해보면 

 

위처럼 소숫점 5자리로 계산되어서 나오는 것을 볼 수 있다.

 

이 부분은 캡쳐를 잘 못했는데

 

몇번 웹페이지에서 시도를 해보니,

 

사용자가 맞춰야하는 숫자는 (Date.now() / 1000000) 을 계산했을때 소숫점 첫번째, 두번째 자리인 것을 확인했다.

 

예를들어 위 사진처럼 (Date.now() / 1000000) 의 값이 1655895.163556 이 나왔다면,

 

사용자가 Guess 칸에 입력해야하는 숫자는 16이 되는 것이다.

 

 

Burp Suite 도구를 이용해 요청 패킷을 캡쳐해서

 

POST 데이터를 적절하게 바꿔주면 된다.

 

timestamp 변수에 적절한 형태로 아무 값이나 넣어주고 (1587888.835579)

 

number 변수에 소숫점 첫째, 둘째자리를 적어주면(83)

 

오른쪽 응답 패킷에서 플래그가 출력되는것을 확인할 수 있다.

반응형