EX1: Tìm hiểu lỗ hổng Buffer overflow

Thảo luận trong 'Exploitation' bắt đầu bởi Mask, 21/02/14, 11:02 PM.

  1. Mask

    Mask VIP Members

    Tham gia: 03/07/13, 08:07 AM
    Bài viết: 25
    Đã được thích: 30
    Điểm thành tích:
    18
    Xin lỗi các bạn, thấy forum thiếu nhiều mục kiến thức cơ bản về phần các lổ hổng quá, hôm nay mình mạn phép xin viết một bài nhỏ về một loại lỗi cơ bản nhất từ xưa đến nay, lỗ hổng tràn bộ đệm buffer overflow, có gì thiếu sót hay không hiểu các bạn cứ đóng góp ý kiến nha. Thank trước.
    Phần trình bay của mình sẽ bao gồm 2 phần, phần giới thiệu lý thuyết và phần thực hành. Hôm nay chắc sẽ nói qua về phần lý thuyết trước đã.
    Để tìm hiểu về cái này, mình xin đi vào một số khái niệm cơ bản đã nhỉ:

    Bài giới thiệu của mình là về lỗ hổng tràn bộ đệm, vậy bộ đệm là gì ? Lỗ hổng tràn bộ đệm là gì ?

    Buffer – tạm dịch là bộ đệm – được định nghĩa là một vùng nhớ liên tục có kích thước giới hạn. Bộ đệm thường dùng nhất trong C là một mảng. Bộ đệm thường được dùng để lưu trữ các giá trị tạm thời của một xâu phục vụ cho quá trình xử lý.

    Vậy lỗ hổng tràn bộ đệm hiểu theo nghĩa đơn giản nhất là sao chép dữ liệu có kích thước lớn hơn vào một bộ đệm mà không thực hiện các thao tác kiểm tra biên dẫn đến vùng nhớ phía sau bộ đệm bị ghi đè, vùng nhớ này có thể lại là một bộ đệm khác hoặc là vùng nhớ hệ thống…Hậu quả có thể làm chương trình hoạt động không chính xác hoặc đổ vỡ.


    Các bạn có thể nhìn qua ví dụ sau:

    Mã:
    #include 
    int main[B]()[/B]
    [B]{[/B]
        int array[B][[/B]5[B]][/B] [B]=[/B] [B]{[/B]1[B],[/B]2[B],[/B]3[B],[/B]4[B],[/B]5[B]};[/B]
        printf[B]([/B]"%d
    "[B],[/B]array[B][[/B]5[B]]);[/B]
        [B]return[/B] 0[B];[/B]
    [B]}[/B]
    
    Ở đây, khi chương trình chạy, một buffer sẽ được cấp phát để lưu trữ các giá trị của mảng array. Và biên dịch chương trình không hề có lỗi, điều đó chứng tỏ C không hề thực hiện kiểm tra biên của mảng.

    Kết quả:
    [​IMG]

    Dù không tồn tại phần tử array[5] nhưng cũng không có lỗi xảy ra.
    Chúng ta cùng thử một ví dụ khác:

    Mã:
    int main[B]()[/B]
    [B]{[/B]
        int array[B][[/B]5[B]];[/B]
        int i[B];[/B]
        [B]for[/B] [B]([/B]i [B]=[/B] 0[B];[/B] i [B]
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  2. since2005

    since2005 W-------

    Tham gia: 09/01/15, 03:01 PM
    Bài viết: 2
    Đã được thích: 0
    Điểm thành tích:
    1
    Re: EX1: Tìm hiểu lỗ hổng Buffer overflow

    Anh ơi hai cái link youtube em không xem được, nó báo "rất tiếc đây là video riêng tư" :( Anh giúp em xem được không ạ :rolleyes::rolleyes:
     
    Last edited by a moderator: 20/01/15, 08:01 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. DiepNV88

    DiepNV88 Super Moderator Thành viên BQT

    Tham gia: 24/09/13, 03:09 AM
    Bài viết: 1,568
    Đã được thích: 362
    Điểm thành tích:
    83
    Re: EX1: Tìm hiểu lỗ hổng Buffer overflow

    Hai video trên có thể đã bị remove khỏi youtobe bạn có thể tham khảo các video khác để biết thêm về lỗ hổng này:
    https://www.youtube.com/watch?v=8S0SqXIGv98
    Cáp quang đanh bị đứt nên mấy video youtobe khó xem lắm bạn kiên trì chờ load nhé :D
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. noikhongloi

    noikhongloi W-------

    Tham gia: 01/02/15, 12:02 AM
    Bài viết: 9
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: EX1: Tìm hiểu lỗ hổng Buffer overflow

    Cảm ơn bac Mask đã gởi bài này. Em đọc thấy thú vị và không hiểu tại sao một phần mềm bị lỗi BOF này lại bị lợi dụng một cách cụ thể bởi các hacker từ xa rồi họ chiếm được cả hệ điều hành ? Mấy link bác cho xem có được đâu, lại toàn tiếng tây.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. Skynet103

    Skynet103 W-------

    Tham gia: 15/05/15, 01:05 PM
    Bài viết: 11
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: EX1: Tìm hiểu lỗ hổng Buffer overflow

    hóng cái vietsub bác ơi, chứ tiếng anh e còn kém lắm :3
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. david19

    david19 Member

    Tham gia: 19/05/17, 04:05 PM
    Bài viết: 10
    Đã được thích: 0
    Điểm thành tích:
    1
    hk có phần 2 hả anh
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. nktung

    nktung Super Moderator Thành viên BQT

    Tham gia: 08/10/13, 04:10 AM
    Bài viết: 887
    Đã được thích: 366
    Điểm thành tích:
    83
    Trong một chương trình (program) có nhiều tiến trình (process). Giả sử khi một tiến trình A đang chạy, nó có thể bị ngắt tạm thời bởi một tiến trình B khác cần chạy. Sau khi B chạy xong, chương trình sẽ điều khiển quay trở về tiếp tục thực thi A. Để quay về nơi A đang thực thi thì trước đó cần lưu trữ thông tin về địa chỉ của A trong buffer.
    Kẻ tấn công biết điều này! Do vậy hắn ta sẽ tìm cách thay đổi địa chỉ A trong buffer bằng địa chỉ của một chương trình M độc hại mà hacker tạo ra, bằng cách làm tràn (buffer overflow) thông tin địa chỉ của A sang ô nhớ "bên cạnh", còn ô nhớ cũ sẽ được dùng để lưu địa chỉ của M. Như vậy khi B chạy xong, chương trình sẽ trở về thực thi M, thay vì thực thi A.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  8. nktung

    nktung Super Moderator Thành viên BQT

    Tham gia: 08/10/13, 04:10 AM
    Bài viết: 887
    Đã được thích: 366
    Điểm thành tích:
    83
    Tài liệu đây nhé bạn. Tham khảo cuốn sách Security+ Guide to Network Security Fundamental, trang 107-108 nhé
    [​IMG]
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan