상세 컨텐츠

본문 제목

[웹 모의해킹] 위치 공개 (샘플 페이지 존재 여부) 보안취약점 점검 코드

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

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

본문

반응형

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

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

 

 

[작성배경]

이번에는 위치 공개 취약점을 점검하는 코드를 포스팅합니다.

위치 공개 취약점 중에 step2에 해당하는 샘플 페이지 존재 여부를 확인하는 점검 코드 입니다.

샘플 페이지를 통해 위치가 공개되어 위치 공개일까 싶습니다만, 아래 가이드 내용입니다.

 

 

[소스코드]

코드는 이전 포스팅까지는 주피터 노트북에서 작성을 하였지만, 사실 컨설팅에 사용하다보니 local로 들고 들어가야하기 때문에 결국 cmd에서 실행시키는 것이 편하더라고요. 그래서 그냥 py파일에 작성하여 cmd에서 테스트했습니다. 마찬가지로 기본적으로 사용하는 requests 라이브러리와 브라우저를 조작하기 위한selenium 라이브러리를 설치하셔야 합니다.

 

 

[상세설명]

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

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

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

2. 입력된 url에 /phpinfo.php와 /index.html 을 각각 붙여 요청을 보냅니다.

사실 샘플페이지 경로가 가이드에 나오지 않아 인터넷 검색을 통해 확인했는데, 부족한 부분이 있습니다. 나중에 보완해야겠습니다.

 

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

샘플 페이지를 나타내는 패턴들을 검색하여 취약 여부를 판단합니다.

패턴들을 정의하다보니.. 조금 귀찮아서 하드코딩 형식으로 패턴을 넣었고 직관적으로 코드를 짰습니다..

 

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

콘솔에는 대상 URL에 대해 점검URL 각각의 정보와 그 때마다 취약하거나 확인이 필요한 경우의 결과와 증적 파일 정보를 차례로 출력했습니다.

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

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

취약 또는 확인 필요한 경우의 점검 결과 생성된 이미지를 저장하고, 그 이미지를 웹에서 자동으로 열리게 해놓았습니다.

아래는 취약한 케이스로 Apache2 Debian의 샘플 페이지가 노출이 되고 있는 것을 확인할 수 있습니다.

아래는 취약한 케이스로 php의 샘플 페이지가 노출이 되고 있는 것을 확인할 수 있습니다.

 

(참고로 try catch문을 사용해서 일부 작동하지 않은 서버에 대해 점검할 경우 에러가 나면 프로그램이 멈추는 문제를 해결해두었습니다. 이전 포스팅까지의 점검 코드도 사실 예외 처리가 필요합니다.)

반응형

관련글 더보기

댓글 영역