CTF Cite
#문제 1. [Ready Gladiator 0]
문제 설명을 보면 항상 패배하는 전사를 만들어야 문제가 풀리는 것으로 예상된다. launch instance를 클릭하면 nc포트가 활성화되고 imp.red라는 파일을 다운받을 수 있다.
imp.red는 Redcode라는 프로그래밍 언어로 작성되었다.
포트에 접속해보면 다음과 같이 100번 동점이 나온다.
100판 모두 지게 만들기 위해서 imp.red 파일을 확인했다.
;redcode
;name Imp Ex
;assert 1
mov 0, 1
end
여기서 mov 0,1을 삭제해 패배하게 만들 수 있다.
;redcode
;name Imp Ex
;assert 1
end
이렇게 imp.red 파일을 수정하고 다시 포트에 접속했다.
위의 화면과 같이 플래그를 확인할 수 있다.
#문제 2. [No way out]
windows game을 클릭하면 실제 게임을 열 수 있다.
게임에 보이는 깃발에 도달해야 플래그가 나올 것으로 예상된다. 하지만 일정 수준 이상 깃발에 가까이 갈 수 없게 되어 있다. 이를 통해 관련 조건을 해제하거나 변경하는 방향으로 문제를 해결해봐야 한다고 유추할 수 있다.
문제에서 주어진 파일 중 Aeesmbly-CSharp.dll 이라는 파일을 확인했다. 리버싱 문제인 만큼 IDA 프로그램으로 파일을 살펴보았는데 유의미한 결과는 얻을 수 없었다.
구글링을 통해 'dqSpy'라는 프로그램으로 코드를 변경할 수 있는 것을 확인했다.
if (Input.GetButton("Jump") && this.canMove && this.characterController.isGrounded && !this.isClimbing)
{
this.moveDirection.y = this.jumpSpeed;
}
else
{
this.moveDirection.y = y;
}
확인한 파일에서 점프하는 것에 대한 코드 부분이다.
규칙을 보면 점프를 하면 움직일 수 있고, 땅에 있어야 하며, 올라가지 못하게 된다.
깃발에 도달해야 플래그를 얻을 수 있는데 깃발에 도달하려면 점프를 해야하기 때문에,
땅에 있어야 한다는 부분을 삭제한다.
코드를 수정 후 다시 게임에 접속하니 다음과 같이 깃발에 접근할 수 있었고, 플래그를 확인했다.
'4-2. 2024-1 심화 스터디 > 워게임 도장 깨기' 카테고리의 다른 글
[6주차] 2024.05.10- Reversing War Game Write Up (0) | 2024.05.17 |
---|---|
[5주차] 2024.05.03 - Pwnable War Game Write Up (0) | 2024.05.10 |
[4주차] 2024.04.05 - Web War Game Write Up (0) | 2024.04.05 |
[3주차] 2024.03.29 - Pwnable War Game Write Up (0) | 2024.03.29 |
[1주차] 2024.03.11 - Web War Game Write Up (0) | 2024.03.15 |