devnoong.log
article thumbnail
728x90

 

 

 

쿼리문을 전달하여 수행하는 프로그램이 존재 한다면, 해당 프로그램을 이용하여 mysql 관련 정보를 획득 할 수 있다.

 

 

 

Mysql 계정 및 서버 정보 획득

 

쿼리문 전달  서버 요청  request 의 파라미터 중 일부 값을 'mysql.users' 등 존재하지 않는 테이블의 값으로 변조 후

패킷을 전송하면  서버응답(Resopnse) 패킷을 통해서 mysql 계정 및 서버 ip 주소를 반환하는 내역을 확인 할 수 있다.

(변조 툴은 Burp Suite을 사용)

 

---> 존재하지 않는 테이블을 조회하려고 하니 sql 문법에 맞지 않기때문에 exception이 발생되고 그 과정에서 계정 및 서버 ip가 노출되고 있다

 

Mysql 버전 정보  획득

쿼리문 전달  서버 요청  request 의 파라미터 중 쿼리 전달 값을 'select @@version' 로 변경하여 

패킷을 전송하면  서버응답(Resopnse) 패킷을 통해서 mysql 버전을 반환하는 것을 확인 할 수 있다.

(변조 툴은 Burp Suite을 사용)

 

> 쿼리문 변경

 

 

> 버전 확인

 

 

 

 

위와 같이 쿼리문 파라미터 값을 그대로 넘겨서 backend 로직에서 체크하지 않는다면, 중요한 정보가 노출될 수 있는 취약점이 발견된다(불충분한 인가)

 

 

전달되는 인자값들은 항상 backend 로직에서 추가 검증 할 수 있도록 프로그램을 구현해야 된 다는 점 유의해야된다!!!!!!

728x90