XSS (6) Veil 프레임워크-2

밍기적·2023년 1월 3일
0

웹해킹

목록 보기
28/35

백도어 파일이 준비되었고 이제 메타스플로잇 프레임워크를 이용한 페이로드를 exploit 명령을 사용하여 시작합니다

이제 희생자 시스템으로 이동하여 만들어 놓은 백도어를 칼리 리눅스에서 실행중인 웹 서버에 접근하여 다운받은 후 실행합니다

실행 후 아무일도 일어나지 않지만 칼리 리눅스로 돌아와 메타스플로잇 프레임워크를 이용하여 exploit을 실행한 터미널로 이동한다면 새로운 연결이 생성된 것을 확인할 수 있습니다

미터프리터로 연결된 리버스 쉘을 볼 수 있습니다

웹 서버를 이용하여 백도어를 전달하는 것은 매우 기본적인 전달 방법입니다

  • 하지만 이것이 백도어를 제공하는 최선의 방법은 아닙니다

대상 컴퓨터에 연결을 확인한 후 미터프리터에 여러가지 명령어를 사용할 수 있습니다

  • 기본적으로 우리는 해당 시스템을 완전히 제어할 수 있다

간단하게 sysinfo 명령어를 작성했습니다

  • 연결된 시스템에 대한 정보를 출력해준다

미터프리터 세션을 이용하여 컴퓨터에서 할 수 있는 모든 작업이 가능합니다


백도어 전달하는 다른 방법

리버스쉘을 얻기 위해 여러가지 방법이 존재합니다

이중에서 사회 공학 기법을 이용할 수 도 있습니다

이전에 사용했던 Beef 프레임워크를 사용했습니다

사회 공학 탭에 존재하는 Fake Notification Bar인 파이어폭스를 선택합니다

  • 이는 알림 표시줄을 표시하여 새 업데이트가 있거나 설치해야 하는 플러그인을 설치하도록 하고 실제로 설치되는 것은 백도어 입니다

플러그인 주소를 백도어가 존재하는 시스템의 IP주소에 파일로 적어서 백도어를 전송하도록 합니다

그러므로 플러그인 등 여러가지 설치가 필요하다는 문장은 결국 백도어 파일을 다운로드 하는 것입니다

백도어 실행 전 미터프리터에 접속하여 이전과 같이 exploit을 진행합니다

이 또한 이전과 같이 연결할 수 있습니다


XSS 취약점 보안

XSS를 방지할 수 있는 방법들

  • HTML안에서 사용자 입력을 사용하는 것을 최소화 하기
  • 페이지안에 그것을 주입하기 전에 믿을 수 없는 입력들을 Escape 하기

XSS가 발생하는 이유는 사용자가 텍스트 상자, 매개변수를 해당 입력은 HTML에 표시되고 페이지의 일부 인 것처럼 취급되므로 자바스크립트가 실행중입니다

악용을 방지하기 위해서 신뢰할 수 없는 입력의 사용을 최소화 하는 것입니다

HTML에 표시되거나 사용될 항목이 무엇이든지 항상 이스케이프 처리를 해야 합니다

  • 특수문자는 특정 기호나 숫자로 표시하는 것

XSS는 페이지에 표시되는 위치에만 주입하는 것이 아닙니다

  • HTML 페이지의 특정 요소 매개변수에 주입할 수도 있음
  • 여러 곳에 존재할 수 있다

또한 사용자의 입력이 어디에서나 사용될 때 코드가 포함되면 HTTP로 인코딩을 진행합니다

  • 이것이 높은 수준의 보안을 구현하는 방법 중 하나입니다

DVWA에서 high 수준의 XSS를 방지하는 코드를 확인했습니다

웹 페이지에 코드 그대로 보여지게 됩니다

해당 부분을 Inspect를 사용하여 확인했습니다

코드를 태그 사이에 넣었습니다

소스코드를 확인해보면 우리가 입력한 문자들은 htmlspecialchars()라는 메서드를 거친 후 웹 페이지에 보여지게 됩니다

  • name 변수에 입력한 내용이 무엇이든 필터링을 진행합니다
  • HTML 코드로 인식할 수 없게 처리하여 오류를 방지할 필요성이 있거나 소스 그대로 보여질 때 유용하게 사용합니다

즉 특정 기호를 입력 시 특정한 코드로 변경됩니다

그렇기 때문에 소스코드로서 실행되지 않고 문자열로서 입력됩니다

  • 무엇을 삽입하려고 하던지 관계 없이 HTML 코드로 변환되어 일반 텍스트 또는 문자 처럼 화면에 표시되게 됩니다

0개의 댓글