호빵둥이 IT Blog

Webhacking.kr 6번 풀이 :: 호빵둥이 IT Blog 본문

프로그래밍/[워게임]Webhacking.kr

Webhacking.kr 6번 풀이 :: 호빵둥이 IT Blog

d2n0s4ur 2020. 5. 16. 20:00

 

 

 

 

안녕하세요!

 

오늘은 워게임, Webhacking.kr Chellenge 6번 문제를 풀어보도록 하겠습니다.

 

이번 문제는 암호화, 복호화를 이용한 문제입니다.

 

암호화 과정을 쉽게 하기 위해서 python을 사용했습니다!

 

 

 

 

#문제 보기


https://webhacking.kr/challenge/web-06/ 에 접속해서 문제를 보도록 하겠습니다.

 

https://webhacking.kr/challenge/web-06/

 

webhacking.kr

 

 

https://webhacking.kr/challenge/web-06/에 접속한 모습

 

이번 문제는 별로 볼 것이 없습니다.

 

바로 view-source를 눌러 소스코드를 분석해보겠습니다.

 

 

 

 

 

#소스코드 분석하기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
if(!$_COOKIE['user']){
  $val_id="guest";
  $val_pw="123qwe";
  for($i=0;$i<20;$i++){
    $val_id=base64_encode($val_id);
    $val_pw=base64_encode($val_pw);
  }
  $val_id=str_replace("1","!",$val_id);
  $val_id=str_replace("2","@",$val_id);
  $val_id=str_replace("3","$",$val_id);
  $val_id=str_replace("4","^",$val_id);
  $val_id=str_replace("5","&",$val_id);
  $val_id=str_replace("6","*",$val_id);
  $val_id=str_replace("7","(",$val_id);
  $val_id=str_replace("8",")",$val_id);
 
  $val_pw=str_replace("1","!",$val_pw);
  $val_pw=str_replace("2","@",$val_pw);
  $val_pw=str_replace("3","$",$val_pw);
  $val_pw=str_replace("4","^",$val_pw);
  $val_pw=str_replace("5","&",$val_pw);
  $val_pw=str_replace("6","*",$val_pw);
  $val_pw=str_replace("7","(",$val_pw);
  $val_pw=str_replace("8",")",$val_pw);
 
  Setcookie("user",$val_id,time()+86400,"/challenge/web-06/");
  Setcookie("password",$val_pw,time()+86400,"/challenge/web-06/");
  echo("<meta http-equiv=refresh content=0>");
  exit;
}
?>
<html>
<head>
<title>Challenge 6</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<?php
$decode_id=$_COOKIE['user'];
$decode_pw=$_COOKIE['password'];
 
$decode_id=str_replace("!","1",$decode_id);
$decode_id=str_replace("@","2",$decode_id);
$decode_id=str_replace("$","3",$decode_id);
$decode_id=str_replace("^","4",$decode_id);
$decode_id=str_replace("&","5",$decode_id);
$decode_id=str_replace("*","6",$decode_id);
$decode_id=str_replace("(","7",$decode_id);
$decode_id=str_replace(")","8",$decode_id);
 
$decode_pw=str_replace("!","1",$decode_pw);
$decode_pw=str_replace("@","2",$decode_pw);
$decode_pw=str_replace("$","3",$decode_pw);
$decode_pw=str_replace("^","4",$decode_pw);
$decode_pw=str_replace("&","5",$decode_pw);
$decode_pw=str_replace("*","6",$decode_pw);
$decode_pw=str_replace("(","7",$decode_pw);
$decode_pw=str_replace(")","8",$decode_pw);
 
for($i=0;$i<20;$i++){
  $decode_id=base64_decode($decode_id);
  $decode_pw=base64_decode($decode_pw);
}
 
echo("<hr><a href=./?view_source=1 style=color:yellow;>view-source</a><br><br>");
echo("ID : $decode_id<br>PW : $decode_pw<hr>");
 
if($decode_id=="admin" && $decode_pw=="nimda"){
  solve(6);
}
?>
</body>
</html>
cs

 

이번 문제는 코드가 굉장히 길어 보입니다..

 

