Image Cover
Avatar

Viblo Security

@security

Báo cáo

Bài viết được ghim

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...

349
2
0 0

Tất cả bài viết

Thumbnail Image
28
2
1 0
Avatar Viblo Security thg 7 7, 9:14 SA
3 phút đọc

Lattices in Cryptography - Mật mã học trên lưới (phần 2)

III. Một số bài toán trên lưới

  1. Bài toán Knapsack và Subset Sum

Bài toán:

Tìm các giá trị biết rằng:

Với là các giá trị cho trước.

Bài toán này có hai cách gọi phổ biến:

  • Knapsack Problem (bài toán balo), xuất phát từ ý tưởng chọn một tập hợp con tối ưu từ các vật phẩm.
  • Subset Sum Problem (bài toán tổng tập con), tập trung vào việc tìm một tập con của các số sao cho tổng củ...
Thumbnail Image
44
0
0 0
Avatar Viblo Security thg 7 6, 9:14 SA
6 phút đọc

Lattices in Cryptography - Mật mã học trên lưới (phần 1)

I. Mở đầu

Mật mã học là lĩnh vực nghiên cứu các phương pháp để bảo vệ thông tin và dữ liệu khỏi bị truy cập trái phép. Trọng tâm của mật mã học chính là vấn đề an toàn và bảo mật dữ liệu.

