2024. 1. 31. 17:25ㆍHacking/WebHacking Wargame Writeup
문제 링크
https://dreamhack.io/wargame/challenges/899
문제
풀이
웹에 접속하면 이런 화면이 펼쳐진다. 막막하므로 코드를 살펴본다.
일단 이 부분 코드부터 보면, 비트연산자가 쓰여서 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
여기서 끝나는게 아닌데, 윗부분 코드에
이런 부분이 있다. int형으로 변환을 시켜주라는 것이다.
따라서 위에 입력된 2진수 값을 int형을 변환을 시켜주면(int형은 기본이 10진수이므로 쉽게 말하면 10진수로 변환을 시켜주는 것이다.)
2002760202557848382
가 나온다.
이를 프롬프트에 입력해주면
플래그 값을 얻을 수 있다.
'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 |