하지만, 내용만 알면 그 어느 문제보다 쉽다는 것을 확인할 수 있습니다!

 

하나하나씩, 분리해서 분석해봅시다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
if(!$_COOKIE['user']){
  $val_id="guest";
  $val_pw="123qwe";
  for($i=0;$i<20;$i++){
    $val_id=base64_encode($val_id);
    $val_pw=base64_encode($val_pw);
  }
  $val_id=str_replace("1","!",$val_id);
  $val_id=str_replace("2","@",$val_id);
  $val_id=str_replace("3","$",$val_id);
  $val_id=str_replace("4","^",$val_id);
  $val_id=str_replace("5","&",$val_id);
  $val_id=str_replace("6","*",$val_id);
  $val_id=str_replace("7","(",$val_id);
  $val_id=str_replace("8",")",$val_id);
 
  $val_pw=str_replace("1","!",$val_pw);
  $val_pw=str_replace("2","@",$val_pw);
  $val_pw=str_replace("3","$",$val_pw);
  $val_pw=str_replace("4","^",$val_pw);
  $val_pw=str_replace("5","&",$val_pw);
  $val_pw=str_replace("6","*",$val_pw);
  $val_pw=str_replace("7","(",$val_pw);
  $val_pw=str_replace("8",")",$val_pw);
 
  Setcookie("user",$val_id,time()+86400,"/challenge/web-06/");
  Setcookie("password",$val_pw,time()+86400,"/challenge/web-06/");
  echo("<meta http-equiv=refresh content=0>");
  exit;
}
?>
cs

 

(문제를 푸는데 필요 없는 부분은 과감하게 생략하겠습니다)

 

 

 

3,4번째 줄에서 $val_id와 $val_pw를 각각 "guest", "123qwe"로 지정했습니다.

 

5번째 줄에서 for문을 통해 id와 pw를 base64인코딩으로 각각 20번 암호화하고,

 

9 ~ 25번째 줄에서 암호화된 id와 pw에서 숫자를 모두 특수문자로 대응시키는 것을 확인할 수 있습니다.

 

27 ~ 28 번째 줄에서 user와 password라는 이름의 쿠키로 값을 저장합니다.

 

 

 

이어서, 다음 코드도 보도록 하겠습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$decode_id=$_COOKIE['user'];
$decode_pw=$_COOKIE['password'];
 
$decode_id=str_replace("!","1",$decode_id);
 
 ... 중략 ...
 
$decode_pw=str_replace(")","8",$decode_pw);
 
for($i=0;$i<20;$i++){
  $decode_id=base64_decode($decode_id);
  $decode_pw=base64_decode($decode_pw);
}
 
echo("<hr><a href=./?view_source=1 style=color:yellow;>view-source</a><br><br>");
echo("ID : $decode_id<br>PW : $decode_pw<hr>");
 
if($decode_id=="admin" && $decode_pw=="nimda"){
  solve(6);
}
?>
cs

 

 

마찬가지로 분석을 시작하겠습니다.

 

2~3 번째 줄에서 $decode_id, $decode_pw 값에 각각 user, password 쿠키값을 받고

 

5~ 9번째 줄에서 모든 특수문자를 숫자로 대응시켜줍니다.

 

이후 11 ~ 14번째 줄에서 for문을 사용하여 id와 pw를 20번씩 복호화해준 후

 

19번째 줄에서 id 가 admin이고 pw가 nimda이면 문제가 풀리는 구조입니다.

 

즉, admin과 nimda를 base64 암호화 함수로 20번 인코딩해서 쿠키값에 넣어주면 될 것 같습니다!

 

 

 

 

 

#문제 풀기


저는 문제를 빠르고 간편하게 풀기 위해 Python을 사용하도록 하겠습니다.

 

 

(해당 코드는 Python 3.6.5 환경에서 테스트되었습니다)

 

 


base64 인코딩을 하기 위해서는 base64 라이브러리가 필요합니다. 아래 링크를 통해 라이브러리 설명을 볼 수 있습니다.

 

 

 


https://docs.python.org/ko/3.6/library/base64.html

 

