Wargame - DB is really GOOD
2021. 6. 20. 03:20
워게임/Wargame.kr
- user name과 database 간의 관계를 찾아보자. - Start - USER 이름을 입력하고 LOGIN 버튼을 누르면 user 이름 별로 게시판에 접속 된다. - 문제에서 USER name 과 database 간의 관계를 찾으라고 했으니, 여러가지 USER name을 입력해 보자. - 'admin' 입력 시, 접속이 제한된다. - 입력 도중 특정 특수문자(/) 입력 시, 에러 발생 확인 - 데이터베이스 파일을 열 수 없다는 에러 내용 - 사용자 이름 별로 데이터베이스 파일이 저장되는 것으로 보인다. - 파일 경로 : ./db/wkrm_사용자이름.db - 위 경로를 요청하면 데이터베이스 파일을 다운로드 할 수 있게 된다. - 제한되어 있는 admin 데이터베이스 파일을 다운로드 해보자. - w..
Wargame.kr - md5_compare
2021. 6. 8. 05:40
워게임/Wargame.kr
- Start - view-source - VALUE1, VALUE2를 입력하여 두 값의 MD5 해시값이 같으면 문제 해결. - 이 때, VALUE1의 값은 알파벳, VALUE2의 값은 숫자이어야 한다. - 이 문제의 해결을 위해서는 '매직해시(Magic Hashes)'에 대해 알아야한다. - 매직해시란 php의 비교연산자에서 발생하는 취약점이다. - php에서 느슨한비교연산자(==, !=)는 변수의 자료형을 비교하지 않는 취약점을 가지고 있다. - 변수의 값을 확인하여 자동으로 자료형을 변경하는데, 예를 들어 정수와 문자를 비교할 때 문자를 수로 변환한다. - 이를 이용하여 비교문에서 자료형을 float로 변환하게 하는 'e' 지수표기법을 이용하는 것이 매직해시이다. - 'e' 는 지수를 표현하는 방법..
Wargame.kr - md5 password
2021. 6. 4. 04:17
워게임/Wargame.kr
- md5() 취약점에 관련한 문제로 보인다. - Start - get source - 패스워드가 $ps = mysql_real_escape_string($_POST['ps']); 을 통해 필터링 되는 것을 확인 - 패스워드는 md5($ps, true); 함수를 통해 MD5해시 값으로 변환되어 SQL쿼리문이 된다. - 이때, 파라미터'true'가 설정된 md5함수는 SQL문에서 사용될 때, SQL Injection 공격에 취약하게 된다. - 파라미터'true'는 raw_output=true 라는 의미로 16진수 문자열대신 바이너리 형태로 해시 값를 반환하게 된다. - 따라서 SQL쿼리가 참이 되도록 하는 바이너리 형태의 md5값의 입력 문자를 찾으면 문제를 해결할 수 있다. - 구글링을 통해 'DyrhG..
Wargame.kr - strcmp
2021. 5. 30. 20:07
워게임/Wargame.kr
- 'strcmp' 함수를 우회하라는 문제 확인. - Start - view-source - 패스워드가 일치하면 Flag를 획득할 수 있다. - if (strcmp($_POST['password'], $password) == 0) 를 통해 패스워드를 검증 - strcmp 함수는 두 개의 인자 값이 같으면 '0'을 반환한다. - PHP 5.3버전에서는 strcmp 함수의 인자 값으로 배열을 입력하면 NULL을 반환하는데, 이것을 이용한다. ( 참고로 5.2버전에서는 인자 값으로 배열을 입력하면 'Array'라는 문자열로 변환하여 1 또는 -1을 반환한다.) - 느슨한 비교문(==)에서 'NULL == 0' 은 참이므로 password에 배열을 전달해보자. - 'password[]=pass' 를 전달하여 s..
Wargame.kr - WTF_CODE
2021. 5. 27. 05:00
워게임/Wargame.kr
- 다른 프로그래밍언어라는 문제 내용 확인. - Start! - 꽤 허접해 보이는 문제, 별 내용이 없다. - html 코드를 확인하였지만 파일 다운로드 외 의미있는 내용이 없다. - 파일 다운로드 및 내용 - 문자는 안보이지만 공백이 존재한다. - 더욱 자세한 확인을 위해 Hex코드 확인해 보자. - 공백, 개행(LF), 탭(Tab)으로만 이루어져 있는 파일 - 우선 이 파일의 확장자(.ws)부터 확인해 보자. - 구글링 결과 ws는 'Whitespace'라고 하는 프로그래밍 언어라고 한다. - 두명의 외국인이 만우절에 발표한 언어로써, 공백과 탭, 개행문자만을 이용하여 코딩하는 난해한 프로그래밍 언어이다. - 자세한 내용은 참고 사이트 확인 : https://ko.wikipedia.org/wiki/%..
Wargame.kr - flee button
2021. 5. 23. 23:59
워게임/Wargame.kr
- 버튼을 클릭하라는 문제 내용 확인 - Start!! - 문제에 접속하면 click me! 라는 버튼이 마우스 커서에서 떨어진 위치에서 함께 움직이게 된다. 따라서 마우스를 이용하여 클릭할 수 없는 상황. - HTML 소스코드를 확인하면 'click me!' 버튼을 눌렀을 때, 현재 URI주소에 '?key=9a35' 파라미터를 전달하는 요청 확인 - 해당 파라미터를 지정하여 전달해 보자.
Wargame.kr - already got
2021. 5. 23. 23:32
워게임/Wargame.kr
- HTTP 응답 헤더를 확인하라는 내용 확인 - Start 클릭! - 위에서 확인한 내용대로 헤더를 확인해보자. - 응답 헤더에 FLAG가 설정되어 있는 것을 확인!