HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN
Học phần: An tồn mạng nâng cao Bài báo cáo:
Tìm hiểu công cụ XSSer trong hệ điều hành Kali Linux
Giảng viên hướng dẫn:
TS. Đặng Minh Tuấn
Sinh viên thực hiện:
Hoàng Tùng Anh - B17DCAT004
Hà Nội, năm 2021 1
MỤC LỤC DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT ......................................................... 3 DANH MỤC CÁC HÌNH VẼ .................................................................................................................... 4 LỜI MỞ ĐẦU.............................................................................................................................................. 6 Giới thiệu chung về XSS và công cụ XSSer ...................................................................................... 7
Demo sử dụng công cụ .................................................................................................................. 36
1.
Môi trường, trang web mục tiêu và kết quả mong đợi .............................................................. 36
2.
Thực hiện ....................................................................................................................................... 36 2.1.
Sử dụng terminal................................................................................................................... 36
2.2.
Sử dụng giao diện .................................................................................................................. 39
3. Đánh giá kết quả thu được và so sánh cơng cụ với các cơng cụ tìm kiếm, phát hiện lỗ hổng khác ........................................................................................................................................................ 44
V.
3.1.
Đánh giá chung về kết quả thu đc và công cụ..................................................................... 44
3.2.
So sánh với công cụ khác ...................................................................................................... 44
Kết luận .............................................................................................................................................. 47
2
DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt
Thuật ngữ tiếng Anh/Giải thích
Thuật ngữ tiếng Việt/Giải thích
Command
Command
Câu lệnh
Configure
Configure
Cấu hình
Connection
Connection
Kết nối
DOM-XSS
Document Object Model Cross-site
scripting
1 dạng của lỗ hổng XSS
GUI
Graphical User Interface
Giao diện đồ họa người dùng
HTTP
Hypertext Transfer Protocol
Proxy
Proxy
Terminal
Terminal
WAFs
Web application firewall
XSS
Cross-site scripting
Là một giao thức lớp ứng dụng cho các hệ thống thông tin siêu phương tiện phân tán, cộng tác Là một Internet server làm nhiệm vụ chuyển tiếp thông tin và kiểm sốt Terminal là một text-based interface (giao diện dịng lệnh) cho phép người dùng truy cập trực tiếp vào hệ thống UNIX Là một dạng tường lửa ứng dụng cụ thể để lọc, giám sát và chặn lưu lượng truy cập HTTP đến và đi từ một dịch vụ web Là một lỗi bảo mật cho phép người tấn công chèn các đoạn script nguy hiểm vào trong source code ứng dụng web.
3
DANH MỤC CÁC HÌNH VẼ Hình 1 Sơ đồ hoạt động khi hệ thống bị tấn cơng XSS ................................................................................ 7 Hình 2 Reflect XSS....................................................................................................................................... 9 Hình 3 Stored XSS ...................................................................................................................................... 10 Hình 4 HTML form để thực hiện DOM-XSS ............................................................................................. 12 Hình 5 HTML form phục vụ việc thực hiện tấn công DOM-XSS 2 ........................................................... 13 Hình 6. Kết quả sau khi nhấn Register........................................................................................................ 14 Hình 7 XSSer logo ...................................................................................................................................... 15 Hình 8 Các trình duyệt, WAFs nhà phát triển đề cập ................................................................................. 16
Hình 9 Terminal .......................................................................................................................................... 16 Hình 10 Cài đặt các thư viện cần thiết ........................................................................................................ 17 Hình 11 Giới thiệu XSSer trong terminal ................................................................................................... 18 Hình 12 Giao diện (GUI) của XSSer .......................................................................................................... 19 Hình 13 Giao diện của XSS 2 ....................................................................................................................... 19 Hình 14 Command Help của XSSer ........................................................................................................... 20 Hình 15 Command Help của XSSer 2 ........................................................................................................ 20 Hình 16 Giao diện đồ họa của XSSer ......................................................................................................... 21 Hình 17 Command cơ bản .......................................................................................................................... 21 Hình 18 Kết quả sau khi sử dụng câu lênh trên .......................................................................................... 22 Hình 19 Mục configrure của giao diện đồ hịa XSSer ................................................................................ 23 Hình 20 Trình hỗ trợ người dùng mới ........................................................................................................ 24 Hình 21 Mơ hình khi có Proxy ................................................................................................................... 25 Hình 22 Mục Connection(s) của tab Configure .......................................................................................... 25 Hình 23 Mục checker .................................................................................................................................. 26 Hình 24 Mục Vector ................................................................................................................................... 26 Hình 25 Mục Anti- anti XSS/IDS ............................................................................................................... 27 Hình 26 Mục Bypasser................................................................................................................................ 28 Hình 27 Mục technique ............................................................................................................................... 28 Hình 28 Mục Exploit .................................................................................................................................. 29 Hình 29 Mục Reporting .............................................................................................................................. 29 Hình 30 Commands được tạo sau khi nhấn Aim ........................................................................................ 30 Hình 31 Giao diện trình hướng dẫn ............................................................................................................ 31 Hình 32 Bước đầu tiên trong trình hướng dẫn của XSSer .......................................................................... 31 Hình 33 Bước 2 trong trình hướng dẫn ....................................................................................................... 32 Hình 34 Bước thứ 3 trong trình hướng dẫn................................................................................................. 32 Hình 35 Bước thứ 4 trong trình hướng dẫn................................................................................................. 33 Hình 36 Bước thứ 5 trong trình hướng dẫn................................................................................................. 33 Hình 37 Bước cuối cùng trong trình hướng dẫn ......................................................................................... 34 Hình 38. Kết quả sau test sau khi bấm Start test ......................................................................................... 34
Hình 39 Sử dụng XSSer kiểm tra một trang web......................................................................................... 36 Hình 40 Kết quả sau khi kiểm tra ................................................................................................................ 37 Hình 41 Thực hiện thử chèn script gọi hàm alert........................................................................................ 37 4
Hình 42 Kết quả thực hiện .......................................................................................................................... 38 Hình 43 kết quả trên trình duyệt ................................................................................................................. 38 Hình 44 Giao diện trình hướng dẫn ............................................................................................................ 39 Hình 45 Giao diện trình hướng dẫn ở bước thứ 1 ....................................................................................... 39 Hình 46 Giao diện trình hướng dẫn ở bước thứ 2 ....................................................................................... 40 Hình 47 Giao diện trình hướng dẫn ở bước thứ 3 ....................................................................................... 40 Hình 48 Giao diện trình hướng dẫn ở bước thứ 4 ....................................................................................... 41 Hình 49 Giao diện trình hướng dẫn ở bước thứ 5 ....................................................................................... 41 Hình 50 Kết quả sau khi thực hiện các bước .............................................................................................. 42 Hình 51 Giao diện đồ họa chính ................................................................................................................. 42 Hình 52 chọn hình thức sử dụng và nhập target momg muốn .................................................................... 43 Hình 53 Cấu hình command theo mong muốn ........................................................................................... 43 Hình 54 Chọn aim để tạo command............................................................................................................ 44 Hình 55 Quá trình thực hiện và kết quả ...................................................................................................... 44 Hình 56 Kết quả test ở cơng cụ burp suite .................................................................................................. 45 Hình 57. Kết quả test của cơng cụ Acunetix ............................................................................................... 45 Hình 58 Kết quả test của cơng cụ Acunetix 2 ............................................................................................. 46
5
LỜI MỞ ĐẦU Trong thời đại công nghệ 4.0 bùng nổ, các cơng nghệ về số hóa, chuyển đổi số đa dạng khắp thế giới, đặc biệt trong một nước đang phát triển như Việt Nam. Mọi vấn đề
trong cuộc sống đều được số hóa, giúp giảm chi phí và tăng sự thuận tiện cho người sử dụng. Ứng dụng web được sử dụng khắp mọi nơi, mọi cơ quan từ nhà nước cho đến tư nhân, từ công ty cho đến trường học, nhà hàng cho đến quán ăn đều sử dụng. Nhu cầu tăng lên cao nên rủi ro liên quan đến lỗ hổng trong ứng dụng web ngày tăng cao. Hàng năm thế giới hứng chịu những thiệt hại nặng nề do những cuộc tấn công vào những lỗ hổng. Một tổ chức đã đứng ra nêu tên 10 lỗ hổng thường xảy ra ở ứng dụng web, trong đó có XSS (Cross-site scripting). Đây là một lỗ hổng có mực độ gây thiệt hại lớn, rùi ro cao và là lỗ hỗng xuất hiện nhiều trong các ứng dụng web hiện nay, ngay kể cả Facebook hay Google đều chứa. Do nhu cầu về an toàn ứng dụng web tăng cao, khơng ít những chun viên hay kĩ sư an tồn thơng tin, tổ chức, tập đồn lớn xây dựng và phát triển những cơng cụ hữu ích cho việc tăng cường tính an tồn thơng tin. XSSer là một trong những cơng cụ đó, được tích hợp trong hệ điều hành Kali linux, giúp người dùng có thể kiểm tra một trang web liệu có tồn tại lỗ hổng XSS hay khơng? Bài báo cáo này sẽ nói về lý thuyết cơ bản các dạng của lỗ hổng XSS và công cụ XSSer
6
I.
Giới thiệu chung về XSS và công cụ XSSer
1. Lỗ hổng XSS 1.1. XSS là gì Cross Site Scripting về cơ bản là một lỗ hổng bảo mật của các trang web động nơi kẻ tấn cơng có thể tạo ra một liên kết độc hại để đưa JavaScript thực thi không mong muốn vào một trang Web. Khi nạn nhân nhấp vào liên kết, mã độc sau đó có thể gửi cookie của nạn nhân đến một máy chủ khác hoặc nó có thể sửa đổi trang web bị ảnh hưởng, đưa vào biểu mẫu, để đánh
cắp tên người dùng và mật khẩu cũng như các kỹ thuật lừa đảo khác, thực hiện các thao tác nguy hiểm đến ứng dụng. Các đoạn mã này thậm chí có thể viết lại nội dung của trang HTML
Hình 1 Sơ đồ hoạt động khi hệ thống bị tấn công XSS
và kẻ tấn cơng có thể mã hóa đoạn mã độc để che mắt người dùng http://VulnerableDomain/a.php?variable=%22%3E%3C%73%63%72%69%70%74%3E% 64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3 A%2F%2F%41%74%74%61%63%6B%65%72%73%48%6F%73%74%2F%63%67%69%2D%62%69%6E %2F%63%6F%6F%6B%69%65%2E%63%67%69%3F%20%27%2B%64%6F%63%75%6D%65%6E%74% 2E%63%6F%6F%6B%69%65%3C%2F%73%63%72%69%70%74%3E 7
Kẻ tấn công sử dụng xss để khai thác thường có thể: ❖ Mạo danh hoặc giả dạng người dùng ( nạn nhân): ➢ Như đã nói ở trên, Tội phạm cơng nghệ cao thường sử dụng XSS để đánh cắp cookies. Nó cho phép kẻ tấn công mạo danh nạn nhân trên website họ truy cập. Kẻ tấn cơng có thể gửi cookie tới các máy chủ của họ theo nhiều cách khác nhau ❖ Thực hiện hay thao tác bất kỳ hành động nào mà người dùng (nạn nhân) có thể thực hiện: ➢ Kẻ tấn công đã mạo danh và trở thành một người dùng bình thường như bao người dùng khác, hắn có thể thực hiện hay sử dụng mọi chức năng của ứng dụng mà người dùng (nạn nhân) có thể thực hiện. ❖ Đọc mọi dữ liệu mà người dùng có thể truy cập:
➢ Đây là điều hiển khi kẻ tấn công đã vượt qua được khâu xác thực. Vấn đề bị rị rỉ thơng tin là một điều chắc chắn sẽ xảy ra, gây tổn hại lớn nếu những tài liệu mật như nghiên cứu khoa học, chiến dịch công ty bị tiết lộ ❖ Nắm bắt thông tin đăng nhập của người dùng: ➢ Khi lấy được thông tin đăng nhập của người dùng (nạn nhân), kẻ tấn cơng trở thành người dùng hợp pháp, có thể chiếm đoạt được tài khoản của người dùng(nạn nhân) ❖ Thay đổi giao diện và nội dung của trang web: ➢ Một vấn đề lớn và đáng được lo ngại, nhất là đối với chính phủ của các quốc gia trên thế giới hay các tập đồn lớn có sức ảnh hưởng lớn. Nếu các hackers thay đổi trang web của họ với mục đích chính trị hay tuyên truyền những điều sai trái, điều này sẽ dẫn đến hậu quả khôn lường. ➢ Khi mà kẻ tấn công chiếm được quyền điều khiển bằng cách vượt qua khâu xác thức và phân quyền hay có được thơng tin đăng nhập của những người quản trị, họ hoàn toàn có thể thay đổi nội dung của một trang web một cách dễ dàng ➢ Theo báo cáo, một trong những trang khảo sát của Dịch vụ y tế Quốc Gia Anh đã bị thay đổi nội dung bởi hackers. ❖ Đưa các trojan vào trong trang web ➢ Việc đưa trojan vào, người tấn cơng có thể thu thập được thơng tin để sử dụng cho mục đích xấu mà khơng cần vượt qua khâu xác thực, giống với việc đưa nội gián vào làm gián điệp trong một hệ thống có an ninh cao. Chúng có thể tồn tại nhiều dạng khác nhau như file ảnh, nhạc,.. do kẻ tấn công tải lên 1.2. Phân loại 1.2.1. Reflected XSS
8
Reflected XSS là dạng tấn công thường gặp nhất trong các loại hình XSS. Với Reflected XSS, hacker khơng gửi dữ liệu độc hại lên server nạn nhân, mà gửi trực tiếp
link có chứa mã độc cho người dùng, khi người dùng click vào link này thì trang web sẽ được load chung với các đoạn script độc hại, khi đó, hacker sẽ nhận được respond chứa kết quả mong muốn. Reflected XSS thường dùng để ăn cắp cookie, chiếm session,… của nạn nhân hoăc cài keylogger, trojan … vào máy tính nạn nhân. Reflected XSS cịn được biết đến với tên gọi first-order XSS.
Hình 2 Reflect XSS
Ví dụ về Reflected XSS: Giả sử có một website có tính năng tìm kiếm, và truyền vào tham số URL các cụm từ tìm kiếm của người dùng: />Với URL như trên, ứng dụng web trả về như sau:
You searched for: gift
Giả sử toàn bộ các cụm từ tìm kiếm trên URL khơng được xử lý trước khi thực hiện tìm kiếm, hacker có thể thực hiện 1 cuộc tấn công như sau: />URL này dẫn đến phản hồi của ứng dụng web sau:
You searched for: <script>/* Đoạn mã độc js */</script>
9
Do đó, tồn bộ mã độc trong URL sẽ được thực thi trên phiên làm việc của người dùng, hacker có thể đánh cắp được phiên đăng nhập của người dùng. Đến lúc này, hacker có thể giả mạo với tư cách người dùng và thực hiện mọi quyền trên website mà người dùng có. Reflect XSS chứa nhiều tính nguy hiểm cho trang web. Cụ thể, nếu hacker có thể kiểm sốt một tập lệnh được thực thi trong trình duyệt của nạn nhân, thì hacker có thể xâm phạm tài khoản người dùng đó, Thực hiện bất kỳ hành động nào trên web mà người dùng có thể thực hiện, xem bất kỳ thơng tin nào mà người dùng có thể xem, sửa đổi bất kỳ thơng tin nào mà người dùng có thể sửa đổi. Tiếp tục tấn công lây lan cho những người dùng khác, bắt nguồn từ người dùng nạn nhân ban đầu. Có nhiều cách khác nhau mà hacker có thể khiến người dùng dính bẫy reflected XSS. Chúng bao gồm việc đặt các liên kết trên trang web do hacker kiểm soát hoặc trên một trang web khác cho phép tạo nội dung hoặc bằng cách gửi liên kết trong email, tweet hoặc tin nhắn... Cuộc tấn cơng có thể
được nhắm mục tiêu trực tiếp chống lại một nạn nhân cụ thể hoặc có thể là một cuộc tấn cơng khơng có chủ đích, có thể tấn công bất cứ người dùng nào. 1.2.2. Stored XSS Khác với Reflected tấn công trực tiếp vào một số nạn nhân mà hacker nhắm đến, Stored XSS hướng đến nhiều nạn nhân hơn. Lỗi này xảy ra khi ứng dụng web không kiểm tra kỹ các dữ liệu đầu vào trước khi lưu vào cơ sở dữ liệu (các database, file hay những khu vực khác nhằm lưu trữ dữ liệu của ứng dụng web). Ví dụ như các form góp ý, các comment, bài đăng … trên các trang web. Với kỹ thuật Stored XSS , hacker không khai thác trực tiếp mà phải thực hiện tối thiểu qua 2 bước. Đầu tiên hacker sẽ thông qua các điểm đầu vào (form, input, textarea…) không được kiểm tra kỹ để chèn vào CSDL các đoạn mã nguy hiểm.
Hình 3 Stored XSS
Ví dụ stored XSS: 10
Ví dụ 1: Giả sử một trang web cho phép người dùng gửi nhận xét về các bài đăng trên blog, được hiển thị cho những người dùng khác. Người dùng gửi nhận xét bằng request HTTP như sau: POST /post/comment HTTP/1.1 Host: vulnerable-website.com Content-Length: 100 postId=3&comment=This+post+was+extremely+helpful.&name=Carlos+Montoya&emai l=carlos%40normal-user.net Sau khi nhận xét này được gửi, bất kỳ người dùng nào truy cập vào bài đăng trên blog sẽ nhìn thấy đoạn HTML như sau:
This post was extremely helpful.
Nếu website không thực hiện việc lọc content do người dùng nhập vào, thì hacker có thể tấn cơng website đó bằng cách chèn các đoạn mã độc JS vào phần nhận xét, ví dụ như sau: <script>/* Đoạn mã độc JS*/</script> Đoạn mã này được encoded URL như sau: comment=%3Cscript%3E%2F*%2BBad%2Bstuff%2Bhere...%2B*%2F%3C%2Fscript %3E Khi đó server sẽ trả về response như sau:
<script>/* Đoạn mã độc JS */</script>
1.2.3. DOM XSS Như đã đề cập về 2 kiểu khai thác XSS là Reflected và Stored, chúng đều có đặc điểm chung là các đoạn mã nguy hiểm sau khi được chèn vào sẽ được thực thi sau response của server, có nghĩa là lỗi nằm về phía server. Có một kiểu khai thác XSS khác đi ngược lại với đặc điểm này, mã độc được thực thi ngay khi xử lý phía client mà khơng thơng qua server, được biết đến với cái tên DOM Based XSS hay còn gọi là XSS loại 0. 11
DOM viết tắt của Document Object Model là 1 dạng chuẩn của W3C đưa ra nhằm để truy xuất và thao tác dữ liệu của tài liệu có cấu trúc như HTML, XML. Mơ hình này thể hiện tài liệu dưới dạng cấu trúc cây phân cấp. Tất cả các thành phần trong HTML, XML đều được xem như một node. DOM Based XSS là kỹ thuật khai thác XSS dựa trên việc thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML. Ví dụ như, một web application sử dụng một số code JavaScript để đọc giá trị từ trường đầu vào và ghi giá trị đó vào một phần tử trong HTML: var search = document.getElementById('search').value; var results = document.getElementById('results'); results.innerHTML = 'You searched for: ' + search; Nếu hacker có thể kiểm sốt giá trị của trường đầu vào, chúng có thể dễ dàng tạo ra các
đoạn code độc hại để thực thi: You searched for: <img src=1 onerror='/* Đoạn code cần thực thi... */'>
Một ví dụ khác, một website có URL đến trang đăng ký như sau: example.com/register.php?message=Please fill in the form Khi truy cập đến thì chúng ta thấy một Form rất bình thường
Hình 4 HTML form để thực hiện DOM-XSS
Có thể dễ dàng suy luận tham số message truyền vào nội dung thông báo trên form, xem kỹ source code của đoạn thông báo này
12
Đoạn JavaScript có nhiệm vụ lấy giá trị từ tham số message và in ra. Từ việc kiểm tra đầu vào lỏng lẻo này, hồn tồn có thể lừa người dùng truy cập các URL nguy hiểm. Thay vì truyền message=Please fill in the form thì truyền message=<label>Gender</label><div class="col-sm-4">onchange="java_script_:show()">value="Male">Male</option>value="Female">Female</option></select></div><script>function show(){alert();}</script> Khi đấy Form đăng ký sẽ trở thành thế này:
Hình 5 HTML form phục vụ việc thực hiện tấn công DOM-XSS 2
Người dùng sẽ chẳng chút nghi ngờ với một form “bình thường” như thế này, và khi lựa
chọn giới tính, Script sẽ được thực thi
13
Hình 6. Kết quả sau khi nhấn Register
Cũng có thể thấy, trong kịch bản khai thác thực tế, DOM Based có phần giống với Reflected hơn là Stored XSS khi phải lừa người dùng truy cập vào một URL đã nhúng mã độc. 1.3. Cách tìm và kiểm tra sự tồn tại của lỗ hổng XSS Các phương pháp khả dụng hiện này: -
-
Sử dụng tools quét như: Burp Suite's web vulnerability scanner, OWASP ZAP hay đặc biệt như XSSer sẽ được giới thiệu và tìm hiểu trong bài báo cáo này. Kiểm tra mọi đầu vào do người dùng nhập: Kiểm tra riêng biệt mọi dữ liệu trong các yêu cầu HTTP của ứng dụng web, bao gồm các tham số hoặc dữ liệu trong chuỗi truy vấn URL cũng như đường dẫn URL. Bao gồm cả HTTP headers, mặc dù XSS chỉ có thể được exploit thơng qua một số HTTP headers nhất định và có thể khơng khả thi trong thực tế Test mọi giá trị của tham số, bao gồm các chữ và số ngẫu nhiên Xác định reflection context Kiểm tra XSS payload Kiểm tra payload thay thế Kiểm tra tấn cơng trong trình duyệt
14
2. Tổng quan về công cụ XSSer 2.1. Giới thiệu chung Cross Site “Scripter” (aka XSSer) là một framework tự động phát hiện, khai thác và báo cáo lỗ hổng XSS trong các ứng dụng web. XSSer có một số tùy chọn để cố gắng vượt qua các bộ lọc, và một số kĩ thuật tiêm mã khác nhau (code injection)
Hình 7 XSSer logo
XSSer được phát hành vào năm 2010 bởi epsylon, với phiên bản v1.0 có tên là "The mosquito". Cơng cụ được sự chú ý từ người dùng và được phát triển mạnh mẽ với các phiên bản tiếp theo như v1.5 “Swarn Edition”, v1.6 “Grey Swarm!”, 1.7.2b “ZiKa-47 Swarm!” và đến phiên bản v.1.8.2 “The Hiv3 (beta)!” được ra mắt, Xsser chính thức được chuyển sang Python3. Phiên bản chính thức được ra mắt ngay sau đó là phiên bản v1.8.3 “The Hiv3!” vào ngày 3 tháng 3 năm 2020 XSSer được tác giả giới thiệu là công cụ đã cài đặt sẵn hơn 1300 vector tấn cơng và có thể vượt qua, khai thác trên một số trình duyệt và WAF nổi tiếng như: Chrome, Opera, Imperva WAF
15
Hình 8 Các trình duyệt, WAFs nhà phát triển đề cập
Các tính năng chính của cơng cụ xsser: -
Có khả năng tạo hình ảnh và video với một XSS payload để tải lên ứng dụng web Tìm kiếm XSS implementation sử dụng truy vấn Dorks
Kiểm tra ứng dụng web có bộ lọc XSS hay không Tùy chọn để tạo payload để cố gắng vượt qua hệ thống WAF Phát hiện Blind XSS
2.2. Cài đặt công cụ 2.2.1. Cài đặt cho hệ điều hành Kali Linux Bước 1: Mở terminal
Bước 3: Cài đặt thư viện cần thiết python3-pycurl - Python bindings to libcurl (Python 3) python3-bs4 - error-tolerant HTML parser for Python 3 python3-geoip - Python3 bindings for the GeoIP IP-to-country resolver library python3-gi - Python 3 bindings for gobject-introspection libraries python3-cairocffi - cffi-based cairo bindings for Python (Python3) python3-selenium - Python3 bindings for Selenium sudo pip3 install pycurl bs4 pygeoip gobject cairocffi selenium Gõ câu lệnh dưới đây vào terminal: sudo pip3 install pycurl bs4 pygeoip gobject cairocffi selenium
Hình 10 Cài đặt các thư viện cần thiết
2.2.2. Cài đặt cho các hệ điều hành khác (bao gồm cả kali)
Bước 1: Bật terminal Bước 2: Nhập vào terminal lần lượt các câu lệnh sau:
17
wget /> tar xf xsser_1.8-3.tar.gz
cd xsser
sudo python setup.py install
./xsser -h ./xsser --gtk (for gui)
Bước 3: Cài đặt các thư viện cần thiết ở mục 2.2.1 nói tới Sau khi cài đặt cơng cụ, đây là giao diện của XSSER
Hình 11 Giới thiệu XSSer trong terminal
18
Hình 12 Giao diện (GUI) của XSSer
Hình 13 Giao diện của XSS 2
19
II.
Chi tiết về công cụ XSSer
1. Sử dụng command của công cụ Để gọi lệnh trợ giúp, nhập xsser -h hoặc xsser --help
Hình 14 Command Help của XSSer
Hình 15 Command Help của XSSer 2
20
Câu lệnh xsser --update sẽ cập nhật công cụ lên phiên bản mới nhất. Để có thể sử dụng giao diện, nhập câu lệnh xsser --gtk
Hình 16 Giao diện đồ họa của XSSer
Để kiểm thử ứng dụng web có tồn tại lỗ hổng XSS, sử dụng lệnh cơ bản dưới đây: # xsser -u "" -g "/search.php?q=xsstest" # xsser -u " -p "login=XSSTest&password=123456789&Submit"
-
-u : URL công cụ sẽ kiểm tra -g/-p: Tham số cho các GET và POST request, cho biết vị trị triển khai payload
Hình 17 Command cơ bản
21
Kết quả thu được sau khi thực hiện test:
Hình 18 Kết quả sau khi sử dụng câu lênh trên
22
Các tùy chọn để thay đổi/định cấu hình command: -
--crawler: Tìm kiếm tất cả các trang của ứng dụng web để phân tích thêm --cookie: Thay đổi cookie trong http header --user-agent: Thay đổi user-agent HTTP header --referer: dùng HTTP referer header khác --header: Thêm header mới --payload: Sử dụng 1 số payload nhất định để test. Có thể sử dụng --auto để tự động tạo. --checkaurl: Kiểm tra reponse bằng các sử dụng 1 URL khác. Để kiểm tra blind XSS, bắt buộc phải sử dụng tham số này
2. Sử dụng giao diện (GUI) Để sử dụng giao diện, gõ lệnh xsser --gtk như đã hướng dẫn ở trên để sử dụng giao diện. Chương trình được hiện lên, có giao diện dễ sử dụng, có thể cấu hình các truy vấn để thực hiện test tương tự như phiên bản console. Giao diện giúp cho người kiểm thử thuận tiện hơn trong việc sử dụng, tránh nhầm lẫn khi câu lệnh quá dài và phực tạp
Có 2 lựa chọn để tạo các truy vấn trong GUI, giống như phiên bản console: -
Normal mode: người dùng chọn các tham số để tạo request
Hình 19 Mục configrure của giao diện đồ hòa XSSer
23
-
Trình hướng dẫn (The setup wizard): Là một trình hướng dẫn, nơi bạn có thể chọn các thơng số như: phương thức để gửi request, phương pháp tạo payloads (cụ thể hoặc tạo tự động),…
Hình 20 Trình hỗ trợ người dùng mới
2.1. Chế độ normal Khi sử dụng chế độ giao diện, cửa sổ của cơng cụ hiện lên, có vị trí để nhập để nhập URL, lựa chọn sử dụng các trang công cụ tìm kiếm(google, duckduckgo, yahoo), crawler, hay Tor proxy để ẩn danh. Giao diện còn gồm các cài đặt khác trong tab Configure: 2.1.1. Connection Connection là thành phần chính tạo nên request. Phần này gồm có các tham số sau: -
Phương thức Request (GET và POST) Proxy: là một máy chủ hoạt động như một "trạm trung chuyển" giữa người dùng và Internet. Lưu lượng truy cập Internet sẽ đi qua máy chủ proxy rồi mới đi đến
địa chỉ người dùng yêu cầu. Dữ liệu phản hồi lại sẽ đi qua máy chủ proxy đó và đi đến người dùng.
24
Hình 21 Mơ hình khi có Proxy
-
Thay đổi User-Agent, Cookie, Referer, tiêu đề (Headers) (thêm headers mới); Bạn có thể lựa chọn các tùy chọn để bỏ qua tiêu đề với tham số drop-cookie, chuyển hướng với follow-redirect, HTTP authentication
Hình 22 Mục Connection(s) của tab Configure
2.1.2. Checker
Kiểm tra tình trạng của máy chủ và cấu hình kiểm tra Blind XSS - HEAD checker: Gửi một yêu cầu trước khi test để kiểm tra xem máy chủ có cịn hoạt động và phản hồi các yêu cầu không, đợi phản hồi từ máy chủ với mã 200 hoặc 300 - Blind XSS URL: thay thế URL để kiểm tra Blind XSS - Blind XSS payload: thay thế payload để kiểm tra Blind XSS - Reverse checker: tùy chọn thiết lập một reverse connection với XSSer để xác nhận lỗ hổng - Discard Checker: Cài đặt mã phản hồi (the response code) từ ứng dụng web để ngăn chặn các cuộc tấn công 25