19.6. base64 — Base16, Base32, Base64, Base85 Data Encodings — Python 3.6.10 문서

19.6. base64 — Base16, Base32, Base64, Base85 Data Encodings Source code: Lib/base64.py This module provides functions for encoding binary data to printable ASCII characters and decoding such encodings back to binary data. It provides encoding and decodi

docs.python.org


 

 

 

 

Python을 이용해 해답을 구하는 프로그램을 구현했다

 

 

아주 간단한 소스코드이지만, 분석을 해보도록 하겠습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
import base64
 
id= 'admin'.encode()
pw = 'nimda'.encode()
 
for j in range(20):
    pw = base64.b64encode(pw)
    id = base64.b64encode(id)
 
print(id)
print('\n\n')
print(pw)
cs

 

base64 복호화 함수를 이용하기 위해서 1번째 줄에서 base64 라이브러리를 불러옵니다.

 

3 ~ 4번째 줄에서 id와 pw에 각각 admin, nimda를 넣습니다.

 

 

 

 


여기서 주의해야 할 점!

지난번 4번 문제(링크)에서 언급하지 않았지만

sha1 해시함수와 마찬가지로 base64 함수에서 암호화하기 위해서는

byte 객체로 encode 해줘야 합니다.

 

 

 

이후 6 ~ 8번째 줄에서 id와 pw를 base64 복호화 함수를 통해 20번 복호화를 진행합니다.

이제 출력된 id값과 pw값을 복사해서 쿠키값에 적용해봅시다!

 

Python 파일을 실행시키면

 

 

id값. 굉장히 길다.

 

 

이렇게 엄청나게 긴 코드가 나옵니다.

 

↓id

