本篇文章给大家带来了关于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