Image Cover
Avatar

Viblo Security

@security

Report

Pinned Posts

IV. Phân tích và khai thác các lỗ hổng Web cache poisoning

  1. Ví dụ về tìm kiếm unkeyed values

Như ở bài viết trước đã đề cập, việc tìm kiếm các giá trị unkeyed đóng vai trò quan trọng trong tấn công web cache poisoning. Trong bài lab Web cache poisoning with an unkeyed header, chúng ta sẽ sử dụng một extension "đắc lực" trong công cụ Burp Suite để tìm kiếm các giá trị unkeyed.

Quan sát resp...

150
2
0 0

All posts

Thumbnail Image
227
1
0 0
Avatar Viblo Security thg 3 28, 2023 3:43 SA
3 min read

XXE injection vulnerabilities - Lỗ hổng XML (Phần 3)

II. Phân tích và khai thác các lỗ hổng XXE injection (tiếp)

  1. Lỗ hổng XXE injection dạng Blind và cách nhận biết

Cũng giống như các lỗ hổng khác, nhiều trường hợp trang web chứa quá trình phân tích cú pháp XML nhưng không trả về kết quả trong giao diện ứng dụng. Khi đó lỗ hổng XXE vẫn có thể xảy ra nhưng ở dạng blind, hay còn được gọi là Blind XXE injection.

Ví dụ đoạn code PHP sau:

<?php ...
Thumbnail Image
262
1
0 0
Avatar Viblo Security thg 3 28, 2023 3:42 SA
5 min read

XXE injection vulnerabilities - Lỗ hổng XML (Phần 2)

II. Phân tích và khai thác các lỗ hổng XXE injection (tiếp)

  1. Khai thác lỗ hổng XXE injection kết hợp lỗ hổng SSRF

Chúng ta đã biết về lỗ hổng SSRF giúp kẻ tấn công có thể truy xuất các dữ liệu nội bộ phía server. Trong một số trường hợp, ứng dụng chứa lỗ hổng XXE có thể kết hợp với phương pháp tấn công SSRF nhằm mở rộng phạm vi tấn công, khiến sự ảnh hưởng và mức độ tổn hại phía server tăng...

Thumbnail Image
1.0K
1
0 0
Avatar Viblo Security thg 3 28, 2023 3:41 SA
4 min read

XXE injection vulnerabilities - Lỗ hổng XML (Phần 1)

I. Đặt vấn đề

  1. Các khái niệm cơ bản

a. XML là gì?

XML là viết tắt của eXtensible Markup Language. Khá giống với ngôn ngữ HTML, chúng ta có thể hiểu XML là một dạng ngôn ngữ đánh dấu, được tổ chức W3C phát triển với mục đích lưu trữ và vận chuyển dữ liệu.

Tuy nhiên, chúng ta cũng cần phân biệt giữa hai ngôn ngữ HTML và XML, với các tiêu chí chủ yếu sau:

Chúng ta cùng xét một ví dụ về ngôn...

Thumbnail Image
438
2
0 0
Avatar Viblo Security thg 3 16, 2023 9:58 SA
7 min read

Server side request forgery vulnerabilities (SSRF) - Các lỗ hổng giả mạo yêu cầu phía máy chủ (Phần 6)

II. Phân tích và khai thác các lỗ hổng Server-side request forgery (tiếp)

  1. Lỗ hổng SSRF trong open redirection (chuyển hướng)

Trong một số trường hợp các chức năng chuyển hướng cũng có thể gây ra lỗ hổng SSRF. Chẳng hạn ứng dụng web gọi tới API thực hiện chuyển hướng người dùng tới một trang web khác, có URL như sau:

/product/nextProduct?currentProductId=6&path=http://evil-user.net

Trang ...

Thumbnail Image
294
4
0 0
Avatar Viblo Security thg 3 16, 2023 9:58 SA
7 min read

Server side request forgery vulnerabilities (SSRF) - Các lỗ hổng giả mạo yêu cầu phía máy chủ (Phần 5)

II. Phân tích và khai thác các lỗ hổng Server-side request forgery (tiếp)

  1. Lỗ hổng SSRF dạng Blind

Cũng giống với các dạng lỗ hổng blind khác, lỗ hổng Blind SSRF xảy ra khi giao diện không trả về bất kỳ thông tin nào về kết quả cuộc tấn công SSRF, nhưng payload của chúng ta vẫn được thực thi trong server back-end. Trong trường hợp giao diện trang web không trả về kết quả, cách thông dụng nh...

Thumbnail Image
362
2
0 0
Avatar Viblo Security thg 3 16, 2023 9:58 SA
6 min read

Server side request forgery vulnerabilities (SSRF) - Các lỗ hổng giả mạo yêu cầu phía máy chủ (Phần 4)

II. Phân tích và khai thác các lỗ hổng Server-side request forgery (tiếp)

  1. SSRF và bypass white-based input filters (tiếp)