더보기

Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFjVkZ0UmxSTmJFcEpWbTEwYTFkSFNrZGpSVGxhVmpOU1IxcFZXbUZrUjA1R1UyMTRVMkpIZHpGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm1wT1QwMHhjRlpYYlVaclVqQTFSMWRyV25kV01ERkZVbFJHVjFaRmIzZFdha1poVjBaT2NtRkhhRk5sYlhoWFZtMXdUMVF3TUhoalJscFlZbGhTV0ZSV2FFTlNiRnBZWlVaT1ZXSlZXVEpWYkZKRFZqQXhkVlZ1V2xaaGExcFlXa1ZhVDJOc2NFZGhSMnhUVFcxb2IxWXhaREJaVmxsM1RVaG9hbEpzY0ZsWmJGWmhZMnhXY1ZGVVJsTk5WMUo1VmpKNFQxWlhTbFpYVkVwV1lrWktTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGSnJhR2hTYXpWeldXeG9iMWRHV25STldHUlZUVlpHTTFSVmFHOWhiRXB6WTBac1dtSkdXbWhaTVZwaFpFZFNTRkpyTlZOaVJtOTNWMnhXWVZReFdsaFRiRnBZVmtWd1YxbHJXa3RUUmxweFVtMUdVMkpWYkRaWGExcHJZVWRGZUdOSE9WZGhhMHBvVmtSS1QyUkdTbkpoUjJoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxOSGFGQlZiVEUwVmpGU1ZtRkhPVmhTTUhCNVZHeGFjMWR0U2tkWGJXaGFUVzVvV0ZreFdrZFdWa3B6VkdzMVYySkdhM2hXYTFwaFZURlZlRmR1U2s1WFJYQnhWVzB4YjFZeFVsaE9WazVPVFZad2VGVXlkREJXTVZweVkwWndXR0V4Y0ROV2FrWkxWakpPU1dKR1pGZFNWWEJ2Vm10U1MxUXlUWGxVYTFwb1VqTkNWRmxZY0ZkWFZscFlZMFU1YVUxcmJEUldNalZUVkd4a1NGVnNXbFZXYkhCWVZHdGFWbVZIUmtoUFYyaHBVbGhDTmxkVVFtRmpNV1IwVTJ0a1dHSlhhR0ZVVnpWdlYwWnJlRmRyWkZkV2EzQjZWa2R6TVZZd01WWmlla1pYWWxoQ1RGUnJXbEpsUm1SellVWlNhVkp1UW5oV1YzaHJWVEZzVjFWc1dsaGlWVnBQVkZaYWQyVkdWWGxrUkVKWFRWWndlVmt3V25kWFIwVjRZMFJPV21FeVVrZGFWM2hIWTIxS1IxcEhiRmhTVlhCS1ZtMTBVMU14VlhoWFdHaFlZbXhhVjFsc1pHOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0YTFOR1ZuTlhiRlpYWWtoQ1NWWkdVa2RWTVZwMFVtdG9VRll5YUhCVmJHaERUbXhrVlZGdFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZucFdkbFl3V25OT2JFcHpXa2R3YVZORlNrbFdNblJyWXpGVmVWTnVTbFJpVlZwWVZGYzFiMWRHWkZkWGJFcHNVbTFTZWxsVldsTmhWa3AxVVd4d1YySllVbGhhUkVaYVpVZEtTVk5zYUdoTk1VcFZWbGN4TkdReVZrZFdiR1JvVW5wc2IxUldXbmRsYkZsNVkwVmtWMDFFUmpGWlZXaExWMnhhV0ZWclpHRldNMmhJV1RJeFMxSXhjRWhpUm1oVFZsaENTMVp0TVRCVk1VMTRWbGhvV0ZkSGFGbFpiWGhoVm14c2NscEhPV3BTYkhCNFZrY3dOVll4V25OalJXaFlWa1UxZGxsV1ZYaFhSbFp5WVVaa1RtRnNXbFZXYTJRMFdWWktjMVJ1VG1oU2JGcFlXV3hhUm1ReFduRlJiVVphVm0xU1NWWlhkRzloTVVwMFlVWlNWVlpXY0dGVVZscGhZekZ3UlZWdGNFNVdNVWwzVmxSS01HRXhaRWhUYkdob1VqQmFWbFp0ZUhkTk1WcHlWMjFHYWxacmNEQmFSV1F3VmpKS2NsTnJhRmRTTTJob1ZrUktSMVl4VG5WVmJFSlhVbFJXV1ZaR1l6RmlNV1JIWWtaV1VsZEhhRlJVVm1SVFpXeHNWbGRzVG1oU1ZFWjZWVEkxYjFZeFdYcFZiR2hZVm14d1lWcFZXbXRrVmtwelZtMXNWMUl6YURWV01XUXdXVmRSZVZaclpGZGliRXB5Vld0V1MySXhiRmxqUldSc1ZteEtlbFp0TURWWFIwcEhZMFpvV2sxSGFFeFdNbmhoVjBaV2NscEhSbGROTW1oSlYxUkplRk14U1hoalJXUmhVbXMxV0ZZd1ZrdE5iRnAwWTBWa1dsWXdWalJXYkdodlYwWmtTR0ZHV2xwaVdHaG9WbTE0YzJOc1pISmtSM0JUWWtad05GWlhNVEJOUmxsNFYyNU9hbEpYYUZoV2FrNVRWRVpzVlZGWWFGTldhM0I2VmtkNFlWVXlTa1pYV0hCWFZsWndSMVF4V2tOVmJFSlZUVVF3UFE9PQ==

 

 

 

↓pw

