Trao đổi với tôi

http://www.buidao.com

2/6/10

[Crypto] Base64 encode

I. Giới thiệu:
Từ khi được giới thiệu, Base64 hiện là một giải thuật mã hóa được ứng dụng rộng rãi. Bên cạnh ứng dụng chính là encode dữ liệu truyền trong các ứng dụng mail (Multipurpose Internet Mail Extensions - MIME) base64 còn dùng trong một số lĩnh vực khác nhau.
Ý nghĩa của giải thuật này là chuyển đổi các dữ liệu binary (như file đính kèm) sang dạng plain text để có thể truyền với giao thức mail.
Cách hiện thực base64 đơn giản là dùng bảng mã 6 bit (chỉ bao gồm các ký tự a-z,A-Z,0-9) thay cho bảng mã 8 bit thông dụng.
Các bước Base64 thực hiện như sau:
1. Chuyển đổi các dữ liệu truyền sang nhị phân. Vd: với 3 ký tự ASCII 8 bit ta sẽ có dãy gồm 24 bit.
2. Tách thành các nhóm 6 bit để xử lý
3. Ánh xạ nhóm 6 bit trong bảng mã Base64 để tìm ký tự tương ứng
Hãy xét một ví dụ sau:
Dữ liệu cần chuyển đổi Base64: Man
Bước 1:
M = 77 (ASCII) = 0100.1101
a = 97 (ASCII) = 0110.0001
n = 110 (ASCII) = 0110.1110
Man = 0100.1101.0110.0001.0110.1110
Bước 2: Tách nhóm 6 bit
Man = 010011.010110.000101.101110
Bước 3: Ánh xạ trong bảng mã 64 sau:


Click this bar to view the full image.



Click this bar to view the full image.


Dữ liệu Base64: TWFu
Việc chuyển đổi từ Base64 ra dữ liệu gốc đơn giản có thể làm ngược lại.
Ngoài việc dùng chuyển đổi dữ liệu dùng truyền mail, Base64 còn dùng trong HTTP Basic Authenticate với Web Server. Username và password được truyền đến server bằng Base64 trong HTTP Header. Xem hình sau:


Click this bar to view the full image.


II. Dùng Base64 mã hóa Webshell để Bypass Antivirus:
1. Có 1 Webshell vd: r57.php. Shell này khi upload lên server cài đặt Antivirus sẽ dễ dàng detect được.
2. Dùng Base64 encode. Có thể dùng một số trang web encode online. Vd: http://www.motobit.com/util/base64-decoder-encoder.asp
3. Tạo file Newshell.php dán nội dung encode vào hàm base64_decode
<?php
eval (base64_decode('abc'));
?>
Với abc là nội dung shell đã encode.
Kết thúc!

__________
RefLink: http://nhatnghe.com/forum/showthread.php?t=26771