1. Trang chủ
  2. » Tất cả

Xây dựng hệ thống kiểm thử bảo mật website dựa trên kỹ thuật fuzzing

68 2,9K 24

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 2,21 MB

Nội dung

Xin nói qua về kỹ thuật này: “Fuzzing là một kỹ thuật phát hiện lỗi của phần mềm bằng cách cung cấp dữ liệu đầu vào cho chương trình các dữ liệu không hợp lệ, dữ liệu không mong đợi, sau

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

FUZZING

Sinh viên thực hiện:

Giáo viên hướng dẫn: TS Cao Tuấn Dũng

HÀ NỘI 2-2014

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới các thầy cô trong trườngĐại học Bách Khoa Hà Nội cùng các thầy cô trong Viện Công nghệ Thông tin vàTruyền thông đã truyền dạy cho em những kiến thức bổ ích trong suốt những nămqua

Em xin gửi lời cảm ơn tới thầy giáo, TS Cao Tuấn Dũng - Giảng viên, Trưởng Bộmôn Công nghệ phần mềm – người đã trực tiếp hướng dẫn và định hướng cho emthực hiện đề tài của mình

Em xin chân thành cảm ơn tập thể anh chị em trong công ty BKAV, gia đình thứ haicủa em, đã tạo điều kiện thuận lợi và môi trường bổ ích cho em thực tập để phát huyđam mê của mình, cũng như đã chia sẻ cho em nhiều kinh nghiệm, kiến thức quýbáu trong quá trình làm việc

Em cũng xin gửi lời cảm ơn tới tập thể lớp CNTT1-K54, các bạn đã cho em mộtmôi trường học tập lành mạnh, và những món quà tinh thần vô giá

Cuối cùng em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã quan tâm, độngviên, đóng góp ý kiến và giúp đỡ em trong suốt quá trình học tập, và thực hiện đồ

án tốt nghiệp này

Hà Nội, tháng 01 năm 2014

Trang 3

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên:

Họ và tên sinh viên:

Đồ án tốt nghiệp được thực hiện tại: Bộ môn Công Nghệ Phần Mềm, Viện Công NghệThông Tin và Truyền Thông, Đại học Bách Khoa Hà Nội

Thời gian làm ĐATN: Từ 9/2013 đến 12/2013

2 Mục đích nội dung của ĐATN:

- Tìm hiểu và phân loại các loại lỗ hổng trên hệ thống các website, cổng thông tinđiện từ, … có thể bị lợi dụng để tấn công hệ thống

- Tìm hiểu về kỹ thuật fuzzing trong kiểm thử website

- Tìm hiểu và thu thập các bộ fuzzing data phục vụ cho các

- Xây dựng hệ thống kiểm thử tự động dựa trên kỹ thuật fuzzing

3 Các nhiệm vụ cụ thể của ĐATN:

- Định nghĩa các loại tấn công một hệ thống website, cổng thông tin điện từ Cáchthức phát hiện tự động các loại lỗ hổng của hệ thống

- Tìm hiểu và thu thập các bộ fuzz phục vụ cho từng loại tấn công cụ thể

- Thiết kế dữ liệu fuzzing data dựa trên các tri thức thu được từ việc thu thập thôngtin của hệ thống

- Phân tích thiết kế hệ thống

- Xây dựng hệ thống kiểm thử tự động

4 Lời cam đoan của sinh viên:

Tôi cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Cao Tuấn Dũng.

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳcông trình nào khác

Hà Nội, ngày tháng năm

Tác giả ĐATN

5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảovệ:

Hà Nội, ngày tháng năm

Giáo viên hướng dẫn

TS Cao Tuấn Dũng

Trang 4

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Nhắc lại về tên đề tài: “Xây dựng hệ thống kiểm thử website dựa trên kỹ thuật

fuzzing” Xin nói qua về kỹ thuật này: “Fuzzing là một kỹ thuật phát hiện lỗi của phần mềm bằng cách cung cấp dữ liệu đầu vào cho chương trình (các dữ liệu không hợp lệ, dữ liệu không mong đợi), sau đó theo dõi và ghi lại các lỗi, các kết quả trả

về của ứng dụng trong quá trình xử lý của chương trình”

Thành quả nghiên cứu sẽ được hiện thực hóa trong một dịch vụ quét lỗ hổng bảomật, tương tác với người dùng qua giao diện website Hệ thống cung cấp chức năngphân loại các URL và phân loại bộ fuzz theo các thông tin cung cấp và thu thậpđược sẽ làm giảm thời gian và tài nguyên xử lý của hệ thống

Những mục tiêu cần đặt ra khi xây dựng hệ thống:

 Phát hiện tốt các lỗi SQLi, Blind SQLi, XSS, File Inclusion, Xpath Injection,các lỗi về việc cấu hình mặc định (bao gồm đường dẫn và tài khoản sửdụng)

 Xây dựng hệ thống fuzzing riêng cho từng loại lỗ hổng

(SAAS).

 Dễ dàng tích hợp các công cụ, các module phát hiện mới vào hệ thống

 Xây dựng hệ thống giao tiếp với người sử dụng qua giao diện web

Sau cùng là kết quả chạy thử nghiệm hệ thống và đánh giá việc phát hiện các lỗhổng bảo mật của một số website so với các công cụ khác và định hướng phát triểntrong tương lai cho sản phẩm Cung cấp được một sản phẩm dịch vụ miễn phí chongười sử dụng

Môi trường thực hiện đồ án tốt nghiệp:

 Bộ môn Công nghệ phần mềm, Viện Công nghệ Thông tin và Truyền thông,Trường Đại học Bách Khoa Hà Nội

 Công ty Cổ phần An ninh mạng BKAV, HH1 Building , Dương Đình Nghệ,Cầu Giấy, Hà Nội

Trang 5

MỤC LỤC

LỜI CẢM ƠN 2

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 3

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4

MỤC LỤC 5

PHẦN I: ĐẶT VẤN ĐỀ 7

I ĐẶT VẤN ĐỀ 8

II GIẢI PHÁP ĐẢM BẢO AN TOÀN HỆ THỐNG WEBSITE 8

1 Đánh giá các sản phẩm quét lỗ hổng bảo mật hiện có trên thị trường 8

