Trang web de4js online

Một phần của tài liệu BÁO CÁO TIỂU LUẬN CÔNG CỤ GIẢI MÃ JAVASCRIPT DE4JS (Trang 27)

3. Cách sử dụng De4js 3.1. Khởi tạo công cụ 3.1. Khởi tạo công cụ

- Đi tới thư mục có chương trình: 1 cd ~/de4js

- Khởi động máy chủ:

1 npm start

- Trong trình duyệt web, mở địa chỉ http://127.0.0.1:4000/de4js/

MA CÔNG THÀNH – B18AT03 TRANG 28

3.2. Cách sử dụng:

- Trong giao diện website, chọn một trong các cách sau để nhập vào đoạn mã bi xáo trộn (obfuscated source code):

String – chèn mã vào cửa sổ giao diện web

Hình 18. Nhập đoạn mã vào form

Local File – chọn một tệp cục bộ trên máy tính

Hình 19. Nhập đoạn mã từ file

Remote File – chỉ định địa chỉ URL của một tệp từ xa

Hình 20. Nhập đoạn mã từ URL

- Ta có thể xác định cách đoạn mã Javascript được giải mã thông các lựa trọn sau (mỗi loại tương ứng với cách đoạn mã đầu vào được mã hóa):

Hình 21. Các lựa chọn để giải mã • None • None • Eval • Array • Obfuscator IO • _Number • JSFuck • JJencode

MA CƠNG THÀNH – B18AT03 TRANG 29 • AAencode • URLencode • Packer • JS Obfuscator • My Obfuscate • Wise Eval • Wise Function • Clean Source • Unreadable

- Ngồi ra, ta có thể nhập vào option “Auto Decode” để de4js tự động phát hiện

phương pháp xáo trộn phù hợp với đoạn mã đầu Javascript đầu vào. Đoạn mã được giải mã sẽ được hiển thị trong cửa sổ bên dưới.

- Các tùy chọn bổ sung mà ta có thể bật hoặc tắt:

Hình 22. Các tùy chọn bổ sung

Line numbers – hiện thị số thự tự dịng

Format Code – định dạng lại đoạn mã và highlight cú pháp

Unescape strings – chuyển các xâu ký tự từ dạng chuỗi thốt về dạng thơng

thường

Recover object-path – khơi phục đường dẫn đối tượng

Execute expression – thực hiện số học và các phép toán khác trên biểu thức

Merge strings - nối các chuỗi

Remove grouping – Xóa gộp nhóm III. Bài lab

1. Demo lab 1: Giải mã đoạn mã bị làm rối bằng Javascript Obfuscator:

- Kịch bản: Ta muốn giải mã một đoạn mã đã được làm rối bằng Javascript Obfuscator thành đoạn mã có thể đọc hiểu được.

MA CÔNG THÀNH – B18AT03 TRANG 30

Hình 23. Lab1 - Đoạn mã JS bình thường

- Đoạn mã rối đầu vào:

MA CÔNG THÀNH – B18AT03 TRANG 31

- Sử dụng De4js để giải mã:

• paste đoạn mã muốn giải mã vào khung cửa cửa số web • chọn nút “Auto Decode” trên giao diện web

• thu được kết quả:

Hình 25. Lab 1 - Giải mã bằng De4js

- Nhận xét:

• Kết quả sau khi giải mã trả về đúng logic với đoạn mã trước khi bị obfuscator và có thể đọc hiểu được nội dung

• De4js xác định được chính xác loại làm rối (obfuscated) được sử dụng - ở đây chính là JS Obfuscator

2. Demo lab 2: Giải mã javascript để gỡ bỏ bản quyền chân trang trên một số nền tảng web template:

- Kịch bản: Trên thị trường hiện nay, các nhà cung cấp template blogger đẹp như Templateify, Sora Templates, Odd themes, Bloggertheme9 .... tuy nhiên họ đều có hai bản là premium và free. Với bản free họ sẽ mã hóa javascript và để bản quyền chân trang. Nếu các bạn sử dụng bản free mà khơng xóa bản quyền thì đồng nghĩa với việc bạn cho họ 1 backlink. Đơi khi điều đó sẽ làm bạn khó chịu. Vì vậy chúng ta cần phải giải mã javascript ra để có thể xóa bản quyền chân trang cũng như tùy chỉnh

javascript dễ dàng hơn. Điều đặc biệt nhất đối với mình là nó sẽ tạo nên lag khi gom một đống code lại như thế, khi chỉnh sửa code gây ra lag, đứng trình duyệt rất khó chịu.

MA CƠNG THÀNH – B18AT03 TRANG 32

- Trên nền tảng Blogspot, ta sẽ tạo một blog sử themeplate miễn phí có tên là Paperify Blogger Template từ Templateify. Sau khi tạo blog thành công, ta sẽ thu được một website có bản quyền chân trang như hình dưới đây:

MA CÔNG THÀNH – B18AT03 TRANG 33

