728x90
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 type confusion를 함께 풀어볼 예정이다.
## 문제 설명:
문제 정보를 살펴보면 type confusion 취약점을 이용하면 되는 것으로 보인다.
## 문제 풀이
사이트에 접속해보니 다음과 화면이 보인다.
우선 view-source 버튼을 클릭하여 소스 코드를 확인해보겠다.
소스 코드를 확인해보면 로직에 맞는 값을 입력하면 FLAG를 출력한다고 되어 있다. 여기서 아래 쪽의 script 부분을 확인해보면 ./util.js 파일을 호출한 것을 확인할 수 있다. 해당 파일의 내용을 확인해보면 다음과 같다.
두 개의 함수가 나온 것을 확인할 수 있다. submit_check()는 입력한 값을 보내는 용도이며, sumit은 실제 검증 로직과 연관이 있다. 또한 빨간색 박스를 확인해보면 검증할 때 "==="가 아닌 "=="를 사용하고 있는 것을 확인할 수 있다. 즉, 엄격한 비교연산자가 아닌 느슨한 비교연산자를 사용하고 있다는 것이다.
위에 데이터 부분을 확인해보면 key: key로 되어 있는데, 여기서 key: true로 변경하여 해당 로직을 쉽게 우회할 수 있다.
위와 같이 개발자 도구의 콘솔창에서 key의 값을 변경한 후, 아무 값을 입력하여 전송해보겠다.
FLAG 값이 성공적으로 출력된 것을 확인할 수 있다.
'Wargame > DreamHack' 카테고리의 다른 글
[DreamHack 워게임] counting query (0) | 2023.04.12 |
---|---|
[DreamHack 워게임] strcmp (0) | 2023.04.10 |
[DreamHack 워게임] fly me to the moon (0) | 2023.04.09 |
[DreamHack 워게임] Tomcat Manager (0) | 2023.04.08 |
[DreamHack 워게임] funjs (0) | 2023.04.07 |