정보보안(구버전)/ bWAPP 2019. 2. 21. 14:00

웹 해킹 bWAPP - 80. A6 - Sensitive Data Exposure - Base64 Encoding(Secret)

 

 

본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다. 

 

 

1. Sensitive Data Exposure

 
 - OWASP Top10 A6 - 민감한 데이터 노출
 - 서버와 클라이언트 간에 평문으로 데이터 전송시 스니핑(MITM) 공격에 의해서 정보가 유출될 수 있다.
 - 그렇기 때문에 SSL(HTTPs) 보안 통신 연결을 이용하여 암호화/인증을 통하여 데이터를 보호해야 한다.
 - 또한, 데이터 처리와 암호화 저장이 클라이언트에서 진행되면 공격자가 클라이언트 제어권을 획득하여 정보가 유출될

   수 있으니, 서버에서 진행하는 것을 권장한다.

 

 

 

2. Base64 Encoding(Secret)

 

 - 8bit 2진수 데이터를 6bit씩 재구성하여 64개의 문자/숫자를 이용하여 ASCII 문자열로 인코딩하는 암호화 기능이다.

 - 대신, 디코딩이 가능하기 때문에 보안 취약점을 갖고 있다.

 - ASCII 코드 확인 사이트 : https://www.ascii.cl/htmlcodes.htm

 - Base64 인코드/디코드 사이트 : https://www.base64encode.org/

 

 

'cisco' 입력 -> 'ENCODE' 버튼 클릭 -> Base64 인코딩 내용 확인

 

 

[Base64 인코딩]

 원문

 Base64 인코딩

 cisco

 Y2lzY28=

 

 

[16진수 및 2진수 변환 과정]

 원문

 ASCII HEX

 2진수

 c

 0x63

 01100011

 i

 0x69

 01101001

 s

 0x73

 01110011

 c

 0x63

 01100011

 o

 0x6F

 01101111

 

 

[Base64 인코딩 과정]  (00 은 '=' 패딩 부분)

 단위

변환 과정 

8bit 2진수

 01100011 01101001 01110011 01100011 01101111

6bit 2진수

 011000 110110 100101 110011 011000 110110 111100

Base64 10진수

 24        54       37       51       24        54       60

Base64 인코딩

 Y          2         l         z         Y         2         8

 

 

[Base64 표]

문자

 

문자

 

문자

 

문자

0

A

 

16

Q

 

32

g

 

48

w

1

B

 

17

R

 

33

h

 

49

x

2

C

 

18

S

 

34

i

 

50

y

3

D

 

19

T

 

35

j

 

51

z

4

E

 

20

U

 

36

k

 

52

0

5

F

 

21

V

 

37

l

 

53

1

6

G

 

22

W

 

38

m

 

54

2

7

H

 

23

X

 

39

n

 

55

3

8

I

 

24

Y

 

40

o

 

56

4

9

J

 

25

Z

 

41

p

 

57

5

10

K

 

26

a

 

42

q

 

58

6

11

L

 

27

b

 

43

r

 

59

7

12

M

 

28

c

 

44

s

 

60

8

13

N

 

29

d

 

45

t

 

61

9

14

O

 

30

e

 

46

u

 

62

+

15

P

 

31

f

 

47

v

 

63

-

 

 

 

80-0. Base64 인코딩 내용-1.txt

Base64 인코딩 내용 입력 -> 'DECODE' 버튼 클릭 -> 'cisco' 확인

 

 

 

 

3. Sensitive Data Exposure - Base64 Encoding(Secret)

 

 - 이 시나리오는 Base64 인코딩 방식의 취약점을 알아보는 내용이다.

 

  

Ex1) Sensitive Data Exposure - Base64 Encoding(Secret) 이해

 

 

보안 레벨 선택 및 시나리오 선택

 

 

 

쿠키값에 'secret' 내용이 포함된다는 정보 확인

 

 

 

Intercept -> 'Intercept is on' 으로 변경 실시

 

 

주소창 새로 고침 클릭

 

 

 

'secret' 내용 확인 -> 'Forward' 버튼 클릭


 

Base64로 인코딩된 'secret' 내용 확인

GET /bWAPP/insecure_crypt_storage_3.php HTTP/1.1

Host: 192.168.20.205

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.20.205/bWAPP/portal.php

Cookie: security_level=0; PHPSESSID=c78e1933a3f3d215071a7241b4c338bf; secret=QW55IGJ1Z3M%2F

Connection: close

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0 

 

 

 

'Intercept is off' 확인

 

 

 

80-1. Base64 인코딩 내용-2.txt

Base64 인코딩 내용 입력 -> 'Decode' 버튼 클릭 -> 'Any bugs' 확인

 

 

 

