Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Ứng dụng:

 Quét tự động: Bạn có thể sử dụng API Acunetix trong Python để tự động hóa
quy trình quét cho các ứng dụng web. Điều này bao gồm việc bắt đầu quét, thiết
lập cấu hình quét và truy xuất kết quả quét. Bằng cách tích hợp API vào quy
trình phát triển hoặc triển khai, bạn có thể thường xuyên kiểm tra các lỗ hổng
ứng dụng web của mình mà không cần can thiệp thủ công.
 Quản lý lỗ hổng: Với API Acunetix, bạn có thể tìm nạp kết quả quét và chi tiết
về lỗ hổng theo chương trình. Bằng cách sử dụng Python, bạn có thể xử lý và
phân tích dữ liệu này, tạo báo cáo và tích hợp nó với các hệ thống quản lý lỗ
hổng bảo mật hiện có của bạn. Điều này cho phép bạn theo dõi và ưu tiên các lỗ
hổng, chỉ định chúng cho các thành viên trong nhóm và đảm bảo khắc phục kịp
thời.
 Tích hợp với Hệ thống theo dõi vấn đề: Python, cùng với API Acunetix, có thể
được sử dụng để tích hợp tính năng quét lỗ hổng với các hệ thống theo dõi vấn
đề như JIRA hoặc GitHub Issues. Điều này cho phép tự động tạo phiếu hoặc sự
cố cho các lỗ hổng đã xác định, giúp theo dõi và quản lý quá trình khắc phục dễ
dàng hơn.
 Đường ống tích hợp liên tục và triển khai liên tục (CI/CD): Bạn có thể kết hợp
API Acunetix vào đường ống CI/CD của mình để tự động kích hoạt quét và xác
thực tính bảo mật của ứng dụng web trong quá trình phát triển và triển khai.
Điều này giúp đảm bảo rằng mọi lỗ hổng đều được phát hiện sớm trong vòng
đời phát triển phần mềm.
 Báo cáo và phân tích tùy chỉnh: Python cung cấp khả năng xử lý và hiển thị dữ
liệu mạnh mẽ. Bằng cách sử dụng API Acunetix trong Python, bạn có thể trích
xuất dữ liệu quét, thực hiện phân tích tùy chỉnh và tạo báo cáo phù hợp dựa trên
yêu cầu cụ thể của mình. Điều này cho phép bạn hiểu sâu hơn về trạng thái bảo
mật của các ứng dụng web của bạn.
Demo
 Đầu tiên, chúng ta khai báo hàm cleanup(), đây là hàm khôi phục để xóa quá
trình quét và đích đã được tạo bởi tập lệnh nếu phát hiện trạng thái quét không
hợp lệ:
 Lệnh gọi API Remove_scan thực hiện yêu cầu DELETE tới điểm
cuối /scans/{scan_id}; ID quét được truy xuất bằng phần chính của tập lệnh
được mô tả bên dưới
 Lệnh gọi API Remove_target hực hiện yêu cầu DELETE tới điểm
cuối /targets/{target_id}; ID mục tiêu được truy xuất bằng phần chính
của tập lệnh được mô tả bên dưới

 Sau đó, chúng ta khai báo các biến toàn cục bắt đầu sẽ được sử dụng trong
toàn bộ tập lệnh:
o MyAXURL là URL cơ sở cho API Acunetix của bạn, thường là:
 Tại chỗ: https://localhost 3443/api/v1
 Trực tuyến: https://localhost /api/v1
o MyAPIKEY là khóa API, có thể được truy xuất từ trang hồ sơ
o MyTargetURL là URL của mục tiêu cuối cùng sẽ được quét
o MyTargetDESC là một mô tả thân thiện cho mục tiêu
o FullScanProfileID là ID hồ sơ cho Quét toàn bộ mặc định; hồ sơ quét mặc
định này luôn có giá trị 11111111-1111-1111-1111-111111111111
o MyRequestHeaders là mảng các tiêu đề yêu cầu HTTP (bao gồm xác thực
bằng khóa API Acunetix)

 Tiếp theo, chúng ta tạo mục tiêu:


o Tài liệu API cho hàm add_target cho thấy rằng:
 Chúng ta phải thực hiện yêu cầu POST tới điểm cuối /targets;
 Nội dung phải ở định dạng JSON và chứa ít nhất 4 khóa: địa chỉ, mô
tả, loại và mức độ quan trọng;

{"address": "http://testphp.vulnweb.com/",
"description": "Test PHP Site - created via ax-python-api.ps1",
"type": "default",
"criticality": 10}

 Phản hồi sẽ ở định dạng JSON; thông tin quan trọng mà chúng tôi
muốn trích xuất từ phản hồi là giá trị của khóa target_id
 Bước tiếp theo, chúng tôi lên lịch quét:
o Tài liệu API cho hàm Schedule_scan cho thấy rằng:
 Chúng ta phải thực hiện một yêu cầu POST tới điểm cuối /scans;
 Nội dung phải ở định dạng JSON;
{"profile_id": "11111111-1111-1111-1111-111111111111",
"incremental": false,
"schedule": {"disable": false,
"start date": null,
"time sensitive": false},
"user authorized_to_scan": "yes",
"target id": "TargetID_from_previous_step"}

 Phản hồi sẽ ở định dạng JSON; tuy nhiên, thông tin quan trọng (ID
quét) mà chúng tôi muốn trích xuất không được gửi trong phản hồi mà
trong tiêu đề phản hồi HTTP có tên là Location

 Sau đó, chúng tôi tạo một vòng lặp kiểm tra trạng thái quét 30 giây một lần và
đợi trạng thái quét hoàn tất:
o Tài liệu API cho hàm get_scan cho thấy rằng:
 Chúng ta phải thực hiện yêu cầu GET tới điểm cuối /scans/{scan_id},
nơi lấy scan_id từ bước trước
 Phản hồi sẽ ở định dạng JSON; thông tin quan trọng (trạng thái quét)
mà chúng tôi muốn trích xuất là giá trị của khóa trạng thái bên trong
đối tượng JSON lồng nhau với khóa current_session
 Nếu trạng thái quét đang được xử lý hoặc được lên lịch , tập lệnh sẽ
tiếp tục chờ; khi trạng thái quét thay đổi thành hoàn thành , tập lệnh
sẽ tiếp tục xử lý; nếu trạng thái quét không phải là một trong 3 giá trị
này thì được coi là không hợp lệ, chức năng dọn dẹp được gọi và tập
lệnh kết thúc
 Tiếp theo, chúng ta cần lấy ID phiên quét; phản hồi cho lệnh gọi
API get_scan cũng chứa ID phiên quét; thông tin quan trọng mà chúng tôi
muốn trích xuất là giá trị của khóa scan_session_id bên trong đối tượng JSON
lồng nhau với khóa current_session

 Sau đó, chúng ta cần lấy ID kết quả quét; để có được nó, chúng ta cần làm như
sau:
o Tài liệu API cho lệnh gọi API get_scan_result_history cho thấy rằng:
 Chúng ta phải thực hiện một yêu cầu GET tới điểm
cuối /scans/{scan_id}/results, trong đó scan_id được lấy từ
bước trước
 Phản hồi ở định dạng JSON; thông tin quan trọng (ID kết quả
quét) mà chúng tôi muốn trích xuất là giá trị của
khóa result_id bên trong một trong các mảng đối tượng JSON
tạo thành giá trị cho khóa result; do tập lệnh tạo một lần quét
cho một mục tiêu duy nhất nên tình huống được đơn giản hóa
đến mức chúng tôi chỉ mong đợi nhận được một đối tượng
JSON duy nhất được lồng bên trong khóa result

 Cuối cùng, chúng ta cần có được danh sách các lỗ hổng được tạo ra trong quá
trình quét:
o Tài liệu API cho lệnh gọi API get_scan_vulnerabilities cho thấy rằng:
 Chúng tôi phải thực hiện yêu cầu NHẬN tới điểm
cuối /scans/{scan_id}/results/{result_id}/vulnerabilities, trong
đó scan_id và result_id được lấy từ các bước trước

o Phân tích chuỗi JSON và hiển thị thông tin chi tiết về các lỗ hổng
Kết quả thu được:

You might also like