정보보안(구버전)/ 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 |
- |
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' 확인
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' 확인
'hash-identifier'을 이용하여 해시 타입 확인
root@kali:~# hash-identifier ------------------------------------------------------------------------- Possible Hashs: Least Possible Hashs:
|
[참고] 해시값 크랙 사이트
크랙스테이션 : https://crackstation.net/
해시킬러 : http://hashkiller.co.uk
SHA-1 내용 입력 -> 'Any bugs' 확인
[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)
웹해킹 80. A6 - bWAPP Sensitive Data Exposure - Base64 Encoding(Secret) https://youtu.be/1F6p0Xz3UZU