Ex2) 'insecure_crypt_storage_3.php' 파일 내용 확인

 

bee@bee-box:/var/www/bWAPP$ ls -l insecure_crypt_storage_3.php
-rw-rw-r-- 1 root www-data 5176 2014-11-02 23:52 insecure_crypt_storage_3.php

bee@bee-box:/var/www/bWAPP$ vi insecure_crypt_storage_3.php

~ 중간 생략 ~

 

if($row)
{

 

    $secret = $row->secret;

 

    if($_COOKIE["security_level"] == "1" or $_COOKIE["security_level"] == "2")
    {

 

        $secret = sha1($secret);

    }

 

    else
    {

 

        $secret = base64_encode($secret);

 

    }

 

    setcookie("secret", $secret, time()+3600, "/", "", false, false);

 

}
 

:q!

 

 

 

 

Ex3) 보안 레벨 'High' 변경

 

 

보안 레벨 및 시나리오 선택

 

 

 

Intercept -> 'Intercept is on' 으로 변경 실시

 

 

주소창 새로 고침 클릭

 

 

 

'sercret' 내용 확인 -> 'Forward' 버튼 클릭

 

 

SHA-1 'sercret' 내용 확인

GET /bWAPP/insecure_crypt_storage_3.php HTTP/1.1

Host: 192.168.20.205

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.20.205/bWAPP/insecure_crypt_storage_3.php

Cookie: security_level=2; PHPSESSID=c78e1933a3f3d215071a7241b4c338bf; secret=83785efbbef1b4cdf3260c5e6505f7d2261f738d

Connection: close

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0 

 

 

 

'Intercept is off' 확인

 

 

80-2. SHA-1 내용-1.txt

'hash-identifier'을 이용하여 해시 타입 확인

root@kali:~# hash-identifier 
   #########################################################################
   #  __  __       __   ______    _____    #
   # /\ \/\ \     /\ \  /\__  _\  /\  _ `\    #
   # \ \ \_\ \     __      ____ \ \ \___ \/_/\ \/  \ \ \/\ \    #
   #  \ \  _  \  /'__`\   / ,__\ \ \  _ `\    \ \ \   \ \ \ \ \    #
   #   \ \ \ \ \/\ \_\ \_/\__, `\ \ \ \ \ \     \_\ \__ \ \ \_\ \    #
   #    \ \_\ \_\ \___ \_\/\____/  \ \_\ \_\     /\_____\ \ \____/    #
   #     \/_/\/_/\/__/\/_/\/___/    \/_/\/_/     \/_____/  \/___/  v1.1 #
   #         By Zion3R #
   #       www.Blackploit.com #
   #             Root@Blackploit.com #
   #########################################################################

   -------------------------------------------------------------------------
 HASH: 83785efbbef1b4cdf3260c5e6505f7d2261f738d

Possible Hashs:
[+]  SHA-1
[+]  MySQL5 - SHA-1(SHA-1($pass))

Least Possible Hashs:
[+]  Tiger-160
[+]  Haval-160
[+]  RipeMD-160
[+]  SHA-1(HMAC)
[+]  Tiger-160(HMAC)
[+]  RipeMD-160(HMAC)
[+]  Haval-160(HMAC)
[+]  SHA-1(MaNGOS)
[+]  SHA-1(MaNGOS2)
[+]  sha1($pass.$salt)
[+]  sha1($salt.$pass)
[+]  sha1($salt.md5($pass))
[+]  sha1($salt.md5($pass).$salt)
[+]  sha1($salt.sha1($pass))
[+]  sha1($salt.sha1($salt.sha1($pass)))
[+]  sha1($username.$pass)
[+]  sha1($username.$pass.$salt)
[+]  sha1(md5($pass))
[+]  sha1(md5($pass).$salt)
[+]  sha1(md5(sha1($pass)))
[+]  sha1(sha1($pass))
[+]  sha1(sha1($pass).$salt)
[+]  sha1(sha1($pass).substr($pass,0,3))
[+]  sha1(sha1($salt.$pass))
[+]  sha1(sha1(sha1($pass)))
[+]  sha1(strtolower($username).$pass)
   -------------------------------------------------------------------------
 HASH: ^Z
[3]+  Stopped                 hash-identifier


root@kali:~#  

 

 

 

[참고] 해시값 크랙 사이트

 

크랙스테이션 : https://crackstation.net/
해시킬러 : http://hashkiller.co.uk

 

 

80-3. SHA-1 내용-2.txt

SHA-1 내용 입력 -> 'Any bugs' 확인

 

 

[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)

 

웹해킹 80. A6 - bWAPP Sensitive Data Exposure - Base64 Encoding(Secret)   https://youtu.be/1F6p0Xz3UZU

Posted by 김정우 강사(카카오톡 : kim10322)
,


Q