简单了解SQL注入之盲注
本篇文章给大家带来了关于SQL的相关知识,其中主要介绍了关于盲注的相关问题,盲注将数据库中查询的数据结果进行截断为单个字符,然后同构造逻辑语句,下面一起来看一下,希望对大家有帮助。
推荐学习:《SQL教程》
sql注入——盲注
1.回顾
回显注入主要应用于数据库中的数据可以再网站的页面上直接展示出来。
报错注入主要应用于网站的页面上存在原始报错信息,数据库中的数据在原始报错信息中展示出 来。也被称为报错回显。
原理:由于用户不可控输入,攻击者可以任意的输入恶意的sql语句,造成sql语义发生改变,从而引起数据库和操作系统的风险。
风险:数据操作、登录绕过、文件操作、命令执行、注册表操作。
防御:过滤、预编译。
2.盲注漏洞场景
1.数据库中的数据并不会在页面上直接展示,将查询出的结果通过判断,将判断之后的结果在页 面上输出。如登录框
2.insert、update、delete等于语法不具备数据的查询功能,页面上就不会存在数据库中的数据。如注册、信息修改、数据添加
3.盲注原理
核心
将数据库中查询的数据结果进行截断为单个字符,然后同构造逻辑语句。通过判断页面显示是 否异常或页面是否演示来判断数据库中查询的结果。
4.分类
1.bool盲注
如果数据库中可以查到相应的数据,页面会正常显示,反之异常。
2.时间盲注
无论输入任何数据,页面的效果完全一样,根据页面是否延迟判断出数据库中查询出的结果。
5.流程
1.找疑似注入点 找输入点,找与数据库有交互的地方
2.判断sql注入是否存在 构造恶意的sql语句,提交后页面的响应信息与预期保持一致,这说明注入存在。
3.获取数据库名
1.获取当前数据库名 and ascii(substr((select database()),1,1))=115 2.获取所有数据库名 and (select ascii(substr(group_concat(schema_name),1,1)) from information_schema.schemata)>0
3.计算出获取数据的长度
and (select length(group_concat(schema_name)) from information_schema.schemata)>10 --+
4.获取表
5.获取列
6.获取数据
6.时间盲注
and if(((select database())='a'),sleep(5),0)--+
7.总结
可以发生回显、报错、bool注入的地方都可以发生时间盲注,反之不行 可以发生回显报错的地方一定可以bool型盲注,反之不行。
8.sqlmap
sql注入自动化工具,python2开发的,可以兼容python3。sqlmap的使用实际上就是模拟人对网站的请求过程,可以对获取的数据做收集分析然后展示。
python sqlmap.py -h 查看sqlmap可使用的参数 -u 网站的url 向sqlmnap提供注入点
–dbs 获取所有数据库名
-D 指定库 --tables 获取指定数据库中所有的表的信息
-D 指定库 -T 指定表 --columns
-D 指定库 -T 指定表 -C 列1,列2 --dump
-r ‘文件名’
推荐学习:《SQL教程》
以上是简单了解SQL注入之盲注的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

《OracleSQL中除法运算的用法》在OracleSQL中,除法运算是常见的数学运算之一。在数据查询和处理过程中,除法运算可以帮助我们计算字段之间的比例或者得出特定数值的逻辑关系。本文将介绍OracleSQL中除法运算的用法,并提供具体的代码示例。一、OracleSQL中除法运算的两种方式在OracleSQL中,除法运算可以使用两种不同的方式进行

Oracle和DB2是两个常用的关系型数据库管理系统,它们都有自己独特的SQL语法和特点。本文将针对Oracle和DB2的SQL语法进行比较与区别,并提供具体的代码示例。数据库连接在Oracle中,使用以下语句连接数据库:CONNECTusername/password@database而在DB2中,连接数据库的语句如下:CONNECTTOdataba

MyBatis动态SQL标签解读:Set标签用法详解MyBatis是一个优秀的持久层框架,它提供了丰富的动态SQL标签,可以灵活地构建数据库操作语句。其中,Set标签是用于生成UPDATE语句中SET子句的标签,在更新操作中非常常用。本文将详细解读MyBatis中Set标签的用法,以及通过具体的代码示例来演示其功能。什么是Set标签Set标签用于MyBati

SQL中的Identity是什么,需要具体代码示例在SQL中,Identity是一种用于生成自增数字的特殊数据类型,它常用于唯一标识表中的每一行数据。Identity列通常与主键列配合使用,可以确保每条记录都有一个独一无二的标识符。本文将详细介绍Identity的使用方式以及一些实际的代码示例。Identity的基本使用方式在创建表时,可以使用Identit

在Springboot+Mybatis-plus不使用SQL语句进行多表添加操作我所遇到的问题准备工作在测试环境下模拟思维分解一下:创建出一个带有参数的BrandDTO对象模拟对后台传递参数我所遇到的问题我们都知道,在我们使用Mybatis-plus中进行多表操作是极其困难的,如果你不使用Mybatis-plus-join这一类的工具,你只能去配置对应的Mapper.xml文件,配置又臭又长的ResultMap,然后再去写对应的sql语句,这种方法虽然看上去很麻烦,但具有很高的灵活性,可以让我们

解决办法:1、检查登录用户是否具有足够的权限来访问或操作该数据库,确保该用户具有正确的权限;2、检查SQL Server服务的帐户是否具有访问指定文件或文件夹的权限,确保该帐户具有足够的权限来读取和写入该文件或文件夹;3、检查指定的数据库文件是否已被其他进程打开或锁定,尝试关闭或释放该文件,并重新运行查询;4、尝试以管理员身份运行Management Studio等等。

如何使用SQL语句在MySQL中进行数据聚合和统计?在进行数据分析和统计时,数据聚合和统计是非常重要的步骤。MySQL作为一个功能强大的关系型数据库管理系统,提供了丰富的聚合和统计函数,可以很方便地进行数据聚合和统计操作。本文将介绍使用SQL语句在MySQL中进行数据聚合和统计的方法,并提供具体的代码示例。一、使用COUNT函数进行计数COUNT函数是最常用