Khi một thuật toán mã hóa được đưa ra, người ta thường đặt ra câu hỏi về mức độ an toàn của nó, rằng:

  • Nó có khả năng bị "phá vỡ" hay không?
  • Nếu có, thì phải mất bao nhiêu tài nguyên (thời gian, công sức...
Thumbnail Image
148
1
1 0
Avatar Viblo Security thg 7 5, 9:13 SA
9 phút đọc

Bài toán ngày sinh nhật

I. Nghịch lý ngày sinh nhật

  1. Phát biểu

Mỗi người đều có ngày sinh duy nhất của mình, có thể nhận một trong 365365 giá trị (trong khuôn khổ bài viết này chúng ta bỏ qua năm nhuận) từ 1/1 tới 31/12. Chúng ta xem xét xác suất xảy ra hai người có trùng ngày sinh trong một nhóm người.

Nhớ lại nguyên lý Dirichlet: "Nếu nhốt con chim bồ câu vào chiếc lồng, khi thì luôn tồn tại một lồng chứa ít ...

Thumbnail Image
90
0
0 0
Avatar Viblo Security thg 7 4, 9:12 SA
3 phút đọc

DOM-based vulnerabilities - Các lỗ hổng dựa trên DOM (phần 2)

III. DOM-based XSS

DOM-based XSS có lẽ là dạng lỗ hổng đầu tiên chúng ta có thể nghĩ tới khi nhắc đến các lỗ hổng dựa trên DOM. Trong chuỗi bài viết XSS chúng ta đã phân tích khá kỹ về dạng lỗ hổng này, bạn đọc có thể tham khảo lại.

IV. DOM-based Open redirection

Xem xét đoạn mã javascript:

let url = /https?😕/.+/.exec(location.hash); if (url) { location = url[0]; }

Biến returnUrl nhận...

Thumbnail Image
86
0
1 0
Avatar Viblo Security thg 7 3, 9:12 SA
6 phút đọc

DOM-based vulnerabilities - Các lỗ hổng dựa trên DOM (phần 1)

I. Mở đầu

DOM (Document Object Model) là một mô hình lập trình của trang web, cho phép các ngôn ngữ lập trình như JavaScript truy cập và thay đổi các phần tử trong HTML hoặc XML của trang web theo cách động (dynamic). Kỹ thuật này tạo ra một cấu trúc cây, trong đó mỗi phần tử HTML hoặc thuộc tính là một nút trong cây đó, giúp JavaScript có thể thay đổi nội dung, cấu trúc hoặc phong cách của tr...

Thumbnail Image
96
2
0 0
Avatar Viblo Security thg 7 2, 9:11 SA
6 phút đọc

Web cache deception - đánh lừa bộ nhớ đệm web (phần 3)

IV. Static directory cache rules attack

  1. Cache rules

Đây là các cache rules dành cho các tệp tin tĩnh nằm trong một số thư mục (thường là public) như /static, /assets, /scripts, /images, ... Khi người dùng truy cập đến các tệp tin này, thường trong URL sẽ chứa các từ khóa này.

Ví dụ cache rules tại server cache:

cache_rules: Cache static assets only in the /static directory with specific ...

Thumbnail Image
93
1
0 1
Avatar Viblo Security thg 7 1, 9:11 SA
7 phút đọc

Web cache deception - đánh lừa bộ nhớ đệm web (phần 2)

III. Static extension cache rules attack

  1. Cache rules

Cache rules dành cho static extension thường lưu lại các tệp tin .css, .js, ico, jpg, png, gif, ... trên server cache, vì đây là các file tĩnh và hầu như không thay đổi nội dung. Ý tưởng này khá đơn giản nên cache rules dành cho chúng thường được xây dựng đơn sơ:

rules: Cache all requests with common static file extensions

  • condition...
Thumbnail Image
69
1
0 0
Avatar Viblo Security thg 6 30, 9:10 SA
7 phút đọc

Web cache deception - đánh lừa bộ nhớ đệm web (phần 1)

I. Giới thiệu

Web cache deception là một dạng tấn công mới nhắm vào bộ nhớ đệm trong những năm gần đây. Nhắc tới lỗ hổng web cache deception, một số bạn có thể liên tưởng tới một dạng lỗ hổng chúng ta đã phân tích - web cache poisoning. Vậy thì chúng khác nhau như thế nào? Đầu tiên về tên gọi, poisoning là đầu độc, deception là sự đánh lừa. Hai dạng tấn công này khác nhau chủ yếu ở cách thực h...

Thumbnail Image
83
1
0 0
Avatar Viblo Security thg 6 29, 9:10 SA
3 phút đọc

NoSQL injection (phần 3)

V. Trích xuất dữ liệu hiệu quả hơn

Trong bài viết trước chúng ta đã tìm hiểu về phương pháp sử dụng tấn công brute force kết hợp toán tử $regex tìm ra từng ký tự của dữ liệu trong bảng. Có thể kết hợp thuật toán tìm kiếm Binary search để tối ưu thời gian tìm kiếm mật khẩu, chương trình minh họa:

A function that returns True if the regex passes def test_password(regex): data = { "u...

Thumbnail Image
63
1
0 0
Avatar Viblo Security thg 6 28, 9:09 SA
4 phút đọc

NoSQL injection (phần 2)

III. NoSQL syntax injection

Phương thức tấn công NoSQL syntax injection xảy ra khi attacker có thể inject input tùy ý dẫn đến phá vỡ cấu trúc cú pháp của câu truy vấn ban đầu. Xem xét route /product/lookup sau:

const Product = mongoose.model('Product', productSchema);

app.get('/product/lookup', async (req, res) => { let category = req.query.category;

try {
    const products = a...
Thumbnail Image
112
2
0 0
Avatar Viblo Security thg 6 27, 9:08 SA
8 phút đọc

NoSQL injection (phần 1)

I. Mở đầu

  1. Giới thiệu về NoSQL

Lần đầu nghe tới NoSQL chắc hẳn phản ứng đầu tiên của mọi người là cái tên kỳ lạ này nhỉ. Vì sao có SQL rồi còn phải sinh ra NoSQL? Để trả lời câu hỏi này, chúng ta cùng xem lại một số tính chất của ngôn ngữ SQL thông thường.

Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) sử dụng ngôn ngữ SQL yêu cầu dữ liệu phải có cấu trúc chặt chẽ (như bảng, dòng, cột), phù hợp...

Thumbnail Image
56
0
0 0
Avatar Viblo Security thg 6 26, 9:08 SA
7 phút đọc

API testing (phần 2)

IV. Server-side parameter pollution

  1. Internal API routing

Một cách routing phổ biến hiện nay là sử dụng internal API: ứng dụng client gửi một yêu cầu đến server với các tham số cơ bản, sau đó server xử lý yêu cầu này và tạo một yêu cầu khác đến internal API (API nội bộ) để lấy thông tin cần thiết trả về cho client. Cụ thể các bước với ví dụ như sau:

Request từ client đến server

Khi người ...

Thumbnail Image
102
0
0 0
Avatar Viblo Security thg 6 25, 9:07 SA
5 phút đọc

API testing (phần 1)

I. Giới thiệu

API (Application Programming Interfaces) là một giao diện lập trình ứng dụng. Có thể hiểu API là một tập hợp các quy tắc và giao thức cho phép các ứng dụng hoặc dịch vụ khác nhau giao tiếp với nhau, giống như một cầu nối giúp các phần mềm khác nhau có thể tương tác mà không cần hiểu toàn bộ cấu trúc nội bộ của nhau.

Một ví dụ thường được sử dụng giúp dễ dàng hình dung về API: Gi...

Thumbnail Image
550
0
1 0
Avatar Viblo Security thg 2 25, 6:37 SA
3 phút đọc

Tấn công hàm băm (hash attack) - Tấn công xung đột băm (hash collision attack)

I. Hash attack

Về việc đưa ra một thuật toán băm "ngược" nhằm tìm ra chính xác thông điệp từ là không thể. Nguyên lý của hàm băm chính là đưa các thông điệp với độ dài tùy ý trở về "khuôn khổ" một chuỗi có cấu tạo và độ dài cố định, tức kết quả băm nằm trong một không gian có độ lớn giới hạn. Chúng ta không thể dựa vào một không gian giới hạn tìm ngược lại thông điệp - thuộc một không gian ...

Thumbnail Image
287
0
0 0
Avatar Viblo Security thg 2 24, 6:37 SA
9 phút đọc

Hàm băm trong mật mã học - Hashing in cryptography

I. Định nghĩa

Dựa theo bối cảnh mật mã học, chúng ta có thể định nghĩa hàm băm là một phép toán đưa thông điệp đầu vào (chuỗi ký tự, độ dài tùy ý) xử lý và trả về kết quả là một xâu ký tự có độ dài cố định. Từ đó có thể thực hiện quá trình xử lý dữ liệu dễ dàng hơn do các khối dữ liệu trở nên thống nhất và cấu tạo và độ dài.

Ký hiệu là hàm băm, với thông điệp , chúng ta thu được bản mã :

Cá...

Thumbnail Image
954
1
0 0
Avatar Viblo Security thg 2 21, 6:36 SA
3 phút đọc

Giải thuật Euclid mở rộng (extended Euclidean algorithm) và phương trình ax+by=c

I. Phương trình ax+by=c

Xét phương trình với các hệ số nguyên, cần tìm là các ẩn nguyên. Đặt (ước chung lớn nhất), khi đó tồn tại các số nguyên sao cho . Từ kết quả có thể chứng minh được điều kiện cần và đủ để phương trình có nghiệm nguyên là là ước của (Bạn đọc tự chứng minh).

II. Thuật toán Euclid tìm ƯCLN

Bài toán tìm ước chung lớn nhất của hai số nguyên dương và đã quá quen thu...

Thumbnail Image
105
0
0 0
Avatar Viblo Security thg 2 20, 6:36 SA
8 phút đọc

Modular math in Cryptography - Module trong mật mã học

I. Một số kiến thức cơ bản về module

  1. Định nghĩa

Trong toán học, số học mô đun là một hệ thống số học dành cho số nguyên. Modular math đóng vai trò quan trọng trong mật mã học, giữa chúng tồn tại sự liên hệ mật thiết. Có thể coi phần lớn lý thuyết mật mã được xây dựng dựa trên cơ sở của số học module trong toán học, tiêu biểu có thể kể đến hệ mã hóa RSA làm việc trên các phép toán module. ...

Thumbnail Image
72
0
0 0
Avatar Viblo Security thg 2 19, 6:36 SA
6 phút đọc

Mật mã RSA - phần 7

IX. Vấn đề an toàn trong xây dựng thuật toán RSA

RSA vốn là một loại mật mã an toàn, tuy nhiên quá trình sinh khóa phụ thuộc nhiều vào yếu tố lựa chọn từ con người: Bao gồm việc chọn cặp số và số mũ công khai , cùng với cách thức vận dụng quy trình mã hóa đã mang lại các kẽ hở cho kẻ tấn công có thể khai thác. Bởi vậy, để đảm bảo vấn đề bảo mật, an toàn trong việc truyền thông điệp mã hóa bằn...

Thumbnail Image
91
1
0 0
Avatar Viblo Security thg 2 18, 6:35 SA
4 phút đọc

Mật mã RSA - phần 6

VI. Common module attack

  1. Cơ sở lý thuyết

Giả thiết rằng một thông điệp được thực hiện mã hóa RSA đồng thời với số dùng chung, các số và riêng biệt. Trong trường hợp đó, nếu hai số , thỏa mãn điều kiện nguyên tố cùng nhau, hay , thì chúng ta hoàn toàn có thể sử dụng hình thức tấn công Common module attack nhằm tìm ra thông điệp gốc khi biết bản mã.

Bài toán có thể phát biểu như sau: D...

Thumbnail Image
121
3
0 0
Avatar Viblo Security thg 11 30, 2024 8:00 SA
7 phút đọc

Mật mã RSA - phần 5

V. Thuật toán Pollard (tiếp)

  1. Tấn công phân tích nhân tử theo thuật toán Pollard Rho (Pollard )

2.1. Thuật toán Pollard

Xét số là tích của hai số nguyên tố lớn và . Tương tự với ý tưởng của thuật toán Pollard's , để tìm được một ước nguyên tố của , chúng ta sẽ tìm kiếm hai số nguyên dương và không vượt quá và thỏa mãn:

Vì khi đó , mà nên . Từ đó:

Hay chắc chắn là một ước (khác $1...

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí