2024. 1. 31. 17:25ㆍHacking/WebHacking Wargame Writeup
문제 링크
https://dreamhack.io/wargame/challenges/899
amocafe
Description 아모카페에 오신 것을 환영합니다! 메뉴 번호를 입력하여 주문할 수 있는 웹 서비스가 작동하고 있습니다. 아모의 최애 메뉴를 대신 주문해 주면 아모가 플래그를 준다고 합니다. 첨부
dreamhack.io
문제
![](https://blog.kakaocdn.net/dn/mGbqH/btsEdJFYSJB/MVnfkhS2Xsz0N5H4PdKeC0/img.jpg)
풀이
![](https://blog.kakaocdn.net/dn/brM9tc/btsEbBaMFNA/RMf9A2Qqi0vgJA2tooENh0/img.jpg)
웹에 접속하면 이런 화면이 펼쳐진다. 막막하므로 코드를 살펴본다.
![](https://blog.kakaocdn.net/dn/bc2x9T/btsEbA3ZIZs/1wVqGMsryeD3R19NOqzCIk/img.jpg)
일단 이 부분 코드부터 보면, 비트연산자가 쓰여서 16진수를 2진수로 바꿔서 생각을 할 수 있어야 하는 문제라는 것을 알 수 있다.
코드를 파이썬으로 직접 짜는 방법도 있으나, 나는 여기서 직접 역연산을 하는 방법을 택했다.
1. 우선 사이트의 _를 알려면 여기서 ~res & 0xf == 0x4 라는 것을 풀어야 하는데, 0xf, 0x4는 16진수로 쓰여있으므로 2진수로 바꾸면 ~res & 1111 == 0100
res == 1011
2. 모두 16진수에서 2진수로 변환
1 => 0001
c => 1100
3 => 0011
0 => 0000
f =>1111
e =>1110
이제 이걸 연달아서 입력해주면
0001/1011/1100/1011/0011/1011/1100/1011/0000/1011/1011/1111/1111/1011/0011/1100
=> 0001101111001011001110111100101100001011101111111111101100111100
여기서 끝나는게 아닌데, 윗부분 코드에
![](https://blog.kakaocdn.net/dn/ewncKH/btsEf5VRF37/F1Pv1euKZCNDbtaCaqyZp0/img.jpg)
이런 부분이 있다. int형으로 변환을 시켜주라는 것이다.
따라서 위에 입력된 2진수 값을 int형을 변환을 시켜주면(int형은 기본이 10진수이므로 쉽게 말하면 10진수로 변환을 시켜주는 것이다.)
2002760202557848382
가 나온다.
이를 프롬프트에 입력해주면
![](https://blog.kakaocdn.net/dn/bnVQQu/btsEfuBrG0u/8AD5JLP1cdae7gl7BDyimk/img.jpg)
![](https://blog.kakaocdn.net/dn/bNaI2r/btsEdNIupeN/VXEaP1L3hH0ChapFZ35EH0/img.png)
플래그 값을 얻을 수 있다.
'Hacking > WebHacking Wargame Writeup' 카테고리의 다른 글
[Dreamhack 드림핵] Baby-union Writeup (0) | 2024.02.05 |
---|---|
[Dreamhack 드림핵] Type c-j WriteUp (0) | 2024.02.01 |
[Dreamhack 드림핵] php7cmp4re WriteUp (0) | 2024.01.31 |
[Dreamhack 드림핵] web-misconf-1 WriteUp (0) | 2024.01.31 |
[Dreamhack 드림핵] simple-web-request WriteUp (0) | 2024.01.28 |