2 Đề xuất giải pháp xây dựng Web Fuzzing Scanner 9

III NHIỆM VỤ CỦA ĐỀ TÀI 9

PHẦN II: CƠ SỞ LÝ THUYẾT 11

I TỔNG QUAN VỀ HỆ THỐNG WEBSITE 12

II TỔNG QUAN VỀ LỖ HỔNG HỆ THỐNG WEBSITE 13

1 Lỗ hổng Injection (SQL Injection, Xpath injection, … ) 15

2 Lỗ hổng Cross Site Scripting 17

3 Lỗ hổng Directory Listing 20

4 Lỗ hổng File Inclusion 20

5 Các lỗ hổng do cấu hình mặc định 20

III CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM 20

1 Kiểm thử hộp đen 20

2 Kiểm thử hộp trắng 21

3 Kiểm thử hộp xám 21

IV KỸ THUẬT FUZZING 22

1 Khái niệm 22

2 Lịch sử của Fuzzing 22

3 Phân loại các kỹ thuật fuzzing 23

4 Fuzzing ứng dụng web 24

PHẦN III: XÂY DỰNG HỆ THỐNG 25

I CÁC GIẢI PHÁP XÂY DỰNG HỆ THỐNG 25

1 Mô hình cài đặt hệ thống 25

2 Lựa chọn công nghệ 26

3 Cơ chế thu thập dữ liệu ( Collector) 27

4 Cơ chế phát hiện lỗ hổng dựa trên kỹ thuật fuzzing 33

5 Cơ chế tích hợp các công cụ quét lỗ hổng bảo mật khác 37

II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 37

Trang 6

1 Khảo sát yêu cầu người dùng 37

2 Nhận dạng và đặc tả các ca sử dụng (Use Case) 38

3 Mô hình tương tác giữa các thành phần 42

4 Phân tích và thiết kế chi tiết 42

PHẦN IV: ĐÁNH GIÁ 48

DANH MỤC HÌNH 49

DANH MỤC BẢNG BIỂU 50

DANH SÁCH CÁC TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ 51

TÀI LIỆU THAM KHẢO 53

Trang 7

PHẦN I: ĐẶT VẤN ĐỀ

Nội dung chính

 Đặt vấn đề

 Giải pháp đảm bảo an toàn cho hệ thống website

 Nhiệm vụ của đề tài

Trang 8

I ĐẶT VẤN ĐỀ

Trong thời buổi Internet ngày càng phát triển như hiện nay, việc liên hệ thư từ, traođổi thông tin, báo chí cũng phát triển không ngừng Thay cho các phương thứchoạt động truyền thống, việc ứng dụng hiệu quả của Internet đến nhiều lĩnh vựctrong đời sống của con người đã cho thấy hiệu quả tối ưu của Internet Sự thay đổinày đã lấn sâu vào nhiều lĩnh vực: kinh tế, văn hóa, tôn giáo, chính trị, giải trí Phần lớn các hoạt động này đều thông qua các website, các website như sợi dây kếtnối giữa cộng đồng mạng với nhau Sử dụng website mọi người có thể liên hệ, traođổi, chia sẽ với nhau một cách nhanh chóng và hiệu quả Đặc biệt ngày nay, hìnhthức thanh toán trực tuyến thông qua website đang ngày càng trở nên phổ biến Vìthế, dễ hiểu khi các website đã trở thành mục tiêu tấn công ưa thích của tin tặc.Tại Việt Nam, đại diện mảng an ninh mạng công ty an ninh mạng Bkav, ông Ngô

Tuấn Anh phát biểu: “Trong năm 2013 đã có gần 5.000 hệ thống website của các cơ

quan doanh nghiệp tại Việt Nam bị tin tặc tấn công Chủ yếu thông qua các lỗ hổng

về mạng và cấu hình hệ thống So với năm 2012 (có 2.203 website bị tấn công), con

số này đã tăng lên gấp đôi.” – Nguồn http://bkav.com.vn.

Từ thực trạng trên cho thấy, an ninh mạng vẫn chưa thực sự được quan tâm tại các

cơ quan, doanh nghiệp Cũng theo nhận định của các chuyên gia Công ty ANMBkav, hầu hết cơ quan doanh nghiệp của Việt Nam chưa bố trí được nhân sự phụtrách an ninh mạng hoặc năng lực và nhận thức của đội ngũ này chưa tương xứngvới tình hình thực tế Đó là những nguyên nhân chính Chưa có một sản phẩm hayqui trình tiên tiến nào hỗ trợ cho những người quản trị hệ thống phát hiện và ngănchặn sớm những lỗ hổng đang tồn tại trên hệ thống

Từ tình hình trên ta thấy cần thiết có một giải pháp kiểm thử an toàn bảo mật chomỗi hệ thống website trước khi đưa vào sử dụng Nhằm phát hiện và cảnh báo đượccác lỗ hổng trên hệ thống website một cách chính xác Các lỗ hổng do lỗi của ngườilập trình hệ thống: SQL Injection, Code Injection, Cross Site Scripting, URLRedirect… Các lỗi do việc cấu hình hệ thống không an toàn như để đường dẫn vàotrang quản trị hệ thống là mặc định, tài khoản mặc định…

Các sản phẩm tương tự được chia làm 2 nhóm chính Nhóm sản phẩm chạy dướidạng Desktop Application như: Acunetix, IBM AppScan, W3af… và nhóm sảnphẩm chạy dưới mô hình SAAS - Software As A Service (webscan.bkav.com,webscan.com…)

So sánh 2 nhóm sản phẩm

Trang 9

Desktop Application Software As A Service

+ Thời gian thực hiện tốn rất nhiều tài

nguyên và thời gian

+ Không Real time+ Có thể kiểm soát tốt hơn người dùng

hệ thống

+ Việc nâng cấp trở nên đơn giản hơn.+ Đòi hỏi hạ tầng, về tài nguyên rất lớn.+ Thời gian phụ thuộc vào tài nguyên

Xây dựng hệ thống Web Fuzzing Scanner theo hướng dịch vụ SAAS, có phần corefuzzing được tối ưu Hạn chế được các điểm yếu tồn tại trong các sản phẩm hiện tạinhư:

