학회_공부해요/워게임

[Dreamhack] Write up - amocafe

yenas0 2024. 1. 23. 04:28
반응형

https://dreamhack.io/wargame/challenges/899

 

amocafe

Description 아모카페에 오신 것을 환영합니다! 메뉴 번호를 입력하여 주문할 수 있는 웹 서비스가 작동하고 있습니다. 아모의 최애 메뉴를 대신 주문해 주면 아모가 플래그를 준다고 합니다. 첨부

dreamhack.io


 

주어진 링크로 들어가면 이렇게 뜬다..

 

1_c_3_c_0__ff_3e  메뉴를 가장 좋아한다길래 그냥 넣어봤는데

당연히 틀림..

 

 

 

문제에서 제공하는 파일을 열어보기로 했다.

 

 

이 부분이 플래그를 구하는 부분인거 같음. org값을 알아내면 될거같은데 연산이 이해가 안돼서 chatgpt를 함 써봤다.

 

 

 

 

 

대충 보니까 주어진 문자열을 2진수로 바꾼다음에 int로 변경해야 되는 것 같다.

챗지피티 여러번 사용해봤는데 연산은 항상 틀리는 경향이 있어서 연산은 믿지 않고 그냥 직접하기로 했다.

 

 

 

 

 

 

언더바는 무슨 값으로 바꿔야 될지 잘 모르겠어서 코드 다시한번 뜯어봤다.

if ~res & 0xf == 0x4:
            st[16-i-1] = '_'

여기서 res가 4비트 숫자고 ~는 반전 연산자다.

위 조건문에서 res를 비트 반전시킨 결과가 0x4랑 같으면 _를 대입하는 것 같다...

 

 

계산해봤는데 11일때 가능함. 2진 수로 하면 1011로 표기하면 될 것 같다.

 

 

1_c_3_c_0__ff_3e

0001 1011 1100 1011 0011 1011 1100 1011 0000 1011 1011 1111 1111 1011 0011 1110

 

눈알 아프다

 

 

 

 

아무튼 값을 변환했고 구한거를 십진수로 다시 바꿔보았다.

2002760202557848382

해당 10진수를 메뉴창에 입력해보면 될 것 같다.

 

 

flag가 나왔다..!

반응형