6.2. Cài đặt cơ chế ngăn chặn white list dựa theo host (tiếp)

Cuối cùng, chúng ta hãy cùng đào sâu hơn một cách bypass cơ chế filter bằng cách kết hợp các kỹ thuật trên qua bài lab sau:

Phân tích lab SSRF with whitelist-based input filter

Miêu tả: Chức năng stock che...

Thumbnail Image
414
3
0 0
Avatar Viblo Security thg 3 16, 2023 9:58 SA
7 min read

Server side request forgery vulnerabilities (SSRF) - Các lỗ hổng giả mạo yêu cầu phía máy chủ (Phần 3)

II. Phân tích và khai thác các lỗ hổng Server-side request forgery (tiếp)

  1. Kiểm tra lỗ hổng SSRF

SSRF thường xuất hiện ở các chức năng có quá trình trao đổi dữ liệu với một trang web khác. Và chúng ta cũng cần có một phương pháp để kiểm tra khả năng xảy ra của lỗ hổng SSRF. Một trong những phương pháp kiểm tra phổ biến và đơn giản nhất chính là kỹ thuật out-of-band (OAST). Trong bài viết nà...

Thumbnail Image
439
3
0 0
Avatar Viblo Security thg 3 16, 2023 9:58 SA
5 min read

Server side request forgery vulnerabilities (SSRF) - Các lỗ hổng giả mạo yêu cầu phía máy chủ (Phần 2)

II. Phân tích và khai thác các lỗ hổng Server-side request forgery (tiếp)

  1. Lỗ hổng SSRF truy cập hệ thống back-end khác

Bên cạnh việc tận dụng lỗ hổng SSRF truy cập vào server local, chúng ta cũng có thể truy cập vào các hệ thống back-end khác. Các hệ thống này thường không thể truy cập trực tiếp từ public server, để tấn công được các server này chúng ta cần biết chính xác domain hoặc địa c...

Thumbnail Image
869
5
0 0
Avatar Viblo Security thg 3 16, 2023 9:58 SA
5 min read

Server side request forgery vulnerabilities (SSRF) - Các lỗ hổng giả mạo yêu cầu phía máy chủ (Phần 1)

I. Đặt vấn đề

  1. Giới thiệu

Server-side request forgery (thường được gọi là SSRF) là một dạng tấn công trong đó kẻ tấn công lợi dụng một tính năng của server public nhằm truy xuất trái phép dữ liệu từ một trang web chỉ định khác, thường là các trang web back-end ở chính server đó. Để các bạn có thể hình dung rõ hơn về dạng lỗ hổng này, chúng ta cùng xét ví dụ sau:

Trong quá trình trao đổi dữ...

Thumbnail Image
911
1
0 0
Avatar Viblo Security thg 3 6, 2023 7:47 SA
3 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 11)

VI. Demo ngăn chặn lỗ hổng SQL injection

  1. Ngôn ngữ PHP

Xem xét đoạn code PHP với cơ sở dữ liệu MySQL xử lý input chứa lỗ hổng SQL injection sau:

_POST['username']; _POST['password'];

username' AND password='$password'";

mysql_query($query);

  • Sử dụng hàm htmlspecialchars()

Hàm htmlspecialchars() sẽ chuyển các ký tự đặc biệt như &, <, >, ", ', và / thành các ký tự HTML. Cài đặt như sau:...

Thumbnail Image
283
4
0 0
Avatar Viblo Security thg 3 6, 2023 7:47 SA
5 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 10)

IV. Tối ưu hóa Blind SQL injection

Trong các phương pháp khai thác lỗ hổng Blind SQL injection đã xét ở trên, chúng ta cần kiểm tra rất nhiều trường hợp (hầu như là cần thử qua hết tất cả trường hợp về ký tự) để xác định chính xác từng ký tự của dữ liệu cần truy xuất, làm mất rất nhiều thời gian cũng như lãng phí tài nguyên. Hơn nữa, việc gửi liên tục nhiều request cùng lúc tới hệ thống có thể...

Thumbnail Image
364
1
0 0
Avatar Viblo Security thg 3 6, 2023 7:47 SA
8 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 9)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Second-order SQL injection

Các trường hợp ở trên chúng ta đang xét có thể được chia thành dạng First-order SQL injection - nghĩa là hệ thống sẽ trực tiếp thực thi script của chúng ta dẫn tới hậu quả dò rỉ dữ liệu ngay lập tức sau đó (trả về dữ liệu nhạy cảm trong giao diện, kẻ tấn công có thể phán đoán chính xác các ký tự của dữ l...

Thumbnail Image
740
1
0 0
Avatar Viblo Security thg 3 6, 2023 7:47 SA
8 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 8)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Blind SQL injection (tiếp)

6.4. Khai thác lỗ hổng Blind SQL injection bằng out-of-band (OAST) techniques

