Friday, December 30, 2011

Hash collisions in POST Denial-of-service exploit demo

Mới đọc được cái này trên thehackernews.com

Đây là một lỗi mới liên quan tới tình trạng hash collisions trong xử lý hash tables của một số trình dịch ngôn ngữ web hiện nay (PHP,JSP,ASP...) khiến máy chủ bị hao tổn quá nhiều tài nguyên trong việc xử lý các collisions


In computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys (e.g., a person's name), to their associated values (e.g., their telephone number). Thus, a hash table implements an associative array. The hash function is used to transform the key into the index (the hash) of an array element (the slot orbucket) where the corresponding value is to be sought.
Ideally, the hash function should map each possible key to a unique slot index, but this ideal is rarely achievable in practice (unless the hash keys are fixed; i.e. new entries are never added to the table after it is created). Instead, most hash table designs assume that hash collisions—different keys that map to the same hash value—will occur and must be accommodated in some way.
-----------------------------

Cái đặc biệt ở đây là có một công cụ demo exploit lỗi này được viết chỉ bằng HTML và Javascript nhưng demo rất hữu hiệu việc làm treo đứng cái server Apache chạy kèm với trình dịch PHP của tôi như hình minh họa dưới đây


CPU load tăng vọt ngay tức thì lên 50% sau cú POST đầu tiên, tới cú POST thứ 2 thì CPU vọt lên đến 100% và cái server chạy Core2 duo của tôi treo cứng ngắc

Cái demo exploit này có tại đây: http://koto.github.com/blog-kotowicz-net-examples/hashcollision/kill.html
Bạn có thể view source để thấy nó thực hiện việc exploit như thế nào

No comments:

Post a Comment

Quí đọc giả đọc xong, nếu thấy chút thú vị thì tác giả cũng mong được chút comment lấy làm kích lệ