- Sử dụng thêm các tri thức thu được trong quá trình “gathering information”trong việc thiết kế các dữ liệu fuzz cho hệ thống nhằm giảm các trường hợpcần kiểm tra

- Loại bỏ được các URL không cần thiết Hạn chế tối thiểu các request cần gửitới hệ thống

Xuất phát từ các nhu cầu thực tế kể trên và công việc tại Công ty An ninh mạng

Bkav, tôi chọn đề tài “Xây dựng hệ thống kiểm thử bảo mật website dựa trên kỹ

thuật fuzzing” cho đồ án tốt nghiệp của mình Đối tượng chính mà hệ thống hướng

Trang 10

đến là các quản trị viên, những người trực tiếp quản lý và theo dõi tình hình hoạtđộng các website của mình Hệ thống sẽ trợ giúp họ phát hiện nhanh các lỗ hổngđang tồn tại trên hệ thống để có những phương án khắc phục kịp thời

Đồ án bao gồm các thành phần chính như sau:

PHẦN I: Đặt vấn đề và định hướng giải pháp

 Đặt vấn đề

 Giải pháp an toàn cho hệ thống website

 Nhiệm vụ của đề tài

PHẦN II: CƠ SỞ LÝ THUYẾT

Trang 11

PHẦN II: CƠ SỞ LÝ THUYẾT

Trang 12

I TỔNG QUAN VỀ HỆ THỐNG WEBSITE

Với sự phát triển mạnh mẽ của Internet như hiện nay, các ứng dụng web ngày càngtrở nên phổ biến và hiện hữu ở khắp mọi nơi trên thế giới Ứng dụng web là một hệthống hoạt động theo mô hình Client - Server và sử dụng giao thức HTTP (hoặc

HTTPS) để tương tác giữa hai thành phần chủ yếu là trình duyệt - Browser (Client)

và Web Server (Server).

Mô hình hoạt động của một hệ thống web truyền thống

Hình 1: Mô hình hoạt động của một ứng dụng Web

Trình duyệt web (client) sẽ gửi các HTTP Request tới web server Web server sẽphân tích các yêu cầu và gọi đến các chương trình và trả lại kết quả cho trình duyệt.Các chương trình có thể được xây dựng trên nhiều ngôn ngữ như PHP, ASP, JSP…Tùy vào các tác vụ được cài đặt mà nó xử lý, tính toán, tương tác với cơ sở dữ liệu(CSDL)… Từ đó trả kết quả về trình duyệt gói tin HTTP Response Trình duyệt sẽphân tích gói tin này và hiển thị thông tin cho người dùng

Nếu một website hoạt động theo mô hình trên sẽ có rất nhiều điểu yếu mà tin tặc cóthể lợi dụng để tấn công

Trang 13

Hình 2: Các nguy cơ của một hệ thống website

Tin tặc có thể tấn công vào các thành phần của hệ thống như:

- Tấn công vào người dùng của hệ thống, cướp tài khoản người dùng

- Tấn công vào quá trình truyền nhận dữ liệu giữa client và server Tin tặc cóthể nghe lén và lấy thông tin của hệ thống

- Tấn công vào webserver, các dịch vụ trên web server, chiếm quyền điềukhiển toàn bộ hệ thống

- Tấn công vào CSDL của hệ thống, thêm sửa xóa CSDL

Trong những năm gần đây, website được phát triển với tốc độ rất nhanh tại ViệtNam nhưng thực tế những quản trị viên vẫn chưa quan tâm đúng mức về vấn đề bảomật mà chỉ chú trọng vào hình thức và nội dung của website, do vậy có rất nhiềutrường hợp website bị tấn công hay mất dữ liệu vì những lỗi bảo mật rất phổ biến.Những lỗi bảo mật này có thể xuất phát từ những sai sót ngay từ trong các khâuthiết kế, lập trình hoặc triển khai hệ thống website

Lỗ hổng website là những điểm yếu của hệ thống website mà tin tặc có thể lợi dụng

để khai thác nhằm thu thập thông tin về hệ thống, tấn công lấy cắp thông tin, tấncông vào người dùng hệ thống hay tấn công chiếm quyền điều khiển hệ thống

Lỗ hổng website có thể có nhiều nguyên nhân, tuy nhiên chủ yếu là do 3 nguyênnhân sau:

- Lỗi do sự yếu kém và chưa có khái niệm về lập trình an toàn của người lậptrình, phát triển ứng dụng Không kiểm soát chặt chẽ các đầu vào từ người

Trang 14

dùng, tin tặc có thể lợi dụng để khai thác và tấn công hệ thống, người dùng

hệ thống

- Lỗi do việc cấu hình hệ thống yếu, cấu hình hệ thống mặc định, tài khoản hệthống mặc định, do sử dụng các dịch vụ, nền tảng mà không cập nhật phiểnbản mới, bản vá…

- Lỗi nằm trong các giao thức, các nền tảng hay chuẩn xây dựng hệ thống đãđược công khai

Lỗ hổng website có thể phân thành một số loại chính như:

 Injection: Các lỗ hổng cho phép tin tặc chèn những script để thực thi như

SQL Injection, XPath Injection, System Command Injection, LDAPInjection

 Client Side: Các lỗ hổng tấn công vào client Ví dụ như Cross Site Scripting

(XSS), Cross-site Request Forgery (CSRF)

 Parameter Manipulation: Các lỗ hổng như Cookie Manipulation, HTTP

Form Field Manipulation…

 Misconfiguration: Các lỗ hổng thuộc về cấu hình hệ thống chưa an toàn

 Information Disclosure: Các lỗ hổng cung cấp các thông tin của hệ thống,

tin tặc có thể lợi dụng cho những cuộc tấn công tiếp theo Ví dụ như: PathTraversal, Predict Resource Location, Directory Listing

A1 – InjectionA2 – Broken Authentication and Session Management

A3 – Cross Site Scripting (XSS)A4 – Insecure Direct Object References

A5 – Security MisconfigurationA6 – Sensitive Data ExposureA7 – Missing Funtion Level Access Control

A8 – Cross Site Request ForgeryA9 – Using Known Vulnerable Components

Trang 15

A10 – Unvalidated Redirects and Forwards

Bảng 2: Top 10 lỗ hổng phổ biến nhất năm 2013 (Nguồn OSWAP)

