str_rot13[]
, base64_encode[]
và gzinflate
- thường được sử dụng để làm xáo trộn các chuỗi mã PHP độc hại. Đối với những người tham gia vào việc bảo vệ các trang web, việc hiểu cách các chức năng này được sử dụng để mã hóa và giải mã các khối dữ liệu PHP được mã hóa là rất quan trọng để giám sát chính xác và phục hồi tấn công nhanh chóng.Đối với những người đã quen thuộc với khái niệm này, nhưng có thể sử dụng một tài liệu tham khảo nhanh với các ví dụ, tôi đã đưa ra một bản tóm tắt ngắn gọn về bài viết này. Bài báo ở đây được dự định là một cái nhìn hậu trường của người Viking về việc giải mã và mã hóa xảy ra trên trang ví dụ. Tại đây, menu nhảy nhanh:
- Mã hóa/giải mã str_rot13 []
- Mã hóa và giải mã bằng base64_encode [] & base64_decode []
- Xuất độ và thổi phồng với gzdeflate [] & gzinflate []
- Ví dụ kết hợp: gzinflate [str_rot13 [base64_decode []]]]
- Các công cụ trực tuyến để giải mã/mã hóa mã PHP
- Tài nguyên bổ sung ..
- Ví dụ nhanh về mã hóa/giải mã PHP
Mã hóa và giải mã bằng str_rot13 []
Như đã giải thích trong tài liệu PHP, str_rot13[]
là một hàm đơn giản được sử dụng để xoay mọi chữ cái 13 vị trí trong bảng chữ cái trong khi bỏ qua các ký tự không phải là số đồngumeric. Loại mã hóa này được gọi là mã hóa ROT13 và nó rất đơn giản bằng cách sử dụng hàm str_rot13[]
. Hãy nhìn vào một ví dụ ..
Hãy để nói rằng chúng tôi muốn rot13-rode Chuỗi sau:
Chúng tôi chạy chuỗi này thông qua str_rot13[]
và đặt nó thành một biến có tên
1 như vậy:
2Đang lặp lại biến
1 với trình duyệt, chúng tôi nhận được chuỗi vô nghĩa này:
4Để giải mã một chuỗi được mã hóa bằng str_rot13[]
, chúng tôi chỉ cần chạy lại thông qua hàm để khôi phục chuỗi gốc. Dưới đây là một ví dụ trả lại chuỗi gốc cho một biến có tên
6:decode a string encoded with str_rot13[]
, we
simply run it back through the function to restore the original string. Here is an example that returns the original string to a variable named
6:
7Vang vọng
6, chúng ta thấy chuỗi ban đầu như mong đợi:
9Ví dụ Sao chép/Dán [hãy thử cho chính mình]: [try it for yourself]:
Mã hóa và giải mã bằng base64_encode [] & base64_decode []
Xuất độ và thổi phồng với gzdeflate [] & gzinflate []
Ví dụ kết hợp: gzinflate [str_rot13 [base64_decode []]]]
Các công cụ trực tuyến để giải mã/mã hóa mã PHP
Tài nguyên bổ sung ..
5Đang lặp lại biến
1 với trình duyệt, chúng tôi nhận được chuỗi vô nghĩa này:
7Để giải mã một chuỗi được mã hóa bằng str_rot13[]
, chúng tôi chỉ cần chạy lại thông qua hàm để khôi phục chuỗi gốc. Dưới đây là một ví dụ trả lại chuỗi gốc cho một biến có tên
6:decode a string encoded with
8, we use the converse function, base64_decode. Here is an example that returns the original string to a variable named
6:
0Vang vọng
6, chúng ta thấy chuỗi ban đầu như mong đợi:
9Ví dụ Sao chép/Dán [hãy thử cho chính mình]: [try for yourself]:
Xuất độ và thổi phồng với gzdeflate [] & gzinflate []
Ví dụ kết hợp: gzinflate [str_rot13 [base64_decode []]]]
Các công cụ trực tuyến để giải mã/mã hóa mã PHP
Tài nguyên bổ sung ..
7Ví dụ nhanh về mã hóa/giải mã PHP
9Mã hóa và giải mã bằng str_rot13 []inflate it with the converse function, gzinflate[], to restore the
original string. Here is an example that returns the original string to a variable named str_rot13[]
0:
str_rot13[]
1
Như đã giải thích trong tài liệu PHP, str_rot13[]
là một hàm đơn giản được sử dụng để xoay mọi chữ cái 13 vị trí trong bảng chữ cái trong khi bỏ qua các ký tự không phải là số đồngumeric. Loại mã hóa này được gọi là mã hóa ROT13 và nó rất đơn giản bằng cách sử dụng hàm str_rot13[]
. Hãy nhìn vào một ví dụ ..
9Hãy để nói rằng chúng tôi muốn rot13-rode Chuỗi sau::
Chúng tôi chạy chuỗi này thông qua str_rot13[]
và đặt nó thành một biến có tên
1 như vậy:
Đang lặp lại biến
1 với trình duyệt, chúng tôi nhận được chuỗi vô nghĩa này:two parameters. Perhaps surprisingly, these
second parameters are different between the two functions:- Để giải mã một chuỗi được mã hóa bằng
str_rot13[]
, chúng tôi chỉ cần chạy lại thông qua hàm để khôi phục chuỗi gốc. Dưới đây là một ví dụ trả lại chuỗi gốc cho một biến có tên
6: —str_rot13[]
7 = the level of compression [str_rot13[]
8 tostr_rot13[]
9] - Vang vọng
6, chúng ta thấy chuỗi ban đầu như mong đợi: —base64_encode[]
0 = the maximum length of data to decode
Ví dụ Sao chép/Dán [hãy thử cho chính mình]:
Cũng được giải thích trong tài liệu PHP, hàm base64_encode[]
mã hóa dữ liệu đã cho bằng base64. Thay vì đi vào cơ chế mã hóa với Base64, tôi sẽ lặp lại haiku bí ẩn được đưa ra trong các tài liệu:
base64_encode[]
1
9
9Ví dụ kết hợp: gzinflate [str_rot13 [base64_decode []]]]
Các tập lệnh độc hại thường kết hợp nhiều phương pháp mã hóa để tiếp tục làm xáo trộn các chuỗi dữ liệu. Sử dụng nhiều hàm loại mã hóa PHP [và các tham số khác nhau của chúng], nó có thể tranh giành dữ liệu với nhiều lớp obfuscation. Ví dụ, về kỹ thuật phổ biến để mã hóa các tập lệnh độc hại kết hợp cả ba chức năng được mô tả trong bài viết này. Cấu trúc của kỹ thuật như vậy trông như thế này:all three of the functions described in this article. The structure of such technique looks like this:
base64_encode[]
3
Khái niệm này rất đơn giản, tuy nhiên việc giải mã base64_encode[]
4 có thể là khó khăn. Cách dễ nhất để giải mã một chuỗi như vậy là sử dụng một công cụ giải mã trực tuyến. Và đó là sự khác biệt của tôi trong phần tiếp theo ..
Các công cụ trực tuyến để giải mã/mã hóa mã PHP
Để đóng góp thêm vào nguyên nhân, tôi đã tạo ra một số công cụ giải mã trực tuyến để đơn giản hóa quy trình. Dưới đây là một số công cụ để mã hóa/giải mã với một số chức năng PHP phổ biến:
- Giải mã
base64_encode[]
5 - Bộ mã hóa/bộ giải mã UTF-8 [Hex]
- Bộ giải mã/bộ chuyển đổi Unicode
- Thêm công cụ..
Tài nguyên bổ sung
Vào công cụ giải mã/sinh thái này? Bạn cũng có thể thích những chức năng tốt này ..
- Chunk_split [] - Chia một chuỗi thành các khối nhỏ hơn
- convert_uuencode [] - uuencode một chuỗi
- gzcompress [] - nén một chuỗi
- gzuncompress [] - Khó nén một chuỗi nén
- gzencode [] - Tạo chuỗi nén GZIP
Thông tin về các Tác giả
Jeff Starr = Nhà phát triển web. Tác giả sách. Bí mật quan trọng.