Kerentanan dina Python anu ngamungkinkeun paréntah sistem disebut tina skrip terasing

Hiji métode geus diterbitkeun pikeun bypass sistem palaksanaan kode terasing dina Python, dumasar kana pamakéan bug lila-dipikawanoh anu muncul dina Python 2.7, ieu dicirikeun dina 2012 sarta teu acan dilereskeun dina Python 3. bug ngamungkinkeun ngagunakeun husus numbu. Kode Python pikeun ngamimitian aksés ka mémori anu parantos dibébaskeun (Paké-Saatos-Free) dina Python. Mimitina, éta dianggap yén kasalahan teu pasang aksi anceman kaamanan sarta ngan dina kasus langka pisan, biasana dijieun sacara artifisial, bisa ngakibatkeun hiji terminasi abnormal tina naskah.

A panalungtik kaamanan handapeun pseudonym kn32 janten kabetot dina masalah jeung junun nyiapkeun hiji mangpaatkeun gawé anu ngamungkinkeun pikeun nelepon sagala paréntah sistem tanpa wasa langsung ka métode kawas os.system. Eksploitasi dilaksanakeun dina Python murni sareng dianggo tanpa ngimpor perpustakaan éksternal sareng tanpa masang "code.__new__" Handler. Tina kait, ngan ukur "builtin.__id__" anu dianggo, anu biasana henteu dilarang. Dina sisi praktis, kodeu anu diusulkeun tiasa dianggo pikeun ngalangkungan mékanisme isolasi dina sagala rupa jasa sareng lingkungan (contona, dina lingkungan diajar, cangkang online, pawang anu diwangun, sareng sajabana), anu ngamungkinkeun palaksanaan kode Python, tapi ngawatesan nelepon sadia tur teu ngidinan métode panggero kayaning os.system.

Kode anu diusulkeun nyaéta analog tina telepon os.system, anu dianggo ku ngamangpaatkeun kerentanan dina CPython. Eksploitasi tiasa dianggo sareng sadaya vérsi Python 3 dina sistem sareng arsitéktur x86-64 sareng nunjukkeun operasi anu stabil dina Ubuntu 22.04, bahkan nalika modeu panyalindungan PIE, RELRO sareng CET diaktipkeun. Karya asalna handap pikeun meunangkeun informasi ti kode Python ngeunaan alamat salah sahiji fungsi dina kode CPython laksana. Dumasar alamat ieu, alamat dasar CPython dina mémori sareng alamat sistem () fungsi dina conto libc anu dimuat dina mémori diitung. Dina tungtungna, transisi langsung ka alamat sistem husus dimimitian ku substitusi pointer sahiji argumen kahiji kana garis "/ bin / sh".

Kerentanan dina Python anu ngamungkinkeun paréntah sistem disebut tina skrip terasing


sumber: opennet.ru

Tambahkeun komentar