DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Làm sao để tải tệp lên server sử dụng thư viện PycURL trong Python?
Chức năng tải tệp lên máy chủ có khá nhiều mục đích. Đối với kẻ tấn công, sau khi xâm nhập vào một hệ thống, chúng thường tải các script hoặc các mã độc có nhiều chức năng nhằm đạt được mục đích nhất định nào đó. Đối với việc tìm kiếm lỗ hổng của ứng dụng web, pentester cũng nên thử việc tải lên các tệp có chứa payload cần thiết để tìm lỗi. Hay đối với quản trị viên, sau khi hoàn thành một chức năng nào đó, muốn tải tệp lên server để xem code hoạt động có chính xác hay không.
Có rất nhiều cách để tải tệp lên server, bạn có thể sử dụng nhiều thư viện có sẵn trong các ngôn ngữ lập trình khác nhau, hay đơn giản chỉ là việc dùng lệnh wget hoặc curl để lấy tệp từ một nguồn nào đó. Bài viết này nhắm đến ai đó đang học và tìm hiểu về ngôn ngữ lập trình Python. Để tải tệp lên máy chủ, bạn có thể sử dụng thư viện PycURL.
PycURL là một giao diện Python cho libcurl. PycURL có thể được sử dụng để tìm nạp các đối tượng được xác định bằng URL từ chương trình Python, tương tự như mô-đun Python urllib. Phiên bản mới nhất của PycURL là 7.45.1. Việc cài đặt nó trên các bản phân phối của Linux là rất dễ dàng.
Yêu cầu:
Chỉ cần dùng lệnh đơn giản:
Trong đó, upload_file là kiểu dữ liệu dict mà yêu cầu hai key file_path và file_name.
ch.FORM_FILE: xác định đường dẫn đến tệp bạn muốn tải lên
ch.FORM_FILENAME: xác định tên của tệp bạn muốn tải lên
Để tìm hiểu chi tiết hơn về PycURL, bạn có thể tham khảo hướng dẫn chính thức tại đây nhé!
Có rất nhiều cách để tải tệp lên server, bạn có thể sử dụng nhiều thư viện có sẵn trong các ngôn ngữ lập trình khác nhau, hay đơn giản chỉ là việc dùng lệnh wget hoặc curl để lấy tệp từ một nguồn nào đó. Bài viết này nhắm đến ai đó đang học và tìm hiểu về ngôn ngữ lập trình Python. Để tải tệp lên máy chủ, bạn có thể sử dụng thư viện PycURL.
PycURL là một giao diện Python cho libcurl. PycURL có thể được sử dụng để tìm nạp các đối tượng được xác định bằng URL từ chương trình Python, tương tự như mô-đun Python urllib. Phiên bản mới nhất của PycURL là 7.45.1. Việc cài đặt nó trên các bản phân phối của Linux là rất dễ dàng.
Yêu cầu:
- Python 3.5-3.10.
- libcurl 7.19.0 hoặc mới hơn
Chỉ cần dùng lệnh đơn giản:
hoặceasy_install pycurl
Dưới đây là một vài dòng code đơn giản được viết trong Python để tải tệp lên serverpip install pycurl
Python:
import pycurl
from io import StringIO
def do_http_request(method, url, post_data='', upload_file=None):
ch = pycurl.Curl()
buf = StringIO.StringIO()
ch.setopt(ch.URL, url)
ch.setopt(ch.CUSTOMREQUEST, method)
if upload_file != None:
ch.setopt(ch.HTTPPOST, [('file', (ch.FORM_FILE, upload_file['file_path'],
ch.FORM_FILENAME, upload_file['file_name']))])
else:
if method == self.METHOD_POST:
ch.setopt(ch.POSTFIELDS, urlencode(post_data))
ch.setopt(ch.TIMEOUT, 30)
ch.setopt(ch.WRITEFUNCTION, buf.write)
ch.perform()
content = buf.getvalue()
buf.close()
ch.close()
return content
Trong đó, upload_file là kiểu dữ liệu dict mà yêu cầu hai key file_path và file_name.
ch.FORM_FILE: xác định đường dẫn đến tệp bạn muốn tải lên
ch.FORM_FILENAME: xác định tên của tệp bạn muốn tải lên
Để tìm hiểu chi tiết hơn về PycURL, bạn có thể tham khảo hướng dẫn chính thức tại đây nhé!
Chỉnh sửa lần cuối bởi người điều hành: