cho đoạn văn cho hình ảnh PHP PHP ngơn ngữ phía server, khác với JavaScript chạy máy client Nó thường sử dụng hệ quản trị nội dung PHP WordPress, thường dùng với lập trình back-end tạo kênh truyền thông tin hiệu tới từ database CSS CSS viết tắt “Cascading Style Sheets”, giúp webmaster xác định styles định nghĩa nhiều loại nội dung Bạn làm thủ cơng với yếu tố HTML, bạn lặp lặp lại thành phần mà bạn dùng nhiều nơi khác Bảng Bảng so sánh JS với số ngơn ngữ lập trình phổ biến - Nếu xem ngơn ngữ lập trình việc xây nhà, HTML định dạng kiến trúc nhà, CSS thảm tường để trang trí ngơi nhà đẹp JavaScript thêm yếu tố tương tác nhà, việc mở cánh cửa làm đèn sáng Bạn làm web mà khơng có JavaScript rủi ro website bạn trông web thời năm 1995 1.5 Khuyết điểm JavaScript: - Mọi ngôn ngữ lập trình có khuyết điểm Một phần ngơn ngữ phát triển đến mức độ JavaScript, thu hút lượng lớn hacker, scammer, người có ác tâm ln tìm kiếm lỗ hổng lỗi bảo mật để lợi dụng Một số khuyết điểm kể đến là: ❖ Dễ bị khai thác; ❖ Có thể dùng để thực thi mã độc máy tính người dùng; ❖ Nhiều không hỗ trợ trình duyệt; MA CƠNG THÀNH – B18AT03 TRANG 10 - - Hoặc với đầu sử dụng thời gian thực: npm run watch De4js chạy trình duyệt web tại: http://localhost:4000/de4js/ Xây dựng: npm run build 2.3 - Cài đặt Debian, Linux Mint, Ubuntu Cài đặt gói bắt buộc: sudo apt update sudo apt install git npm ruby-dev zlib1g-dev sudo gem install bundler - Lấy mã nguồn cài đặt phần phụ thuộc: git clone https://github.com/lelinhtinh/de4js cd de4js bundle install - Cài đặt Workbox CLI: sudo npm install workbox-cli global - Khởi động máy chủ: npm start - Hoặc với đầu sử dụng thời gian thực: npm run watch 2.4 - De4js chạy trình duyệt web tại: http://localhost:4000/de4js/ Sử dụng online website De4js sử dụng online trang web: https://lelinhtinh.github.io/de4js/ MA CƠNG THÀNH – B18AT03 TRANG 26 Hình 16 Trang web de4js online Cách sử dụng De4js 3.1 Khởi tạo cơng cụ - Đi tới thư mục có chương trình: cd ~/de4js - Khởi động máy chủ: npm start - Trong trình duyệt web, mở địa http://127.0.0.1:4000/de4js/ Hình 17 Khởi tạo cơng cụ de4js MA CƠNG THÀNH – B18AT03 TRANG 27 3.2 - Cách sử dụng: Trong giao diện website, chọn 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 tệp cục máy tính Hình 19 Nhập đoạn mã từ file • Remote File – định địa URL tệp từ xa Hình 20 Nhập đoạn mã từ URL - Ta xác định cách đoạn mã Javascript giải mã thông lựa trọn sau (mỗi loại tương ứng với cách đoạn mã đầu vào mã hóa): Hình 21 Các lựa chọn để giải mã • • • • • • • None Eval Array Obfuscator IO _Number JSFuck JJencode MA CƠNG THÀNH – B18AT03 TRANG 28 • • • • • • • • • AAencode URLencode Packer JS Obfuscator My Obfuscate Wise Eval Wise Function Clean Source Unreadable - Ngồi ra, ta nhập vào option “Auto Decode” để de4js tự động phát phương pháp xáo trộn phù hợp với đoạn mã đầu Javascript đầu vào Đoạn mã giải mã hiển thị cửa sổ bên - Các tùy chọn bổ sung mà ta bật tắt: Hình 22 Các tùy chọn bổ sung • • • • • • • Line numbers – thị số thự tự dòng Format Code – định dạng lại đoạn mã highlight cú pháp Unescape strings – chuyển xâu ký tự từ dạng chuỗi dạng thơng thường Recover object-path – khôi phục đường dẫn đối tượng Execute expression – thực số học phép toán khác biểu thức Merge strings - nối chuỗi Remove grouping – Xóa gộp nhóm III Bài lab Demo lab 1: Giải mã đoạn mã bị làm rối Javascript Obfuscator: - Kịch bản: Ta muốn giải mã đoạn mã làm rối Javascript Obfuscator thành đoạn mã đọc hiểu - Đoạn mã Javascript trước đưa vào làm rối JS Obfuscator: MA CƠNG THÀNH – B18AT03 TRANG 29 Hình 23 Lab1 - Đoạn mã JS bình thường - Đoạn mã rối đầu vào: Hình 24 Lab - Đoạn mã đầu vào bị làm rối MA CÔNG THÀNH – B18AT03 TRANG 30 - 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” giao diện web • thu kết quả: Hình 25 Lab - Giải mã De4js - Nhận xét: • Kết sau giải mã trả logic với đoạn mã trước bị obfuscator đọc hiểu nội dung • De4js xác định xác loại làm rối (obfuscated) sử dụng - JS Obfuscator Demo lab 2: Giải mã javascript để gỡ bỏ quyền chân trang số tảng web template: - Kịch bản: Trên thị trường nay, nhà cung cấp template blogger đẹp Templateify, Sora Templates, Odd themes, Bloggertheme9 nhiên họ có hai premium free Với free họ mã hóa javascript để quyền chân trang Nếu bạn sử dụng free mà khơng xóa quyền đồng nghĩa với việc bạn cho họ backlink Đơi điều làm bạn khó chịu Vì cần phải giải mã javascript để xóa quyền chân trang tùy chỉnh javascript dễ dàng Điều đặc biệt tạo nên lag gom đống code lại thế, chỉnh sửa code gây lag, đứng trình duyệt khó chịu MA CƠNG THÀNH – B18AT03 TRANG 31 - Trên tảng Blogspot, ta tạo blog sử themeplate miễn phí có tên Paperify Blogger Template từ Templateify Sau tạo blog thành công, ta thu website có quyền chân trang hình đây: Hình 26 Lab - Trang web với quyền chân trang MA CÔNG THÀNH – B18AT03 TRANG 32 - Nhấn tổ hợp phím Crlt + U, hình thị source code trang web mở Di chuyển hình xuống dưới, ta thấy đoạn javascipt mã hóa Đây phần mã hóa quyền chân trang Templateify Hình 27 Lab - Mã nguồn trang web bị gắn quyền - Copy paste phần đánh dâu ảnh vào cơng cụ De4js: MA CƠNG THÀNH – B18AT03 TRANG 33 Hình 28 Lab2 - Nhập đoạn mã bị mã hóa vào de4js - Ấn chọn nút “Auto Decode”, thu kết quả: Hình 29 Lab - Kết giải mã de4js MA CÔNG THÀNH – B18AT03 TRANG 34 - Sau ta copy đoạn code giải mã vào trang JavaScript Minifier để minify đoạn code cho dễ đọc: Hình 30 Lab - Rút gọn lại đoạn mã vừa giải mã - Tiếp đến ta copy đoạn code minified dán vào trang web để format lại định dạng cho đoạn code javascript: Hình 31 Lab - Định dạng lại đoạn code MA CƠNG THÀNH – B18AT03 TRANG 35 - Copy tồn đoạn mã format, vào phần sửa HTML theme Blogspot Hình 32 Lab - Chỉnh sửa HTML template theme - Sau ta paste thay phần code javascript đây: Hình 33 Lab - Đoạn code mã hóa cần thay MA CÔNG THÀNH – B18AT03 TRANG 36 - Ta thu kết sau: Hình 34 Lab - Đoạn mã giải mã thay đoạn mã bị mã hóa cũ - Vậy ta xong bước mã hóa đoạn code bị làm rối, ta tìm phần javascript xử lý phần quyền phân trang, sau ta xóa đoạn code đó: Hình 35 Lab - Xóa đoạn mã JS chứa quyền chân trang - Sau xóa xong, ta ấn lưu lại Vây ta gỡ quyền chân trang theme miễn phí Templateify Kết thu cho phép thay đổi chân trang theo ý mà không bị redirect đến trang chủ Templateify MA CÔNG THÀNH – B18AT03 TRANG 37 Hình 36 Lab - Xóa thành cơng quyền chân trang MA CƠNG THÀNH – B18AT03 TRANG 38 IV Kết luận: - De4js công cụ để giải mã deobfuscated phổ biến với lợi ích như: có khả dịch ngược tốt, chạy offline tương thích với nhiều hệ điều hành - Tuy nhiên de4js số điểm hạn chế khả giải mã chưa theo kịp với kiểu mã hóa – điều vừa tốt vừa tồi; tốt kiểu mã hóa trở nên tốt hơn, giúp đảm bảo an toàn cho hệ thống; tồi với việc update khơng kịp thời cơng dụng tool dần bị giảm - Đây công cụ penetration testing tốt dành cho nhà phân tích lỗ hổng hệ thống, dàng có thi CTF với mức độ khó khơng q cao; cịn với hacker cơng cụ lựa chọn thời gian update chậm - Vậy báo cáo tiểu luận trình bày xong làm rối, xáo trộn mã javascript, giải mã đoạn mã bị xáo trộn tìm hiểu cơng cụ De4js Bài báo cáo chủ yếu dựa tìm hiểu cá nhân, cịn nhiều sai sót, mong thầy đóng góp nhận xét để giúp em hoàn thiện tốt làm MA CƠNG THÀNH – B18AT03 TRANG 39 V Tài liệu tham khảo [1] "Javascript gì," [Online] Available: https://www.hostinger.vn/huong-dan/javascript-la-gi [Accessed 21 12 2021] [2] "Tìm hiểu minified obfuscated code," [Online] Available: http://soaptek.blogspot.com/2013/01/tim-hieu-ve-minified-obfuscated-code.html [Accessed 21 12 2021] [3] "Obfuscated code lập trình," [Online] Available: https://viblo.asia/p/obfuscated-code-trong-laptrinh-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 12 2021] MA CÔNG THÀNH – B18AT03 TRANG 40 ... biệt số cơng cụ De4js – cơng cụ dùng để giả mã (deobfuscator) giải nén (unpacker) code javascript Và nội dung mà tiểu luận muốn đề cập tới: Công cụ giải mã giải nén mã lệnh javascript – De4js Rất... Phương pháp giải mã code javascript bị mã hóa: - Trình tự bước giải mã cụ thể trình bày phần demo lab công cụ De4js, phần giới thiệu số cách thông dụng để giải mã code javascript bị mã hóa: MA... III Bài lab Demo lab 1: Giải mã đoạn mã bị làm rối Javascript Obfuscator: - Kịch bản: Ta muốn giải mã đoạn mã làm rối Javascript Obfuscator thành đoạn mã đọc hiểu - Đoạn mã Javascript trước đưa