더보기

Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZacVFtRlRNbEpJVm10a1dHSkdjRTlaVjNSR1pVWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVmpOT00xcFZXbUZrUjA1R1drWndWMDFFUlRGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0xNFlVMHhXbk5YYlVaclVqQTFSMWRyV2xOVWJVcEdZMFZ3VjJKVVJYZFdha1pYWkVaT2MxZHNhR2xTTW1oWlYxZDRiMkl5Vm5OVmJGWlRZbFZhY2xWcVFURlNNVlY1VFZSU1ZrMXJjRWxhU0hCSFZqRmFSbUl6WkZkaGExcG9WakJhVDJOdFJraGhSazVzWWxob1dGWnRNSGhPUm14V1RVaG9XR0pyTlZsWmJGWmhZMVphZEdSSFJrNVNiRm93V2xWYVQxWlhTbFpqUldSYVRVWmFNMVpxU2t0V1ZrcFpXa1p3VjFKV2NIbFdWRUpoVkRKT2MyTkZhR3BTYXpWWVZXcE9iMkl4V25STldHUlZUVlpXTkZVeGFHOWhiRXB6WTBac1dtSkdXbWhaTW5oWFkxWkdWVkpzVGs1WFJVcElWbXBLTkZReFdsaFRhMlJxVW0xNGFGVXdhRU5UUmxweFVtMUdVMkpWYkRaWGExcHJZVWRGZUdOSE9WZGhhMHBvVmtSS1QyUkdTbkpoUjJoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxOSGFGQlZiVEUwVmpGU1ZtRkhPVmhTTUhCNVZHeGFjMWR0U2tkWGJXaGFUVzVvV0ZreFdrZFdWa3B6VkdzMVYySkdhM2hXYTFwaFZURlZlRmR1U2s1WFJYQnhWVzB4YjFZeFVsaE9WazVPVFZad2VGVXlkREJXTVZweVkwWndXR0V4Y0ROV2FrWkxWakpPU1dKR1pGZFNWWEJ2Vm10U1MxUXlUWGxVYTFwb1VqTkNWRmxZY0ZkWFZscFlZMFU1YVUxcmJEUldNV2h2V1ZaS1IxTnNaRlZXYkZwNlZHeGFZVmRGTlZaUFZtaFRUVWhDU2xac1pEUmpNV1IwVTJ0b2FGSnNTbGhVVlZwM1ZrWmFjVk5yWkZOaVJrcDZWa2N4YzFVeVNuSlRiVVpYVFc1b1dGbHFTa1psUm1SWldrVTFWMVpzY0ZWWFZsSkhaREZaZUdKSVNsaGhNMUpVVlcxNGQyVkdWbGRoUnpsb1RWWndlbFl5Y0VkV01ERjFZVWhLV2xaWFVrZGFWM2hIWTIxS1IyRkdhRlJTVlhCS1ZtMTBVMU14VlhoWFdHaFlZbXhhVjFsc1pHOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0YTFOR1ZuTlhiRlpYWWtoQ1NWWkdVa2RWTVZwMFVtdG9VRll5YUhCVmJHaERUbXhrVlZGdFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZucFdkbFl3V25KbFJtUnlXa1prVjJFelFqWldhMlI2VFZaWmQwMVdXbWxsYTFwWVdXeG9RMVJHVW5KWGJFcHNVbTFTZWxsVldsTmhWa3AxVVd4d1YySllVbGhhUkVaYVpVZEtTVk5zYUdoTk1VcFdWbGN4TkdReVZrZFdXR3hyVWpCYWNGVnRlSGRsYkZsNVpVaGtXRkl3VmpSWk1GSlBWMjFGZVZWclpHRldNMmhJV1RJeFMxSXhjRWhpUm1oVFZsaENTMVp0TVRCVk1VMTRWbGhvV0ZkSGFGbFpiWGhoVm14c2NscEhPV3BTYkhCNFZrY3dOVll4V25OalJXaFlWa1UxZGxsV1ZYaFhSbFp5WVVaa1RtRnNXbFZXYTJRMFdWWktjMVJ1VG1oU2JGcFlXV3hhUm1ReFduRlJiVVphVm0xU1NWWlhkRzloTVVwMFlVWlNWVlpXY0dGVVZscGhZekZ3UlZWdGNFNVdNVWwzVmxSS01HRXhaRWhUYkdob1VqQmFWbFp0ZUhkTk1WcHlWMjFHYWxacmNEQmFSV1F3VmpKS2NsTnJhRmRTTTJob1ZrUktSMVl4VG5WVmJFSlhVbFJXV1ZaR1l6RmlNV1JIWWtaV1VsZEhhRlJVVm1SVFpXeHNWbGRzVG1oU1ZFWjZWVEkxYjFZeFdYcFZiR2hZVm14d1lWcFZXbXRrVmtwelZtMXNWMUl6YURWV01XUXdXVmRSZVZaclpGZGliRXB5Vld0V1MySXhiRmxqUldSc1ZteEtlbFp0TURWWFIwcEhZMFpvV2sxSGFFeFdNbmhoVjBaV2NscEhSbGROTW1oSlYxUkplRk14U1hoalJXUmhVbXMxV0ZZd1ZrdE5iRnAwWTBWa1dsWXdWalJXYkdodlYwWmtTR0ZHV2xwaVdHaG9WbTE0YzJOc1pISmtSM0JUWWtad05GWlhNVEJOUmxsNFYyNU9hbEpYYUZoV2FrNVRWRVpzVlZGWWFGTldhM0I2VmtkNFlWVXlTa1pYV0hCWFZsWndSMVF4V2tOVmJFSlZUVVF3UFE9PQ==

 

 

