我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL注入--盲注及报错注入

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL注入--盲注及报错注入

SQL注入--盲注及报错注入

attachments-2020-03-QWDASP6t5e7c42e7cf73e.jpg

盲注查询

盲注其实就是没有回显,不能直观地得到结果来调整注入数据,只能通过其他方式来得到是否注入成功,主要是利用了一些数据库内置函数来达到的

布尔盲注

布尔很明显Ture跟Fales,也就是说它只会根据你的注入信息返回Ture跟Fales

其实登录处的注入就是布尔型的,万能密码就是构造一个永真的查询,比如下面的

select user from test where passwd=‘{injuct}’;
#构造永真,即令where的条件用于为真
select user from test where passwd=‘aa‘or’1’=‘1’;
#注入的数据是aa‘or’1’=‘1

密码输入无论是否正确,查询都成立。

布尔盲注其实就是利用了这种,我们什么时候需要采用这种呢

1)当没有数据输出点时,我们没有办法直观的判断注入的sql执行情况,

2)有正确或者错误的两种返回,比如查询正确返回一个页面,失败返回另一个页面,但是没有数据

时间盲注

界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确

利用的内置函数

sleep(n):将程序挂起一段时间 n为n秒
if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句

注入的语句

select user from test where passwd=‘aa‘and (if(ascii(substr(database(),1,1))>100,sleep(10),null));
#注入的数据是aa‘and (if(ascii(substr(database(),1,1))>100,sleep(10),null));--+

我们什么时候需要采用这种呢

1)当没有数据输出点时,我们没有办法直观的判断注入的sql执行情况,

2)无论查询结果都返回同一个数据,无法判断SQL语句执行情况

基于错误查询

有如下报错注入方法

#报错注入floor
(select 1 from (select count(*),concat((payload[]),floor(rand()*2))a from information_schema.columns group by a)b)limit 0,1
#报错注入extractvalue
select extractvalue(1,concat(0x5c,([payload])))
#报错注入updatexml
select 1=(updatexml(1,concat(0x3a,([payload])),1))

floor报错注入

floot是区镇函数,返回小于或等于 x 的最大整数

上面floor报错例子中floor中传入的是一个rand函数(返回 0 到 1 的随机数)。

floor报错注入主要利用的group by的机制,下面先来了解一下原理:

group by key的原理是循环读取数据的每一行,将结果保存于临时表中。
读取每一行的key时,如果key存在于临时表中,则不在临时表中更新临时表中的数据;如果该key不存在于临时表中,则在临时表中插入key所在行的数据。
group by floor(random(0)2)出错的原因是key是个随机数,检测临时表中key是否存在时计算了一下floor(random(0)2)可能为0,如果此时临时表只有key为1的行不存在key为0的行,那么数据库要将该条记录插入临时表,由于是随机数,插时又要计算一下随机值,此时 floor(random(0)*2)结果可能为1,就会导致插入时冲突而报错。
即检测时和插入时两次计算了随机数的值不一致,导致插入时与原本已存在的产生冲突的错误。

主要检测时和插入时两次计算的所以输不一致就会报错。

extractvalue报错注入

  1. ExtractValue(xml_frag, xpath_expr)
  2. ExtractValue()接受两个字符串参数,
  3. 一个XML标记片段 xml_frag
  4. 一个XPath表达式 xpath_expr(也称为 定位器);
  5. 第一个参数可以传入目标xml文档,第二个参数是用Xpath路径法表示的查找路径

原理

如果Xpath格式语法书写错误的话,就会报错。这里就是利用这个特性来获得我们想要知道的内容。

updatexml报错注入

首先了解下updatexml()函数

UPDATEXML (XML_document, XPath_string, new_value); 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。 第三个参数:new_value,String格式,替换查找到的符合条件的数据 函数作用:改变文档中符合条件的节点的值

原理

如果XPath_string的值不符合xpath的语法格式则会报错,报错信息会提示这个数据错误

所以我们就在这个参数里注入我们的返回数据结果

 

attachments-2020-03-DTsfN8eI5e7c422eed100.jpg

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL注入--盲注及报错注入

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL注入--盲注及报错注入

盲注查询 盲注其实就是没有回显,不能直观地得到结果来调整注入数据,只能通过其他方式来得到是否注入成功,主要是利用了一些数据库内置函数来达到的 布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据你的注入信息返回Ture跟Fales 其实登录处的注入就是
SQL注入--盲注及报错注入
2014-11-30

SQL Injection (Blind) time 盲注入

python3编写EXP系列 SQL Injection (Blind) time盲注入 1 简介 DVWA靶场这个是最基础的靶场如果想学习EXP编写这个靶场最好不过,如果能把这个靶场的利用的EXP用python3编写出来这样算是合格的exp入门选手了。 ht
SQL Injection (Blind) time 盲注入
2017-01-27

sql注入 --显错注入

前提知识数据库:就是将大量数据把保存起来,通过计算机加工而成的可以高效访问数据库的数据集合数据库结构:库:就是一堆表组成的数据集合表:类似 Excel,由行和列组成的二维表字段:表中的列称为字段记录:表中的行称为记录单元格:行和列相交的地方称为单元格在数据库里

	sql注入 --显错注入
2021-01-16

详解SQL报错盲注

目录一、SQL报错函数详解二、SQL报错盲注payload构造1、updateXML语句构造思路2、查询当前数据库3、查询表名4、查询列名5、查询字段名6、查询数据今天继续给大家介绍linux运维相关知识,本文主要内容是SQL报错盲注详解。
2022-07-22

SQL注入报错注入函数图文详解

目录前言常用报错函数用法详解updateXML()函数实例extractvalue()函数floor()函数exp()函数12种报错注入函数总结前言报错注入的前提是当语句发生错误时,错误信息被输出到前端。其漏洞原因是由于开发人员在开发程序
2022-07-08

sql注入报错之注入原理实例解析

目录前言0x010x020x03总结前言www.cppcns.com我相信很多小伙伴在玩sql注入报错注入时都会有一个疑问,为什么这么写就会报错?曾经我去查询的时候,也没有找到满意的答案,时隔几个月终于找到搞清楚原理,特此记录,也希望后来
2022-06-13

Mybatis-plus sql注入及防止sql注入详解

mybatis-plus提供了许多默认单表CRUD语句,对于其他SQL情况爱莫能助,下面这篇文章主要给大家介绍了关于Mybatis-plus sql注入及防止sql注入的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13
2024-04-02

sql注入报错怎么解决

今天小编给大家分享一下sql注入报错怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。0x01我们先来看一看现象,我这里
2023-07-02

SQL报错注入的示例分析

小编给大家分享一下SQL报错注入的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL报错注入概述通过构造特定的SQL语句,让攻击者想要查询的信息(如数据
2023-06-29

编程热搜

目录