찬이네사진관

#6 정보노출 본문

IT World/Web Hacking

#6 정보노출

Chanz_tudio 2019. 5. 5. 19:17
반응형

 

 

생각보다 웹해킹을 할때 정보 노출은 해커에게 많은 것을 제공해준다.

 

정보노출이라 뭔가 막연해보이겠지만 이 취약점은 공격에 실마리를 제공해주는 주요 취약점으로 작동한다.

 

예시를 먼저 보며 설명해보자.

 

평범한 로그인창.

이 평범한 로그인창에 버퍼 오버플로우를 공격해보겠다.

 

*버퍼 오버플로우 공격이란 입력하는 곳에 임의의 데이터를 무작위로 정말 큰 값으로 넣어 서버가 감당할 수 있는 값을 넘었을때 리턴되는 결과를 보는 것이다.(이때 리턴 결과에 따라 많은 정보를 확인할 수 있다.)

 

위와 같이 메모리 오버플로우를 공격하면 많은 결과를 리턴한다.

 

미친듯한 값을 입력하였을때.

1번 결과의 경우에는 정말 많은 입력값에 대해 리턴값이다.

에러 페이지에 보면 여러가지를 확인할 수 있다.

1. Request-URL Too Large: URL에 길이가 굉장히 길다고 적혀있다. 버퍼 오버플로우 공격이 성공한 것으로 볼 수 있는데 이때 알 수 있는 점은 내가 아이디를 입력시 URL에 아이디 값이 넣어져서 보내지는 형식으로 예상된다.

2. 아파치 서버를 이용한다. 서버에는 많은 종류가 있다. 아파치, IIS 톰캣 등등 서버마다 형식(WEP,WEB)도 동작 방식도 다른고 그로인해 생기는 취약점도 다르다. 특히 버전(2.2.8)과 OS(우분투)라고 적혀있기에 나중에 운영체제 명령어 공격에도 ls -al과 같은 방식을 써야겠구나 등등의 정보를 제공해줄 수 있다.

이외에도 PHP에 대해서 SSL에 대해서 버전까지 포트까지 상세히 출력한다. 이를 통해 공격점을 알 수 있다.

 

또한 가끔 마음대로 집어넣다가 '와 같은 쿼리가 삽입될때도 한가지 더 확인할 수 있다.

그 결과는 아래에 적혀있다.

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[''' AND password = '3590cb8af0bbb9e78c343b52b93773c9'' at line 1

 

line1에 있는 username에 적은 '['''에서 혹은 패스워드에서 MySQL서버와 안맞는 구문이 적혀있다는 글을 볼 수 있는데

이를 통해 DB를 MySQL을 관리하고 mySQL 쿼리를 이용하여 스크립트를 작성한다면 SQL 인젝션의 취약점을 공격할 수 있을 것으로 예상된다.

 

이처럼 정보노출의 위험은 해커의 정보수집에 굉장한 파급력을 가져오고 이를 통해 해커는 자기가 원하는 바로 공격을 시도해 볼 수 있도록 한다.

 

그러면 이에 대한 해결점은 어떤 방식으로 해야할까?

모든 에러페이지를 숨기면 된다. 에러가 생길만한 일에 리턴을 없도록하거나(검색을 눌렀는데 검색이 되지 않는경우)

혹은 에러가 났다.와 같이 상세 정보를 감추고 최소한의 상황만을 알려주는 방식을 사용한다면 정보 노출의 위험은 많이 줄어들 것이다.

 

 

반응형
Comments