포스팅 내용

국내외 보안동향

PHP My Admin에서 DB를 삭제할 수 있는 심각한 CSRF 취약점 발견

최근 인도의 보안연구원 Ashutosh Barot이 phpMyAdmin에 존재하는 CSRF 취약점을 발견하였습니다. 해당 취약점을 악용하면 phpMyAdmin의 MySQL DB를 원격에서 제어할 수 있을뿐만 아니라, 데이터들을 삭제할 수도 있습니다. 


영향받는 버전


phpMyAdmin 4.7.x 계열 중 4.7.7 이전 버전



취약점 분석


CSRF공격은 OWASP Top 10에 포함되어 있는 심각한 취약점 중 하나로, phpMyAdmin에서는 DROP Table과 같은 요청은 Get Request를 사용한 후 POST Request를 통해 요청됩니다. Get Request는 CSRF 공격에서 보호되어야 합니다. 이러한 상황에서, 브라우저 즐겨찾기 등 URL 링크를 통하여 POST Request를 발송하면 공격자는 악의적인 링크를 통하여 관리자의 클릭을 유도할 수 있게되며, 결국 DB에 접근할 수 있게 됩니다. 


위에 언급한 내용을 기반으로, 우리는 Burp의 Request 수정 기능을 이용하여 phpMyAdmin의 POST Request를 Get Request로 바꿔보았는데, 해당 방법을 통하여 기간이 만료되었거나 삭제된 신분 token을 이용하여도 URL을 통해 직접 실행할 수 있다는 것을 확인하였습니다. 이러한 방법을 이용하면, wordpress 관리자 사용자를 추가하는 것도 가능합니다. 이러한 공격이 성공하려면 공격자는 cPanel의 세션 id, DB이름 및 기타정보(예를들어 wp_user의 테이블 명)등의 정보만 알고있으면 되며, 이러한 정보들은 매우 쉽게 추측가능합니다. 


<이미지 출처 : http://cyberworldmirror.com/vulnerability-phpmyadmin-lets-attacker-perform-drop-table-single-click/>


DB관리 과정에서 생성된 URL은 브라우저 히스토리에 저장되는데, 만약 사용자가 insert 및 DROP등의 버튼을 이용하여 검색을 진행한다면, 해당 URL에는 DB이름 및 데이블 명 등의 정보들이 포함되어 있을 것입니다. 뿐만 아니라 이렇게 생성된 URL 링크들은 브라우저 히스토리 이외에도 SIEM logs, 방화벽로그, ISP로그 등에 저장되어 있을 것입니다. 그렇기 때문에, 해당 취약점은 민감정보를 유출 시킬 가능성도 포함되어 있습니다. 



<이미지 출처 : http://cyberworldmirror.com/vulnerability-phpmyadmin-lets-attacker-perform-drop-table-single-click/>



사용자가 phpMyAdmin의 관리자 페이지에서 로그인 후, phpMyAdmin을 바로 종료해도 CSRF 공격이 가능합니다. 하지만 만약 해당 취약점을 성공적으로 악용하여 원격에서 DB를 조작하려고 하면, 사용자와 상호작용이 필요합니다.



패치방법


phpMyAdmin 4.4.70 버전으로 업데이트





출처 :

http://cyberworldmirror.com/vulnerability-phpmyadmin-lets-attacker-perform-drop-table-single-click/

티스토리 방명록 작성
name password homepage