XPATH Injection W/ Extractvalue()

By: HaXoR

Serupa dengan SQL Injection, XPath Injection belum metode lain yang bisa kita gunakan untuk mendapatkan jenis yang sama hasil.XPath Injection dapat terjadi jika situs web menggunakan informasi klien yang dipasok untuk membangun query XPath untuk mendapatkan data XML. Teori dan praktek adalah sama seperti SQL injection, hasil sanitasi yang buruk dalam kemampuan untukmenentukan data XML terstruktur, atau jika beruntung kita dapat data sepenuhnya bahwa akses kita biasanya tidak memiliki akses ke (seperti di contoh SQLi). Saya pribadi tidak biasanya resor untuk bahkan menguji jenis injeksi kecuali semua metode lain gagal,tapi saya merasa itu harus ditutupi sehingga Anda dapat memiliki persenjataan yang benar-benar lengkap tersedia untuk Anda (danjatuh sejalan dengan saya tutorial SQLi lain dan menulis ups). Aku akan melakukan yang terbaik untuk dijalankan melalui contoh menggunakan metode EXTRACTVALUE () menampilkan cara kerjanya, jadi cobalah untuk menjaga dan seperti biasa Saya harap Anda menikmati dan menemukan ini berguna ...

OK, jadi ketika menggunakannya? Mari kita asumsikan kita telah menemukan sebuah situs rentan yang tampaknya rentan dari biasanya tes cepat kami, tetapi ketika kita mencoba untuk menyuntikkan menggunakan ORDER BY kita tidak ada kesalahan yang dihasilkan. Kami dua kali lipat cek menggunakan metode injeksi String untuk memastikan bahwa itu bukan masalah, tapi masih tidak ada hasil. Waktu untuk menyerah? Jangan, marilah kita sekarang mencoba untuk melihat apakah kita mungkin bisamenggunakan injeksi XPath.


 XPATH Injection w/ extractvalue()

 XPATH Injection w/ extractvalue()

 XPATH Injection w/ extractvalue()
Kami akan mulai dengan pemeriksaan cepat untuk mengkonfirmasi versi untuk memastikan metode ini dapat digunakan, karenahanya bekerja pada versi MySQL> = 5.1 (pesawat dengan kesalahan ini). Cek pertama untuk versi dan pengguna terlihat seperti ini:

COMMAND: http://site.com/index.php?id=1 dan extractvalue (rand (), concat (0x3a, version (), 0x3a, user ())) -
HASIL: 'kesalahan sintaks XPath: Info versi: Info pengguna

 XPATH Injection w/ extractvalue()

OK, jadi sekarang kita memiliki konfirmasi bahwa metode ini akan bekerja dengan jelas ditampilkan dalam kesalahan yang terlihat.Kami sekarang memiliki versi dan info pengguna saat ini. Sekarang kita akan pindah ke memeriksa info meja, seperti ini:

COMMAND: http://site.com/index.php?id=1 dan extractvalue (rand (), concat (0x3a, (pilih concat (0x3a, table_name) dariinformation_schema.tables membatasi 0,1))) -

HASIL: 'XPath kesalahan sintaks: <Nama Tabel Ditemukan di alamat yang digunakan dalam pernyataan LIMIT>'
 XPATH Injection w/ extractvalue()


Ini adalah masalah terbesar saya dengan XPath Injection, itu akan sulit di sini. Anda akan perlu menggunakan pernyataan LIMITuntuk mengurutkan hasil Anda dan menjaga lalu lintas dari semua nama tabel yang ditemukan. Hal ini bisa sangat memakan waktu, tetapi itu adalah kunci bahwa Anda menggunakan otak Anda untuk mengambil pada setiap hubungan yang menjadi jelas seperti Anda memilah-milah meja, sementara juga mengawasi keluar untuk tabel berair yang dapat menjamin penyelidikan lebih lanjutdalam langkah-langkah masa depan. Saya sarankan pertama menyortir mereka untuk menemukan batas atas dan bawah sehingga Anda tahu apa jenis jangkauan Anda bekerja dengan (beberapa situs akan hanya beberapa dan lain-lain akan memiliki ribuan total -lihat contoh di bawah).
 XPATH Injection w/ extractvalue()

 XPATH Injection w/ extractvalue()

Begitu Anda telah menentukan info meja, Anda harus mengikuti langkah serupa untuk menarik rincian kolom. Ia bekerja sangat mirip dengan meja dan terlihat seperti ini:

COMMAND: http://site.com/index.php?id=1 dan extractvalue (rand (), concat (0x3a, (pilih concat (0x3a, column_name) dariinformation_schema.columns limit 0,1))) -
HASIL: 'XPath kesalahan sintaks: <nama kolom yang ditemukan di alamat yang digunakan dalam pernyataan LIMIT>'

Ini hanya sebagai memakan waktu sebagai menarik nama tabel dan sedikit rumit karena menjadi sangat sulit untuk mengatakan apa kolom link ke tabel atau database apa dalam hal ini, untuk alasan ini itu adalah kunci untuk menggunakan kekuatan otak Andauntuk membuat beberapa penentuan logis tentang apa yang Anda temukan. Ini berarti Anda dapat menggunakan otak Anda untuk menyimpulkan bahwa Anda telah menemukan tabel bernama mysql_auth_users dan kolom idx, username, dan password. Ini tidak akan menjadi bentangan besar untuk menganggap ini mungkin pergi bersama-sama. Saya cenderung menggunakan sedikit trial and error pada bagian terakhir ini tetapi telah menemukan jika Anda hanya berpikir tentang hal ini selama satu menit Anda biasanya dapat membuat koneksi yang diperlukan untuk mengekstrak apa yang Anda inginkan. Bahwa menjadi kata, ekstraksi databekerja sama persis seperti halnya untuk SQLi sederhana. Anda memilih kolom yang Anda inginkan dan menunjukkan apa mejauntuk menarik dari dan mengurai hasil dari kesalahan yang diberikan. Ini terlihat seperti ini:
COMMAND: http://site.com/index.php?id=1 dan extractvalue (rand (), concat (0x3a, (select concat (0x3a, idx, 0x3a, username, 0x3a,password) from mysql_auth_usr))) - -

HASIL: XPath kesalahan sintaks: ': 1: admin: password1'

 XPATH Injection w/ extractvalue()

Sekarang Anda telah berhasil disuntikkan dan diekstraksi data menggunakan injeksi XPath! Sekarang pergi menepuk diri di bagian belakang untuk belajar metode baru dan menikmati istirahat yang memang layak;) Ada permintaan XPath lain yang dapat digunakan tetapi ini adalah yang saya telah menemukan hasil terbaik dengan. Anda juga dapat menggunakan updatexml (). Saya akan terus menambah ini karena saya menyelidiki teknik ini lagi, tapi ini menyimpulkan menulis saya sampai pada injeksi XPathmenggunakan metode EXTRACTVLAUE () untuk saat ini. Saya harap Anda telah menemukan ini menarik dan pendidikan dan seperti biasa sampai waktu berikutnya Nikmati!

Comments