Mỗi lỗ hổng bảo mật sẽ có cách khai thác và phát hiện khác nhau Chúng ta sẽ cùng

đi vào một số lỗ hổng chính để thấy và hiểu rõ hơn về từng lỗ hổng và đưa ra nhữngbiện pháp để phát hiện, khắc phục và phòng tránh các lỗ hổng đang tồn tại trên hệthống

1.1 Khái quát

Lỗ hổng injection là loại lỗ hổng liên quan tới việc thao tác với CSDL, bao gồm các

hệ quản trị CSDL quan hệ (Mysql, MSSQL, Oracle…), các dữ liệu XML… Nguyênnhân chủ yếu là do người lập trình không kiểm duyệt hoặc có kiểm duyệt chưa tốt

dữ liệu nhập vào, tin tặc dễ dàng có thể vượt qua để chèn các câu lệnh truy vấn nhưSQL, XQuery…, khi chèn thành công tin tặc có thể đọc, thêm sửa, xóa thông tintrong CSDL của hệ thống

Về mặt lý thuyết, lỗ hổng injection tưởng chừng rất đơn giản nhưng đây là mộttrong những loại tấn công phổ biến và nguy hiểm nhất hiện nay Dựa vào các lỗiInjection, tin tặc có thể thao tác trực tiếp CSDL của hệ thống, đọc tệp tin, ghi tệp tinnhằm tạo backdoor và chiếm quyền điều khiển hệ thống

Trang 16

Hệ thống không có quá trình kiểm duyệt dữ liệu ID từ người dùng.

Trong trường hợp này ta thấy, nếu người dùng gửi đường dẫn có giá trị id = x thì

kết quả trả về của hệ thống sẽ hoàn toàn bình thường

Nhìn kỹ đoạn mã PHP xử lý ta thấy biến $id được đưa ngay vào câu truy vấn mà

không được kiểm duyệt trước, tin tặc hoàn toàn có thể chèn một số mã độc để lấy

thông tin về hệ thống Chẳng hạn, thay vì gửi giá trị id = 1 tin tặc sẽ gửi giá trị id =

SELECT * FROM users WHERE userID=1 or 1=1

-Rõ ràng với điều kiện WHERE userID = -1 thì CSDL sẽ không trả về bản ghi nào trả về Tuy nhiên, do đoạn mã or 1=1 - đã được tin tặc chèn vào Nên điều kiện

sau WHERE sẽ trở nên luôn đúng và kết quả là CSDL sẽ trả về tất cả các bản ghi có

trong bảng users

Bằng những cách thức nâng cao khác, tin tặc hoàn toàn có thể chèn các đoạn mãnguy hiểm hơn để lấy toàn bộ thông tin về hệ thống, đọc ghi tệp tin bằng các hàmtrong CSDL như: outfile, load_file (MySQL), execute (MSSQL) lên hệ thống từ đóhình thành những backdoor và sau cùng là chiếm quyền điều khiển toàn bộ hệthống

Với kiểu tấn công Xpath Injection ta cũng có thể khai thác hoàn toàn tương tự.Mức độ nguy hiểm của SQL/Xpath Injection là rất cao bởi vì nó tác động trực tiếpđến CSDL: ăn cắp thông tin người dùng, thay đổi làm sai lệch các thông tin quantrọng, thêm sửa xóa CSDL… Rõ ràng, với một hệ thống website đặc biệt là các hệthống có liên quan đến tài chính như ngân hàng, thì việc thông tin bị đánh cắp haythay đổi sẽ gây những thiệt hại vô cùng lớn

1.3 Cơ chế phát hiện

Tương tự như quá trình khai thác một lỗi SQL chúng ta cũng có thể phát hiện tựđộng các hệ thống có ẩn chứa những mối nguy hiểm như vậy Có thể phát hiện cáclỗi SQL/Xpath Injection bằng 4 phương pháp chính:

- Dựa trên các thông báo lỗi từ hệ thống, từ CSDL của hệ thống

Trang 17

- Dựa trên kỹ thuật boolean based (kiểm tra kết quả khác nhau của các câu

truy vấn khác nhau, ví dụ như khi chèn or 1=1 và or 1=2).

- Dựa trên kỹ thuật nối câu truy vấn (UNION query)

- Dựa trên kỹ thuật timebased: sử dụng các hàm thao tác với thời gian trong hệquản trị CSDL và kiểm tra timeout của kết quả trả về

Ta cần thiết kế bộ dữ liệu fuzzing dựa trên các kỹ thuật phát hiện này Ví dụ một bộ

dữ liệu fuzz cho lỗi SQL Injection dựa trên các thông báo lỗi của hệ thống:

Bộ dữ liệu fuzz khi phát hiện dựa trên các thông báo lỗi từ hệ thống

a valid MySQL result resource in

argument is not a valid PostgreSQL result|Syntax error in queryexpression|The error occurred in|Unterminated string constant|invalid query|is not allowed to access

Microsoft OLE DB Provider for ODBC Drivers[\S\s]*error

Lỗ hổng SQL Injection/Xpath Injection xảy ra khi có kết hợp cả 2 điều kiện:

- Có sự truy vấn tới CSDL

- Câu truy vấn chưa được kiểm soát sự an toàn

Có thể khẳng định chắc chắn rằng, một biến được nhập vào từ người dùng, quanhiều bước xử lý trung gian xây dựng câu truy vấn tới CSDL mà không có bất cứbước kiểm tra sự an toàn nào thì chắc chắn sẽ mắc các lỗ hổng Injection Đây cũng

Trang 18

chính là điểm mấu chốt để nhận diện và phòng chống các lỗ hổng Injection Phươngpháp hữu hiệu nhất để chống tấn công SQL/Xpath Injection là kiểm soát thật chặtchẽ các giá trị nhập được nhập vào từ người dùng

2.1 Khái quát

Cross-site Scripting (XSS) là lỗ hổng cho phép tin tặc có thể chèn những đoạn mãclient-script (thường là Javascript, JScript, DHTML và cũng có thể là cả các thẻHTML) vào trang web, khi người dùng vào những trên web này, mã độc sẽ đượcthực thi trên máy của người dùng và thực hiện các mục đích mà kẻ tin tặc mongmuốn