- Nhấn tổ hợp phím Crlt + U, màn hình hiện thị source code của trang web sẽ được mở. Di chuyển màn hình xuống dưới, ta sẽ thấy đoạn javascipt được mã hóa. Đây chính là phần mã hóa bản quyền chân trang của Templateify.

Hình 27. Lab 2 - Mã nguồn của trang web bị gắn bản quyền

MA CƠNG THÀNH – B18AT03 TRANG 34

Hình 28. Lab2 - Nhập đoạn mã bị mã hóa vào de4js

- Ấn chọn nút “Auto Decode”, thu được kết quả:

MA CÔNG THÀNH – B18AT03 TRANG 35

- Sau đó ta sẽ copy đoạn code đã được giải mã và tiếp theo sẽ vào trang JavaScript Minifier để minify đoạn code cho dễ đọc:

Hình 30. Lab 2 - Rút gọn lại đoạn mã vừa được giải mã

- Tiếp đến ta sẽ copy đoạn code đã được minified và dán vào trang web để format lại định dạng cho đoạn code javascript:

MA CÔNG THÀNH – B18AT03 TRANG 36

- Copy toàn bộ đoạn mã đã được format, vào phần chính sửa HTML theme trong Blogspot

Hình 32. Lab 2 - Chỉnh sửa HTML của template theme

- Sau đó ta sẽ paste thay thế phần code javascript dưới đây:

MA CÔNG THÀNH – B18AT03 TRANG 37

- Ta sẽ thu được kết quả như sau:

Hình 34. Lab 2 - Đoạn mã được giải mã thay thế đoạn mã bị mã hóa cũ

- Vậy là ta đã xong bước mã hóa đoạn code bị làm rối, tiếp theo ta sẽ tìm phần javascript xử lý phần bản quyền phân trang, sau đó ta sẽ xóa đoạn code đó:

Hình 35. Lab 2 - Xóa đoạn mã JS chứa bản quyền chân trang

- Sau khi xóa xong, ta sẽ ấn lưu lại. Vây là ta đã gỡ được bản quyền chân trang trên theme miễn phí của Templateify. Kết quả thu được cho phép chúng ta thay đổi chân trang theo ý của chúng ta mà không bị redirect đến trang chủ của Templateify nữa.

MA CÔNG THÀNH – B18AT03 TRANG 38

MA CÔNG THÀNH – B18AT03 TRANG 39

IV. Kết luận:

- De4js là công cụ để giải mã deobfuscated khá phổ biến với các lợi ích như: có khả năng dịch ngược tốt, có thể chạy offline và tương thích với nhiều hệ điều hành

- Tuy nhiên de4js vẫn còn một số điểm hạn chế như khả năng giải mã chưa theo kịp với các kiểu mã hóa mới hiện nay – đây là một điều vừa tốt và cũng vừa tồi; tốt là vì các kiểu mã hóa ngày nay ngày càng trở nên tốt hơn, giúp đảm bảo an toàn cho các hệ thống; tồi là vì với việc update khơng được kịp thời thì cơng dụng của tool đang dần bị giảm đi. - Đây là công cụ penetration testing tốt dành cho các nhà phân tích lỗ hổng hệ thống, dàng

có các cuộc thi CTF với mức độ khó khơng q cao; cịn với các hacker thì đây chỉ là một cơng cụ lựa chọn vì thời gian update chậm.

- Vậy là bài báo cáo tiểu luận đã trình bày xong về làm rối, xáo trộn mã javascript, giải mã đoạn mã bị xáo trộn đó cũng như tìm hiểu về công cụ De4js. Bài báo cáo chủ yếu dựa trên sự tìm hiểu cá nhân, do đó cịn nhiều sai sót, mong thầy đóng góp nhận xét để giúp em hồn thiện tốt hơn bài làm của mình.

MA CÔNG THÀNH – B18AT03 TRANG 40

V. Tài liệu tham khảo

[1] "Javascript là gì," [Online]. Available: https://www.hostinger.vn/huong-dan/javascript-la-gi. [Accessed 21 12 2021].

[2] "Tìm hiểu về minified và obfuscated code," [Online]. Available:

http://soaptek.blogspot.com/2013/01/tim-hieu-ve-minified-obfuscated-code.html. [Accessed 21 12 2021].

[3] "Obfuscated code trong lập trình," [Online]. Available: https://viblo.asia/p/obfuscated-code-trong-lap- trinh-XL6lANQg5ek. [Accessed 21 12 21].

[4] "Javascript Obfuscation the definitive guide," [Online]. Available:

https://blog.jscrambler.com/javascript-obfuscation-the-definitive-guide. [Accessed 21 12 2021]. [5] "De4js - Penetration Testing Tools," [Online]. Available: https://en.kali.tools/?p=1372. [Accessed 21

Một phần của tài liệu BÁO CÁO TIỂU LUẬN CÔNG CỤ GIẢI MÃ JAVASCRIPT DE4JS (Trang 27)

Tải bản đầy đủ (PDF)

(40 trang)