○ 예선전 14번 문제
13번 문제 또한 SQL Injection 관련 문제로 MySQL 버그를 이용한 동일한 ID명의 사용자 추가에 대한 내용이였다.
■ 예선전 14번 문제 화면
→ Join은 Access_Denied로 접근이 불가
→ Login 페이지로 이동된 화면
→ Directory Listing을 통해서 join.php 파일 획득
→ join.php 파일 접근 화면
소스 파일 :
소스 파일에서 스크립트를 변조하면 인증 페이가 나타남
■ 문제 풀이 화면
Login화면에서 로그인 시도를 해보면 admin 계정이 있다는 것을 알 수 있다. id/pass를 임의로 가입해도 해당 계정은 admin이 아니라는 이유로 접근이 거부된다.
그러면 admin 계정을 생성해야 하는데 이미 생성되어 있는 계정이라고 신규 가입이 거부된다.
MySQL에는 Insert를 할 경우 MAX 값을 체크하지 않아서 정해진 크기 이후로 입력되는 값이 생략되는 문제점이 존재한다. 이러한 취약점을 이용하여 새로운 admin 계정 생성이 가능하다. 자세한 내용은 아래의 참고 사이트를 참조바랍니다.
※ 참고 SITE : http://teamcrak.tistory.com/54
→ 위와 같이 계정을 생성하면 admin/1234 계정이 추가로 생성되어 인증이 된다.