Khác với SQL Injection tấn công vào CSDL của website, XSS tấn công trực tiếpvào người dùng Lợi dụng lỗi XSS này, tin tặc có thể:

- Lừa đảo người quản trị của website, lấy cắp cookie, chiếm session… từ đó

có thể đăng nhập chiếm quyền điều khiển website

- Thực thi các mã độc javascript tùy ý nhằm tấn công vào người dùng

- Phát tán các thông tin xấu lên hệ thống

Hiện nay, kĩ thuật tấn công XSS đã nhanh chóng trở thành một trong những lỗ hổngphổ biến nhất của các ứng dụng web Mối đe doạ của chúng đối với người sử dụngngày càng lớn

Trang 19

Hình 3: Minh họa lỗi Cross Site Scsripting.

Nếu như thay vì chỉ hiển thị cookie của hệ thống, tin tặc có thể sử dụng một hàmgửi mail hay một hàm trong javascript để gửi thông tin về cookie của người dùng vềcho tin tặc thì tin tặc hoàn toàn có thể đăng nhập vào tài khoản của người dùng bằngcách set giá trị cookie nhận được vào trình duyệt của tin tặc Tin tặc sẽ có đủ cácquyền như người dùng khi đăng nhập vào hệ thống Cũng với lỗi này tin tặc cũng cóthể chèn các đoạn virus javascript, cài đặt add-on, download mã độc, … vào trìnhduyệt và máy của của người dùng

- Hàm htmlentities() – trong ngôn ngữ PHP

Trang 20

- Hàm htmlEncode() – trong ngôn ngữ C#

3.2 Minh họa

Dưới đây là một ví dụ về lỗi Directory Listing

Hình 4: Minh họa lỗi Directory Listing

3.3 Phát hiện

Để phát hiện lỗi trên hệ thống ta thực hiện việc truy cập vào các thư mục của hệthống, cụ thể truy cập vào các URL kết thúc bằng dấu “/” Và kiểm tra sự xuất hiệncủa một số lỗi trả về từ hệ thống Trong mã html trả có chứa từ “index of” hoặc

“parent directory”… thì đồng nghĩa với việc hệ thống tồn tại lỗi Directory Listing

Trang 21

3.4 Phòng chống

Để phòng chống lỗi Directory Listing cũng hết sức đơn giản, chúng ta có thể thựchiện bằng một trong các phương pháp sau

- Thêm tệp tin mặc định vào các thư mục (index, default…)

- Thêm một số tệp tin cấu hình như htaccess trong Apache để hạn chế

- Cấu hình từ các WebServer (IIS, Apache…)

- Cấu hình phân quyền cấp người dùng khi truy cập vào các thư mục đó

4.1 Khái quát

Lỗ hổng File Inclusion là loại lỗ hổng xảy ra khi hệ thống thực hiện việc thao tácvới tệp tin Khi hệ thống không có quá trình kiểm duyệt đoạn mã chèn vào chặt chẽ,tin tặc có thể lấy các giá trị của các biến Post, Get, Headers từ người dùng gửi lên

để thao tác với CSDL Bằng việc khai thác lỗ hổng này tin tặc có thể thực hiện việctải các backdoor lên hệ thống và đọc các tệp tin của hệ thống…

File Inclusion được chia làm 2 loại chính là:

- Local File Inclusion: Thực hiện khi các tệp tin mà hệ thống thao tác là cáctệp tin của local và không cho phép việc chèn vào hệ thống các đoạn mã

- Remote File Inclusion: Cho phép việc chèn các đoạn mã từ một hệ thống từ

xa và thực hiện trên web server

4.2 Minh hoạ

Với một chương trình có dạng:

URL http://fuzzing.vn:8001/vulns/LFI/?color=blue.php

if ( isset ( $_ GET [ 'color' ] ) ){

}

include ( $color );

?>

hiện việc hàm include file đó vào ứng dụng Trong trường hợp này

là blue.php, red.php và green.php để hiển thị các dòng chữ có màulam, đỏ và màu lục tương ứng

Trang 22

Tuy nhiên thay vì để mặc định các giá trị là “green.php”, “red.php” hay “blue.php”tin tặc hoàn toàn có thể nhập vào giá trị bất thường nhằm đọc các thông tin từ hệthống Ví dụ việc đọc tệp tin cấu hình của apache server

http://fuzzing.vn:8001/vulns/LFI/?color= / / /apache/conf/httpd.conf khi đó hệ

thống sẽ đọc tệp tin httpd.conf của hệ thống Do cấu trúc “ /” trong các hệ điều

hành là để quay lại thư mục cha của ứng dụng, kẻ tấn công có thể lái việc đọc vàocác tệp tin tương ứng

Hình 5: Minh họa lỗi Local File Inclusion

Khi khai thác lỗi này thành công, tin tặc có thể thực hiện đọc các tệp tin cấu hình hệthống, hoặc có thể đọc các tệp tin quan trọng khác như: /etc/passwd, /etc/shadow…Tuy nhiên tin tặc cũng có thể chèn vào một đường dẫn đến những đoạn mã nguyhiểm khác và thực hiện include vào hệ thống (nếu như hệ thống cho phép việcinclude remote file) Như vậy tin tặc không chỉ là đọc nữa mà hoàn toàn có thể thựcthi các đoạn mã đó trên hệ thống và tạo ra các backdoor hay tải các webshell lênserver và chiếm quyền điều khiển hoàn toàn web server

Trang 23

