Hacking/[CTF]HeroCTF v5

Best Schools

양선규 2023. 5. 16. 18:47
728x90
반응형

웹 관련 문제입니다.

 

 

문제

 

3번 항목인 Flag CyberSecurity School의 클릭수를 가장 높게 만들어, 플래그를 획득해야 합니다.

I'm at this school 버튼을 누르면 클릭 수가 올라갑니다.

 

 

속도에 제한이 있다

 

다만, 연속해서 누를 경우 너무 빠르다는 메시지와 함께 클릭수가 올라가지 않습니다.

간격은 수십초 정도는 되는 것 같습니다.

 

따라서 이 문제는, 클릭에 대한 속도제한을 우회하는 문제입니다.

저는 Burp Suite를 이용하겠습니다.

 

 

I'm at this school

 

I'm at this school 버튼에 대한 Request 패킷입니다.

 

1행에 보면 페이지명이 graphql 인 것과,

아래쪽에 query라는 이름으로 데이터가 전송되고 있는 것을 보니,

이것은 graphql에 대한 쿼리문이라고 유추할 수 있습니다.

(graphql은 데이터 질의어, 쿼리 언어입니다)

 

아마도 저 쿼리문을 통해서 클릭수가 1 늘어나는 것이겠지요.

 

 

Response

 

Response 패킷을 확인하면 클릭값이 증가한다는 걸 알 수 있습니다.(클릭수 2일때 클릭한 결과입니다)

schoolId는 아마도 Flag CyberSecurity School의 값일 테고

nbClick은 클릭수 라고 볼 수 있겠습니다.

 

저 쿼리를 엄청나게 많이 보내면 클릭수 1위를 달성할 수 있겠지만, 현재는 Request 패킷에 대한 속도제한이 걸려 있습니다.

이것을 어떻게 우회하느냐?

 

 

여러개의 쿼리

 

이렇게 하면 됩니다.

단 한번의 요청에 여러개의 쿼리를 전송함으로써, 속도제한을 무의미하게 만들 수 있습니다.

현재 1등이 1337이니, 1337을 넘을 만큼 쿼리문을 전송해주면 됩니다.

매우 많이 복사해서 붙여넣어줍시다.

 

 

Payload Too Large

 

근데 너무 과도하게 많이 보내면 Payload Too Large 오류와 함께 전송이 안될 수 있습니다.

적당히 몇백개씩 끊어 보냅시다.

 

 

1485

 

이렇게 클릭 수 1485로 1위를 달성했습니다.

 

 

1위 달성

 

이후 문제 페이지를 새로고침하면 클릭수가 반영됩니다.

이제 Get The Flag ! 버튼을 클릭하면 Flag를 획득할 수 있습니다.

728x90
반응형

'Hacking > [CTF]HeroCTF v5' 카테고리의 다른 글

Chm0d  (0) 2023.05.16