상세 컨텐츠

본문 제목

[웹 모의해킹] 에러 메시지(페이지) 정보누출 보안취약점 점검 코드

[Tech] 정보보안/소소한 코드 몇 줄

by tech-dailylife 2021. 7. 26. 14:27

본문

반응형

일상이든 회사업무이든 반복적인 일을 하다보면은 간단한 코드 몇 줄로 개선해보고 싶어집니다.

그럴 때마다 하나씩 짧게나마 만든 코드를 가볍게 포스팅 하려고 합니다.^^

 

 

[작성배경]

이번에는 에러 메시지나 에러페이지를 통해 서버 정보가 누출되는 취약점을 점검하는 코드를 포스팅합니다.

404 Not Found 등 400번대 에러나 500번대 에러가 발생되었을 때, 서버 정보가 누출되는지 확인하는 작업은 모의해킹을 할때 비교적으로 기술적인 요소가 아니지만 그래도 꼭 점검해야하는 항목입니다.

그렇기 때문에 수동으로 작업하기보다는 간단한 코드로 하려고 시도해봤습니다.

 

 

 

[소스코드]

코드는 주피터 노트북에서 작성을 하였고요. 기본적으로 사용하는 requests 라이브러리와 브라우저를 조작하기 위한selenium 라이브러리를 설치하셔야 합니다.

 

[상세설명]

주요한 프로그램의 동작 구성은 아래와 같이 작성되었습니다.

1. 점검 url을 텍스트 파일에서 읽어옵니다.

입력 파일로 사용되는 url.txt에 정보누출 취약점을 확인하기 위한 URL들을 입력해둡니다.

2. 입력된 url에 임의문자열(404error)를 붙여 request 요청을 보냅니다.

404 Not Found 에러를 발생시키기 위해 존재하지 않는 경로로 요청을 보냅니다. 사실 경로 뿐만 아니라 파일로도 보내는 것도 필요할 수도 있을 것 같아 보이지만 우선 경로만 추가시켜봤습니다.

그리고 404 이외에 403, 503, 400 등 다른 에러코드도 발생시키는 코드를 추 후에는 추가할 예정입니다.

 

3. 각 요청에 대한 응답 메시지에 특정 패턴(apache 등)가 나타나는지 확인합니다.

apache tomcat, jboss 등 다양한 웹서버(WAS 포함)에 대한 노출에 대해 if elif 를 통해 확인합니다.

실제 사용하면서 누락된 웹서버 오류메시지도 추가할 예정입니다.

 

4. 필요한 점검 결과와 로그를 출력합니다.

콘솔에는 점검한 URL 정보, 에러 코드, 점검 결과, 증적 파일을 차례로 출력했습니다.

(에러 코드는 불필요하지만 혹시 404가 아닐 경우가 나타날까봐 임시로 출력해뒀습니다.)

텍스트 파일과 이미지 파일을 생성하여 결과를 쉽게 확인할 수 있게 만들었습니다.

먼저 텍스트 파일에는 콘솔에 출력한 내용을 그대로 저장해뒀습니다.

점검 결과 생성된 이미지를 열어보면(자동으로 열리게 해놓았습니다.), 실제 취약한지 아닌지 확인할 수 있고 취약하다면 보고서에 그대로 넣으면 효율적입니다.

아래는 취약한 케이스로 서버 정보(Apache 2.4.46 Debian)가 노출이 되고 있는 것을 확인할 수 있습니다.

아래는 양호한 케이스로 사용자가 정의한 에러페이지로 나타납니다.

반응형

관련글 더보기

댓글 영역