Hình 6: Minh họa lỗi Remote File Inclusion (Tin tặc có thể tải giao diện của google

5.1 Khái quát

Là những lỗi về cấu hình đường dẫn mặc định của hệ thống, không cấu hình hạnchế truy nhập, hay những đường dẫn mà để mật khẩu truy cập là mặc định Nhưđường dẫn đến trang quản trị, đường dẫn đến tệp tin cấu hình hệ thống…

5.2 Minh họa

hệ thống các dự án đã triển khai trên hệ thống

Trang 24

Khi ta truy nhập vào đường dẫn, hệ thống đã có bước yêu cầu xác thực tài khoản vàmật khẩu Tuy nhiên “username/password” lại được đặt mặc định là: admin/admin.

Hình 7: Minh họa cho lỗi để cấu hình mặc định

Với lỗi hổng trên ta có thể thực hiện việc đưa backdoor lên hệ thống, undeploy hoặcloại bỏ các ứng dụng đang thực hiện trên hệ thống

5.3 Phát hiện

Để phát hiện các lỗi cấu hình chúng ta cần thực hiện truy cập đến các trang cấu hìnhmặc định và kiểm tra mã trạng thái trả về cùng với việc kiểm tra mã HTML của hệthống

5.4 Khắc phục

Để khắc phục lỗ hổng này rất đơn giản chúng ta cần thực hiện các bước sau:

- Đặt ẩn hoặc cấu hình cấm truy cập tới các đường dẫn cấu hình không cầnthiết

Trang 25

- Đặt tài khoản và mật khẩu mạnh, không để tin tặc có thể đoán hoặc tấn côngvét cạn (brute force) mật khẩu dễ dàng.

- Hạn chế truy cập dựa trên địa chỉ và các thông tin của người sử dụng

III CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Hình 8: Các kỹ thuật kiểm thử

Hình 9: Kỹ thuật kiểm thử hộp đen.

Kiểm thử hộp đen coi phần mềm như là một "hộp đen", kiểm thử chức năng mà

không cần bất kỳ kiến thức về cấu trúc và hành vi bên trong phần mềm Người kiểmtra chỉ biết về những gì phần mềm phải làm mà không biết là nó làm như thếnào. Các test case (trường hợp kiểm tra) được tạo bằng việc sử dụng các mô tả bênngoài của phần mềm, bao gồm: các đặc tả, các chức năng, các yêu cầu và thiết kếcủa phần mềm

Người thiết kế test case chọn các giá trị đầu vào và kiểm tra dữ liệu đầu ra có hợp lệhay không Phương pháp kiểm thử hộp đen bao gồm: phân vùng tương đương, phântích các giá trị biên, tất cả các cặp kiểm thử, bảng chuyển đổi trạng thái, kiểm thửbảng quyết định, kiểm thử chéo, kiểm thử dựa trên mô hình, sử dụng test case, thăm

dò kiểm thử và kiểm thử dựa trên đặc điểm kỹ thuật Kiểm thử hộp đen có thể kiểm

Trang 26

tra được cả những thành phần chưa được thực thi trong đặc tả, nhưng không chắcchắn rằng mọi trường hợp đã được kiểm tra hoàn toàn

Hình 10: Kỹ thuật kiểm thử hộp trắng

Người kiểm thử hộp trắng biết được tất cả các cấu trúc dữ liệu bên trong chươngtrình, các thuật toán và cả mã lệnh cài đặt Người thiết kế các test case sẽ đưa ra cáctrường hợp kiểm thử sao cho tất cả mã lệnh được thực hiện ít nhất một lần

Cùng với kiểm thử hộp đen, kiểm thử hộp trắng cho phép nhóm phát triển kiểm tranhững phần của hệ thống ít khi thực hiện, đảm bảo những hàm quan trọng đượcthực thi ít nhất một lần Kiểm thử hộp trắng cũng thống kê những hàm nào đượcthực hiện, bao nhiêu dòng lệnh được thực hiện chính xác, từ đó cho biết mức độ baotrùm của việc kiểm tra Tuy nhiên, có một trở ngại đối với hình thức kiểm tra này làđòi hỏi phải có mã nguồn của chương trình, điều này không phải lúc nào cũng cóthể sẵn sàng

Hình 11: Kỹ thuật kiểm thử hộp xám

Trong những năm gần đây một phương pháp hay được sử dụng là kiểm thử hộpxám Đó là sự kết hợp của kiểm thử hộp đen và hộp trắng Thông tin có được là cấutrúc dữ liệu nội bộ, giải thuật của chương trình, nhưng công đoạn thực hiệ kiểm thử

ở mức người dùng Mục đích của kiểm thử hộp xám là phát hiện lỗi thiết kế và cài

Trang 27

đặt Kiểm thử hộp xám đặc biệt quan trọng khi ghép nối các module của các lậptrình viên khác nhau lại Ngoài ra còn có một vài loại kiểm thử đặc biệt khác nhưkiểm thử hiệu năng, kiểm thử tính dễ sử dụng với người dùng, kiểm tra tính an toàn

dữ liệu và ngăn cản tin tặc tấn công

Trong lĩnh vực an ninh ứng dụng, Fuzzing là một kỹ thuật phát hiện lỗi của phần

mềm bằng cách cung cấp dữ liệu đầu vào cho chương trình (các dữ liệu không hợp

lệ, dữ liệu không mong đợi), sau đó theo dõi và ghi lại các lỗi, các kết quả trả về của ứng dụng trong quá trình xử lý của chương trình Dữ liệu không mong đợi

thường là các giá trị vượt quá biên, các giá trị đặc biệt có ảnh hưởng tới phần xử lý,hiển thị của chương trình

Fuzzing là quá trình tự động hoặc bán tự động và lặp lại thao tác sinh dữ liệu sau đóchuyển cho hệ thống xử lý Kỹ thuật Fuzzing thường được sử dụng nhiều trong việckiểm thử cho các vấn đề về an ninh trong các phần mềm, hệ thống máy tính và cácứng dụng dịch vụ Khái niệm Fuzzing thiên về lý thuyết hơn là giải pháp cụ thể chotừng vấn đề Các chương trình ứng dụng Fuzzing gọi là Fuzzer Tùy theo môitrường và ứng dụng cần kiểm tra mà người ta có các phương án khác nhau để xâydựng Fuzzer

Thuật ngữ “fuzz” được giá sư Barton Millter đưa ra trong bài tập cho sinh viên tạitrường Winconsin Madison vào năm 1988 Bài tập được đặt tên là “OperatingSystem Utility Program Reliability - The Fuzz Generator” để kiểm tra mức độ chịuđựng của các ứng dụng Unix, độ tin cậy của mã nguồn Hiện nay, các kết quảnghiên cứu của nhóm vẫn được cập nhật tại địa chỉ:

http://pages.cs.wisc.edu/~bart/fuzz/

Năm 1999, trường đại học Oulu bắt đầu xây dựng các bộ kiểm thử PROTOS Các

bộ kiểm thử được xây dựng qua việc nghiên cứu và đặc tả giao thức sau đó tạo racác gói tin “dị dạng” để kiểm tra xem ứng dụng cài đặt có xử lý đúng đắn nó không.Việc sinh ra những bộ kiểm thử như vậy khá tốn nhiều công sức, nhưng một khihoàn tất sẽ có thể áp dụng cho nhiều ứng dụng khác nhau của nhiều hãng phát triểnkhác nhau Một số lượng lớn lỗi đã được phát hiện trong quá trình fuzzing sau đó.Năm 2002, Microsoft đã quyết định đầu tư cho nhóm sáng lập PROTOS Năm

2003, các thành viên của nhóm đã thành lập Codenomicon, một công ty chuyênthiết kế và phát triển các sản phẩm fuzzing thương mại

Trong suốt thời gian từ năm 2003 đến nay, nhiều lỗ hổng phần mềm đã được pháthiện và công bố đều được phát hiện dựa trên kỹ thuật fuzzing Như lỗi MS04-28

Trang 28

trong hệ điều hành Windows, các lỗi về định dạng tệp tin, các lỗi trong nền tảngActiveX, …

Dựa trên các phương pháp sinh dữ liệu và cách thực hiện phương pháp fuzzingchúng ta có thể phân chia phương pháp fuzzing thành 5 loại như sau:

 Sử dụng các testcase được sinh trước (Pregenerated Test Cases) Theo

cách này người thực hiện fuzzingsex sử dụng những bộ dữ liệu đặc biệt, cốđịnh, được lập trình cứng, để tạo ra các bộ dữ liệu này cần nhiều công sức vàkinh nghiệm Một khi tất cả các bộ dữ liệu đã được gửi đi thì qua trìnhfuzzing cũng kết thúc Điểm yếu của quá trình này phụ thuộc vào độ chínhxác của bộ dữ liệu fuzzing

 Sinh dữ liệu ngẫu nhiên (Random) Dữ liệu được sinh ra ngẫu nhiên, liên

tục và gửi đi, không theo giao thức nào Cách này không hiệu quả, mặc dùvậy thật ngạc nhiên là đã có những lỗi cực kỳ quan trọng đã được phát hiệnbởi phương pháp này

 Kiểm tra thủ công bằng cách thay đổi giao thức (Manual Protocol

Mutation Testing) Theo phương pháp này, không có một chương trình

fuzzer tự động nào Thực tế người nghiên cứu chính là fuzzer, họ chặn cácgiao thức, sửa đổi ngẫu nhiên và chuyển đi Cách này được dùng chủ yếu chocác ứng dụng web

 Thay đổi giao thức tự động (Mutation hay là Brute Force Testing).

Phương pháp này bắt đầu từ một mẫu dữ liệu hợp lệ, sửa từng byte, word,dword, hay xâu trong đó Phương pháp này có ưu điểm là không tốn côngnghiên cứu giao thức và định dạng tệp, thời gian để xây dựng một fuzzernhanh Tuy nhiên mức độ bao trùm lệnh tùy thuộc vào việc gọn gói tin haytệp tin mẫu ban đầu Phần lớn các giao thức và định dạng tệp khác phực tạp,

do vậy số lượng mẫu ban đầu phải tương đối lớn để bao trùm hết các khảnăng kiểm thử củ FileFuzz và notSPIKEfile là hai fuzzer mã nguồn mở sửdụng kỹ thuật này

 Tự động sinh dữ liệu cho giao thức (Automatic Protocol Generation

Testing) Đây là phương pháp cao cấp nhất hiện nay, thay vì tạo ra các bộ dữ

liệu cứng để kiểm tra, ngươi nghiên cứu sẽ xây dựng một ngữ pháp để mô tảgiao thức sẽ hoạt động thế nào, các đơn vị dữ liệu cơ bản, và trình tự hoạtđộng của giao thức Công việc này đòi hỏi thời gian và công sức nghiên cứunhưng sau đó công việc là giành cho fuzzer

Kỹ thuật fuzzing được ứng dụng rất nhiều trong việc kiểm thử phần mềm, hệ thống,hay các chuẩn giao thức Tuy nhiên trong phạm vi đồ án chỉ đi sâu vào phân tíchphương pháp fuzzing đặc thù cho ứng dụng web

Trang 29

Một ứng dụng web thao tác với người dùng qua trình duyệt và sử dụng giao thứcHTTP hoặc HTTPS Một hệ thống website sẽ chứa các điểm đầu vào của hệ thốngbao gồm:

- Các form nhập dữ liệu

- Các giá trị trên các URL của website

- Các trường trong HTTP Headers (bao gồm cả cookies)

Việc kiểm thử hệ thống sẽ tập trung chủ yếu vào các điểm đầu vào của hệ thống cụthể là việc gửi các dữ liệu qua Headers, phương thức GET , POST Fuzzer sẽ phảithực hiện việc thu thập toàn bộ các điểm đầu vào của hệ thống trước khi thực hiệnfuzzing Dưới đây là mô hình kiểm thử website dựa trên kỹ thuật fuzzing:

Hình 12: Kiểm thử website dựa trên kỹ thuật Fuzzing

Với các lỗ hổng website sẽ có những chữ ký để nhận dạng cho các ứng dụng đó Cụthể chính là giá trị thêm vào các biến trước khi gửi tới hệ thống Và phân tích cáckết quả trả về từ ứng dụng

Trang 31

PHẦN III: XÂY DỰNG HỆ THỐNG

Nội dung chính

 Các giải pháp xây dựng hệ thống

 Phân tích và thiết kế hệ thống

Trang 32

I CÁC GIẢI PHÁP XÂY DỰNG HỆ THỐNG

Hiện nay trên thế giới có khá nhiều phần mềm hoặc công cụ kiểm thử hệ thốngwebsite, các công cụ quét điểm yếu web điển hình IBM App Scan, Acunetix,Burpsuite… Các sản phẩm của các doanh nghiệp nổi tiếng và đều hoạt động rất tốt

và hiệu quả với khả năng quét rất sâu và đa dạng các loại lỗi, các kỹ thuật phát hiệnlỗi Tuy nhiên, những sản phẩm kể trên cũng có những nhược điểm nhất định:

- Đòi hỏi người dùng cần có những kinh nghiệm nhất định về việc kiểm thử hệthống, penetration testing…

- Cài đặt trực tiếp trên máy tính của người sử dụng nên phụ thuộc nhiều vàonền tảng sử dụng hệ thống, tài nguyên của hệ thống

- Không thực hiện quét nhiều website một lúc, có chăng chỉ là 1 đến 2 website

- Thời gian quét rất lớn có thể là nhiều ngày

- Không cung cấp chức năng quản lý các mục quét

Nhận thấy những nhược điểm trên cùng với những kinh nghiệm làm việc trong lĩnhvực an toàn bảo mật và trực tiếp là công việc kiểm tra xâm nhập trong các ứng dụngweb Đề xuất xây dựng hệ thống zScanner đáp ứng được những tính chất:

- Dịch vụ quét lỗ hổng website triển khai trên nền tảng dịch vụ đa người dùng

- Đảm bảo các chức năng về quản lý, hiển thị các kết quả của việc quét hệthống

- Hệ thống nhân fuzzing có xử lý việc phân loại các URL để giảm số lượngURL cần xử lý Tối ưu thời gian quét hệ thống

- Thiết kế bộ dữ liệu fuzzing đi kèm với các nền tảng của hệ thống đã đượcphát hiện nhằm giảm thiểu bộ dữ liệu fuzzing không cần thiết

- Lựa chọn lưu trữ hệ thống dưới dạng tài liệu (sử dụng hệ quản trị CSDLMongoDB là một hệ CSDL NoSQL), nên có tính mềm dẻo và tốc độ truyvấn nhanh hơn rất nhiều (khoảng 20 lần) so với các CSDL quan hệ truyềnthống

Để đảm bảo các yêu cầu trên, tôi xin trình bày chi tiêt các vấn đề trong zScanner

Hệ thống zScanner gồm 2 thành phần chính đó là: Website và Core Fuzzing, 2 thành

phần này được cài đặt riêng biệt và tương tác với nhau qua CSDL

Trang 33

Hình 13: Mô hình hoạt động của hệ thống zScanner

Mô tả các thành phần của hệ thống:

- Website là thành phần thao tác trực tiếp với người sử dụng Cung cấp các

chức năng và giao diện cho người dùng nhập các yêu cầu đến hệ thống vàhiển thị các kết quả của quá trình quét Website sẽ tương tác với hệ thống

Core Fuzzing bên trong thống qua CSDL.

- Fuzzer: Là các tiến trình đang chạy trên hệ thống và lần lượt lấy các giá trị

từ hàng đợi quét và thực hiện quá trình fuzzing sau đó đưa kết quả vào cơ sở

dữ liệu để hiển thị cho người dùng Fuzzer bao gồm 3 thành phần chính:

Detector (Gathering Information)

Collector (Crawler)

Fuzzer (Fuzzing)

Tuy nhiên, trong phạm vi thực hiện đồ án chỉ tập trung vào thành phần core fuzzing,

các kỹ thuật và công nghệ liên quan đến core fuzzing

Do định hướng phát triển hệ thống là cung cấp dịch vụ miễn phí nên các công nghệđược lựa chọn dựa trên tiêu chí miễn phí mà hiệu năng xử lý không thay đổi so vớicác công nghệ có phí khác

2.1 Ngôn ngữ sử dụng

Python là một ngôn ngữ lập trình thông dịch do Guido V.Rossum tạo ra năm 1990.

Đây là ngôn ngữ có thể chạy trên hầu hết các Hệ điều hành, bao gồm: Windows,

Linux/Unix, Mac OS X, OS/2, Amiga, Palm… Python có thể tạo ra những chương

trình từ những tập lệnh rất nhỏ cho tới việc xây dựng một hệ thống lớn và vô cùng

mạnh mẽ Một đặc điểm đáng chú ý nữa là: Python hoàn toàn miễn phí, có cộng

Trang 34

đồng phát triển đông đảo nên số lượng thư viện tốt, miễn phí rất nhiều, việc cài đặtpython cũng rất thuận tiện.

Với những điểm mạnh trên, Python thật sự là một lựa chọn đã đáp ứng hoàn toàn các yêu cầu về ngôn ngữ phát triển hệ thống zScanner.

2.2 Lưu trữ dữ liệu cho hệ thống

2.2.1 Lưu trữ dữ liệu hệ thống

Yêu cầu

 Lưu trữ các thông tin về quá trình quét (dạng từ điển)

 Lưu trữ các kết quả dựa trên các lỗ hổng

 Truy vấn nhanh và cập nhật nhanh, do hệ thống cần cập nhật và truyvấn liên tục để hiển thị cho người dùng về tình trạng và kết quả quétcủa hệ thống

 Mềm dẻo, dễ dàng cài đặt và thao tác

Lựa chọn:

 CSDL phi quan hệ (NoSQL)

 Lưu trữ theo dạng tài liệu

2.2.2 Lưu trữ dữ liệu Fuzz

Yêu cầu

 Lưu trữ được các dữ liệu fuzz cho từng loại lỗ hổng khác nhau

 Mỗi loại fuzz của lỗ hổng sẽ đi kèm với các thuộc tính: language (ngôn ngữ sử dụng), webserver, database, framework.

 Dễ dàng thao tác và lấy theo các tiêu chí khác nhau

Lựa chọn:

 Lưu trữ bằng tệp tin XML

 Mỗi loại fuzz của lỗ hổng sẽ được lưu trữ trong một tệp tin XML

2.3 Hiển thị dữ liệu và tương tác người dùng (Website)

Là thành phần website tương tác với người dùng Do thành phần Core Fuzzing xây

dựng trên nền tảng python nên hệ thống cũng lựa chọn nền tảng xây dựng chowebsite module là python Cụ thể hệ thống sử dụng Django, một framework rấtmạnh mẽ dựa trên mô hình MVT (Model – View – Templates) của python để xâydựng

Để phát hiện được các lỗ hổng của hệ thống chúng ta cần xác định được các điểmđầu vào của hệ thống Cụ thể là các URL và các POST FORM của hệ thống và đikèm với nó là các giá trị trong HEADER trong lần gửi yêu cầu Từ bộ URL vàFORM thu được, hệ thống sẽ gửi và thực hiện việc đưa kèm các giá trị của bộ dữ

Ngày đăng: 14/12/2021, 21:31

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w