안녕하세요??
자운대 고라니입니다.
오늘은 wargame.kr old-19번 문제를 풀어보겠습니다.
문제에 접속하면 첫 화면이 id : admin [제출] 이라고 나와있다.
일단 제출 버튼을 눌러보자.
you are not admin이라고 나온다.
이때 id의 값은 GET방식으로 서버와 통신한다는 것을 아래처럼 url을 통해 알 수 있다.
그렇다면 NULL우회를 통해서 id값을 입력해보자.
위 처럼 ad%00min을 넣어서 엔터를 눌러봤다.
그러더니 문제가 풀리드라;;
아니 근데 너무 쉽게 푼 거 아닌가 싶어서 다른 블로그들을 탐방해보았다.
확인해보니 쿠키값으로 문제를 풀었다고 한다.
나도 쿠키값으로 문제를 풀어보겠다.
일단 admin에 들어가는 a, d, ad를 넣었을 때의 쿠키값을 확인해보았다.
마지막에 %3D가 붙어있는데, 이는 url-encoding에서 =를 표현한다.
마지막에 =를 넣는 암호화 방식은 base64 임을 알고 있으므로 base64-decoding을 해보았다.
그랬더니 32자리 문자열이 나왔다.
32자리 문자열은 흔히 MD5 해쉬 함수에 의해 나온다는 것을 알고 있었다.
일단 a와 d에 대한 MD5값을 확인해보았다.
내 추측이 맞았다.
정리를 해보자면 각각 문자열에 대한 md5값을 얻은 다음 문자열을 합치고 base64-encoding 한 값을
쿠키값으로 넣는다는 것을 알 수 있다.
그러므로 파이썬 코드를 작성해서(굳이 작성할 필요는 없다.) 쿠키값을 얻어냈다.
위의 소스를 돌려보면
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==
라는 값이 나오고 이를 쿠키값에 대입하면 score가 올라갈 것이다.
이번 문제는 GET방식의 취약점을 통해 푸는 문제인지 쿠키값을 변조하는 문제인지
명확하게 모르겠어서 두개 다 풀어봤다.
애초에 쿠키값으로 풀어야 하는 문제라면 꽤나 복잡한 과정이 필요했다.
이 글을 읽는 사람들은 둘 다 활용해서 풀어보길..
아 그리고 좀 버그가 있는데, logout버튼이 안먹힐 것이다.
이때는 쿠키값을 지우고 logout을 누르면 될 것이다.
'category > 웹해킹(webhacking.kr)' 카테고리의 다른 글
웹해킹(webhacking.kr) - 36번 (0) | 2020.11.18 |
---|---|
웹해킹(webhacking.kr) - 22번 (0) | 2020.11.18 |
웹해킹(webhacking.kr) - 49번 (0) | 2020.11.17 |
웹해킹(webhacking.kr) - 20번 (0) | 2020.11.17 |
웹해킹(webhacking.kr) - 14번 (0) | 2020.11.16 |
웹해킹(webhacking.kr) - 17번 (0) | 2020.11.16 |
웹해킹(webhacking.kr) - 10번 (0) | 2020.11.15 |
웹해킹(webhacking.kr) - 7번 (0) | 2020.11.14 |
댓글