로 값이 나왔습니다.

 

이제 크롬의 개발자 도구를 사용해서 쿠키값을 붙여 넣어보겠습니다.

 

크롬 브라우저에서 [F12] > [Application] > [Storage] > [Cookies] > https://webhacking.kr 에서 user와 password 쿠키값을 더블클릭한 후 바꿔주도록 합시다.

 

 

쿠키의 Value를 더블클릭해서 바꿔주자.

 

 

그리고 F5를 눌러주면,

 

 

문제가 풀렸다!

 

 

 

문제를 풀었습니다!

 

문제 소스코드에 숫자를 특수문자에 대칭시키고, 특수문자를 숫자에 대칭시키는 부분이 있었습니다.

 

원래는 숫자와 특수문자가 encode 결과값에 나올 수 있기 때문에 고려해야 한다고 생각할 수 있지만,

 

base64 인코딩을 하면 특수문자가 절대 나오지 않습니다.

 

결국은, 이를 고려하지 않아도 문제를 풀 수 있게 됩니다.

 

 

 

 

 

#연관된 활동


4번 문제에서 봤던 SHA-1 해시함수와 base64 인코딩을 한번 비교해보도록 하겠습니다.

 

SHA-1 해시함수는 디코딩이 없는, 단방향 함수입니다.

 

따라서 그동안 암호화 방식으로 많이 사용되었고, 보안 쪽에서도 실제로 사용 중인 곳이 있습니다.

 

단방향 함수이기 때문에 해커가 암호문에서 평문을 얻기 위해서는 많은 시간을 사용해야 하죠.

 

하지만 base64 인코딩은 말 그대로 인코딩입니다.

 

디코딩도 가능한 양방향 함수이기 때문에 암호화 방식으로 적합하지 않습니다.

 

실제로 base64는 단순히 바로 봤을 때 어떤 데이터인지 짐작하지 못하게 하는 기능으로 사용하고 있습니다.

 

이에 관해서 여러 유저들이 토론했던 내용을 첨부합니다.

 

 


 

https://okky.kr/article/276104

 

OKKY | Base64 왜 사용하는 걸까요?

   1. Base64 사용 안했을때 충돌지점의 구체적 예시화 2. 더 좋은 방법들  살다보면 무임승차 바랄때가 있잖습니까. 누가 떡하니 총돌지점 및 인사이트를 자세히 가져다 줄지..하는 ..스스로 찾아

okky.kr

 


 

 

 

 

 


암호학은 정보보안의 기초입니다. 한 번쯤 암호학에 대해서

공부하시는 것을 추천드립니다.


 

 

 

 

 

포스트 잘 보셨다면 하단에 ♡ 꼭 눌러주시길 부탁드립니다!

(♡ 는 블로거에게 큰 힘이 됩니다)

 

 

 

[이전글] : 2020/05/15 - [SW/[워게임]Webhacking.kr] - Webhacking.kr 5번 풀이 :: 호빵둥이 IT Blog

 

Webhacking.kr 5번 풀이 :: 호빵둥이 IT Blog

안녕하세요! 오늘은 워게임, Webhacking.kr Chellenge 5번 문제를 풀어보도록 하겠습니다. 이번 문제는 SQL 인젝션을 사용한 문제입니다. #문제 보기 바로 한번 https://webhacking.kr/challenge/web-05/로 접속..

h-bread.tistory.com

[다음글] : 2020/05/17 - [SW/[워게임]Webhacking.kr] - Webhacking.kr 7번 풀이 :: 호빵둥이 IT Blog

 

 

Comments