Phương pháp tấn công lỗ hổng Blind SQL injection bằng kỹ thuật Out-of-band có thể còn xa lạ với nhiều bạn. Trước hết các bạn cần hiểu về dịch vụ phân giải tên miền DNS (có thể đọc lại các bài viết về chủ đề OS command injectio...

Thumbnail Image
395
1
0 0
Avatar Viblo Security thg 3 6, 2023 7:46 SA
8 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 7)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Blind SQL injection (tiếp)

6.3. Khai thác lỗ hổng Blind SQL injection bằng cách kích hoạt độ trễ thời gian (time delays triggering)

Phương pháp khai thác trong mục 6.21/06.21/0 nhằm tạo ra lỗi thực thi trong câu truy vấn, dẫn tới trang web trả về response error. Đặt ra giả thiết rằng, nhóm phát triển sản phẩm đã nghĩ tới trường hợp t...

Thumbnail Image
404
1
0 0
Avatar Viblo Security thg 3 6, 2023 7:46 SA
6 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 6)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Blind SQL injection (tiếp)

6.2. Kích hoạt điều kiện lỗi truy vấn trong khai thác lỗ hổng Blind SQL injection

Với các ví dụ ở mục 6.126.12 câu truy vấn sau:

(SELECT CASE WHEN (1=1) THEN 1/0 ELSE 'a' END)='a' (SELECT CASE WHEN (1=2) THEN 1/0 ELSE 'a' END)='a'

Từ khóa CASE có thể được hiểu giống như cấu trúc rẽ nhánh switch-case: Kh...

Thumbnail Image
588
3
0 0
Avatar Viblo Security thg 2 6, 2023 6:04 SA
10 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 5)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Khai thác lỗ hổng SQL injection - Truy xuất dữ liệu trong các bảng (database tables) (tiếp)

5.3. Khai thác dữ liệu từ các bảng với cột hiển thị hạn chế

Từ các ví dụ trên chúng ta thấy lượng thông tin chúng ta cần khai thác thường gồm nhiều trường, và trên thực tế số lượng đó sẽ còn lớn hơn. Có thể một trường hợp xấu xảy ra, là số...

Thumbnail Image
483
1
0 0
Avatar Viblo Security thg 2 6, 2023 6:04 SA
10 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 4)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Khai thác lỗ hổng SQL injection - Truy xuất dữ liệu trong các bảng (database tables) (tiếp)

5.2. Khai thác dữ liệu từ các bảng

Sau khi đã tìm được thông tin về loại hệ quản trị cơ sở dữ liệu được sử dụng cũng như kiểm tra các thông tin phụ như phiên bản hiện hành, chúng ta có thể sử dụng các cú pháp truy vấn tương ứng để khai thá...

Thumbnail Image
726
2
0 0
Avatar Viblo Security thg 2 6, 2023 6:04 SA
8 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 3)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Khai thác lỗ hổng SQL injection - Thu thập thông tin câu truy vấn (tiếp)

4.2. Xác định cột dữ liệu tương thích với kiểu dữ liệu cần truy xuất

Sau khi xác định được số cột dữ liệu trả về, chúng ta cần tiếp tục tìm kiểm cột dữ liệu có thể được khai thác để hiển thị (trả về) kết quả thông tin truy xuất cụ thể. Thông thường kiểu dữ l...

Thumbnail Image
831
1
0 0
Avatar Viblo Security thg 2 6, 2023 6:04 SA
8 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 2)

II. Phân tích và khai thác các lỗ hổng SQL Injection (tiếp)

  1. Phá vỡ logic ứng dụng

Xét một chức năng đăng nhập:

Khi người dùng thực hiện đăng nhập, hai tham số username và password được truyền tới hệ thống, sau đó được "ghép" trực tiếp vào câu lệnh SQL. Ví dụ câu lệnh kiểm tra thông tin đăng nhập của người dùng trong ngôn ngữ php như sau:

_POST['username']; _POST['password']; username . "...

Thumbnail Image
1.6K
5
5 0
Avatar Viblo Security thg 2 6, 2023 6:04 SA
11 min read

SQL injection vulnerabilities - Lỗ hổng SQL injection (Phần 1)

I. Đặt vấn đề

  1. Giới thiệu

Một vấn đề lớn mà mỗi một hệ thống cần phải đối mặt đó chính là làm sao để lưu trữ các thông tin một cách hiệu quả và khi cần sử dụng có thể truy xuất nhanh chóng và chính xác. Từ đó, cơ sở dữ liệu (Database) ra đời, nó là một hệ thống bao gồm rất nhiều thông tin, dữ liệu được xây dựng theo một cấu trúc nhất định nhằm đáp ứng nhu cầu khai thác, sử dụng đồng thời của...

Viblo
Let's register a Viblo Account to get more interesting posts.