리얼월드 (Real world)

디미고 인트라넷, IT 소양인증제 취약점 제보

2017. 12. 7. 16:04

2주일 정도 전에 디미고 인트라넷 중 하나인 IT 소양인증제 사이트의 취약점을 찾게 되어 담당 선생님께 제보를 한 적이 있다. 내가 IT 소양인증제 사이트의 취약점을 찾은 것을 보고서로 남기려 블로그에 정리를 하게 되었다. 


해당 파일은 내가 선생님께 넘길 때 사용했던 파일이다. 

IT소양인증제 사이트 취약점.pdf


IT 소양인증제 Bug Hunting Report

(SQL Injection)

한국디지털미디어고등학교 윤석찬

 취약점 유형은 SQL Injection이다. SQL Injection 뿐만 아니라, 500에러로 인한 Source Leak이 가능했다. 


해당 취약점으로 할 수 있는 것들이 꽤 많았다. 기본적으로 SQL Injection이 가능했기 때문에, 데이터베이스에 접속해서 모든 데이터들을 읽을 수 있었다. 만약에 선생님들 계정 정보를 알아내서 로그인했었다면, 내가 IT소양인증제의 포인트를 조작해서 '그랜드 마스터' 등급까지 올라갈 수 있었다. SQL Injection을 연계해서 load_file() 함수를 이용하면 파일 내용까지 볼 수 있었기 때문에 생각보다 파급력이 큰 취약점이었다. 


아래는 시연 영상이다. 





공격 벡터 (Vector)



해결책 (Solution)

사용자에게서 받은 user_id 값은 모두 int형이므로 intval() 함수를 이용해서 형 변환을 하게 되면 완벽히 취약점을 패치할 수 있다. 내가 취약점을 신고하자마자 바로 취약점이 패치되었다.