Hacking/Vuln.

미림여자정보과학고등학교 사이트 취약점 제보

2017. 10. 29. 20:19

요즘 본의아니게 1일 1취약점 찾기를 하고 있다,,,ㅋㅋ

어제는 서울여대 영재교육원에서 미림여자정보과학고등학교에 재학 중이신 누나가 학교 사이트를 동아리 선생님께서 만드셔서 굉장히 취약할 것이라고 하면서, 사이트의 취약점을 한 번 찾아보라고 하셨다. 그래서 그냥 쭉 둘러보다가 3분만에 취약점을 찾았다. 


취약점 유형 

 취약점 유형은 'SQL Injection' 이다. 해당 취약점으로 DB 안의 값들을 볼 수 있다. DB안에 회원 정보도 있는 만큼 상당히 위험한 취약점이다. 빨리 고치는 것이 답이다. 뉴스에서 소개되는 DB 정보 유출 취약점은 거의 모두 SQL Injection 취약점이다. 

(이와 더해서 Reflected XSS 취약점도 발견했다.)


공격 벡터(Vector)

 공격 벡터는 '회원가입'이었다. 회원가입할 때 이메일 중복 검사를 시행하는데 이 때 취약점이 발생한다. 
 


이메일 중복 확인 버튼을 누르면, 다음과 같은 화면이 뜨면서 이메일을 사용할 수 있다고 알려준다. 



근데 여기서 쿼리 검색하는 이메일에 아무런 검증을 거치지 않는 것을 확인할 수 있다. 



확대해보면



이렇게 이미 등록된 아이디라고 뜬다. 이것은 SQL Injection으로 인해 WHERE Clause가 참값으로 변한 것임을 유추할 수 있으며, 동시에 SQL Injection 취약점이 있다고 판단할 수 있다.


(참고로, Reflected XSS 취약점도 가능하다. 검색한 이메일을 검색할 때 값을 HTML Entity Encoding을 하지 않은 상태로 반환하기 때문이다.)


해결책

 그냥 모든 특수문자에 대해 백슬래시(\)를 붙이면 된다. 아니면 SQL 구문에 영향을 줄 수 있는 모든 문자를 Replace를 하면 된다. 이와 더불어, Reflected XSS 취약점도 막아야 되는데, 해당 취약점은 HTML Entity Encoding을 한 값을 출력하면 된다. 

끝.



'Hacking > Vuln.' 카테고리의 다른 글

gdb got value leak  (0) 2018.02.19
chrome PDF to XSS  (0) 2017.11.03
ITQ 사이트 취약점 제보  (0) 2017.10.24
비오비 프로젝트 관련  (0) 2017.10.12
PHP preg_replace RCE vuln.  (0) 2017.08.21